diff --git a/include/target.mk b/include/target.mk index 2402f465a5..29ea3c5661 100644 --- a/include/target.mk +++ b/include/target.mk @@ -15,7 +15,8 @@ DEVICE_TYPE?=router # Default packages - the really basic set DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools uclient-fetch logd urandom-seed urngd \ kmod-nf-nathelper kmod-nf-nathelper-extra kmod-ipt-raw wget libustream-openssl ca-certificates \ - default-settings luci luci-compat luci-lib-ipkg + default-settings luci luci-compat luci-lib-ipkg \ + luci-app-sfe luci-app-flowoffload # For nas targets DEFAULT_PACKAGES.nas:=block-mount fdisk lsblk mdadm # For router targets diff --git a/package/ctcgfw/ChinaDNS/Makefile b/package/ctcgfw/ChinaDNS/Makefile new file mode 100644 index 0000000000..02985ea162 --- /dev/null +++ b/package/ctcgfw/ChinaDNS/Makefile @@ -0,0 +1,54 @@ +# +# Copyright (C) 2014-2018 OpenWrt-dist +# Copyright (C) 2014-2018 Jian Chang +# +# This is free software, licensed under the GNU General Public License v3. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=ChinaDNS +PKG_VERSION:=2.0.1 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://github.com/lrinQVQ/openwrt-chinadns/releases/download/v$(PKG_VERSION) +PKG_MD5SUM:=5c7aa6a89a969a1dd6469b4808b0759b + +PKG_LICENSE:=GPLv3 +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Jian Chang + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)/$(PKG_NAME)-$(PKG_VERSION) + +PKG_INSTALL:=1 +PKG_FIXUP:=autoreconf +PKG_USE_MIPS16:=0 +PKG_BUILD_PARALLEL:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/ChinaDNS + SECTION:=net + CATEGORY:=Network + TITLE:=Protect yourself against DNS poisoning in China. + URL:=https://github.com/shadowsocks/ChinaDNS +endef + +define Package/ChinaDNS/description +Protect yourself against DNS poisoning in China. +endef + +define Package/ChinaDNS/conffiles +/etc/chinadns_chnroute.txt +endef + +define Package/ChinaDNS/install + $(INSTALL_DIR) $(1)/etc + $(INSTALL_CONF) $(PKG_BUILD_DIR)/chnroute.txt $(1)/etc/chinadns_chnroute.txt + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/chinadns $(1)/usr/sbin +endef + +$(eval $(call BuildPackage,ChinaDNS)) diff --git a/package/ctcgfw/GoQuiet/Makefile b/package/ctcgfw/GoQuiet/Makefile new file mode 100644 index 0000000000..d850dde9c7 --- /dev/null +++ b/package/ctcgfw/GoQuiet/Makefile @@ -0,0 +1,86 @@ +# +# Copyright (C) 2015-2016 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v3. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=gq-client +PKG_VERSION:=1.2.2 +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) + +include $(INCLUDE_DIR)/package.mk + +define Package/$(PKG_NAME)/temple + SECTION:=net + CATEGORY:=Network + TITLE:=GoQuiet + DEPENDS:=+libpthread + URL:=https://github.com/cbeuw/GoQuiet +endef + +define Package/$(PKG_NAME) + $(call Package/$(PKG_NAME)/temple) +endef + +define Package/gq-server + $(call Package/$(PKG_NAME)/temple) +endef + +define Package/$(PKG_NAME)/description +GoQuiet-client +endef + +define Package/gq-server/description +GoQuiet-server +endef + +ifeq ($(ARCH),x86_64) + GOQUIET_NAME:=gq-client-linux-amd64-$(PKG_VERSION) + GOQUIETSERVER_NAME:=gq-server-linux-amd64-$(PKG_VERSION) +endif +ifeq ($(ARCH),i386) + GOQUIET_NAME:=gq-client-linux-386-$(PKG_VERSION) + GOQUIETSERVER_NAME:=gq-server-linux-386-$(PKG_VERSION) +endif +ifeq ($(ARCH),mipsel) + GOQUIET_NAME:=gq-client-linux-mips64-$(PKG_VERSION) +endif +ifeq ($(ARCH),mips) + GOQUIET_NAME:=gq-client-linux-mips-$(PKG_VERSION) +endif +ifeq ($(ARCH),arm) + GOQUIET_NAME:=gq-client-linux-arm-$(PKG_VERSION) + GOQUIETSERVER_NAME:=gq-server-linux-arm-$(PKG_VERSION) +endif +ifeq ($(ARCH),aarch64) + GOQUIET_NAME:=gq-client-linux-arm64-$(PKG_VERSION) + GOQUIETSERVER_NAME:=gq-server-linux-arm64-$(PKG_VERSION) +endif + +define Build/Prepare + [ ! -f $(PKG_BUILD_DIR)/gq-client ] && wget -O $(PKG_BUILD_DIR)/gq-client https://github.com/cbeuw/GoQuiet/releases/download/v$(PKG_VERSION)/$(GOQUIET_NAME) + [ ! -f $(PKG_BUILD_DIR)/gq-server ] && wget -O $(PKG_BUILD_DIR)/gq-server https://github.com/cbeuw/GoQuiet/releases/download/v$(PKG_VERSION)/$(GOQUIETSERVER_NAME) +endef + +define Build/Configure + chmod +x $(PKG_BUILD_DIR)/gq-client && upx --ultra-brute $(PKG_BUILD_DIR)/gq-client + chmod +x $(PKG_BUILD_DIR)/gq-server && upx --ultra-brute $(PKG_BUILD_DIR)/gq-server +endef + +define Build/Compile +endef + +define Package/$(PKG_NAME)/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/gq-client $(1)/usr/bin/ +endef + +define Package/gq-server/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/gq-server $(1)/usr/bin/ +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) +$(eval $(call BuildPackage,gq-server)) diff --git a/package/ctcgfw/UnblockNeteaseMusic-Go/Makefile b/package/ctcgfw/UnblockNeteaseMusic-Go/Makefile new file mode 100644 index 0000000000..ee8913ce78 --- /dev/null +++ b/package/ctcgfw/UnblockNeteaseMusic-Go/Makefile @@ -0,0 +1,72 @@ +# +# Copyright (C) 2015-2016 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v3. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=UnblockNeteaseMusic-Go +PKG_VERSION:=snapshot +PKG_RELEASE:=r29-c39dcc6 + +ifeq ($(ARCH),x86_64) + PKG_ARCH_UnblockNeteaseMusic:=linux_amd64 +endif +ifeq ($(ARCH),i386) + PKG_ARCH_UnblockNeteaseMusic:=linux_386 +endif +ifeq ($(ARCH),mipsel) + PKG_ARCH_UnblockNeteaseMusic:=linux_mipsle +endif +ifeq ($(ARCH),mips) + PKG_ARCH_UnblockNeteaseMusic:=linux_mips +endif +ifeq ($(ARCH),arm) +ifeq ($(BOARD),kirkwood) + PKG_ARCH_UnblockNeteaseMusic:=linux_arm5 +else ifeq ($(BOARD),bcm53xx) + PKG_ARCH_UnblockNeteaseMusic:=linux_arm5 +else + PKG_ARCH_UnblockNeteaseMusic:=linux_arm7 +endif +endif +ifeq ($(ARCH),aarch64) + PKG_ARCH_UnblockNeteaseMusic:=linux_arm64 +endif + +PKG_SOURCE:=UnblockNeteaseMusic_$(PKG_ARCH_UnblockNeteaseMusic).tar.gz +PKG_SOURCE_URL:=https://package.project-openwrt.eu.org/utils/UnblockNeteaseMusic-Go/$(PKG_RELEASE)/ +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE) +PKG_HASH:=skip + +include $(INCLUDE_DIR)/package.mk + +define Package/$(PKG_NAME) + SECTION:=net + CATEGORY:=Network + TITLE:=Revive unavailable songs for Netease Cloud Music (Golang) + URL:=https://github.com/cnsilvan/UnblockNeteaseMusic +endef + +define Build/Prepare + tar -xzf $(DL_DIR)/$(PKG_SOURCE) -C $(PKG_BUILD_DIR) +endef + +define Build/Configure +endef + +define Build/Compile + chmod 0755 $(PKG_BUILD_DIR)/UnblockNeteaseMusic +endef + +define Package/$(PKG_NAME)/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/UnblockNeteaseMusic $(1)/usr/bin/UnblockNeteaseMusic + $(INSTALL_DIR) $(1)/usr/share/UnblockNeteaseMusic-Go + $(INSTALL_CONF) ./cert/server.crt $(1)/usr/share/UnblockNeteaseMusic-Go/server.crt + $(INSTALL_CONF) ./cert/server.key $(1)/usr/share/UnblockNeteaseMusic-Go/server.key + +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/package/ctcgfw/UnblockNeteaseMusic-Go/cert/server.crt b/package/ctcgfw/UnblockNeteaseMusic-Go/cert/server.crt new file mode 100644 index 0000000000..b58111aee7 --- /dev/null +++ b/package/ctcgfw/UnblockNeteaseMusic-Go/cert/server.crt @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDfTCCAmWgAwIBAgIJAKTlW9B59i1HMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV +BAYTAkNOMSQwIgYDVQQDDBtVbmJsb2NrTmV0ZWFzZU11c2ljIFJvb3QgQ0ExHTAb +BgNVBAoMFEdpdEh1Yi5jb20gQG5vbmRhbmVlMB4XDTE5MDUxODE2MDYxOFoXDTIw +MDUxNzE2MDYxOFowezELMAkGA1UEBhMCQ04xETAPBgNVBAcMCEhhbmd6aG91MSww +KgYDVQQKDCNOZXRFYXNlIChIYW5nemhvdSkgTmV0d29yayBDby4sIEx0ZDERMA8G +A1UECwwISVQgRGVwdC4xGDAWBgNVBAMMDyoubXVzaWMuMTYzLmNvbTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBALobECypwEoe8VqM/FJvBRR3p2T+ZWdi +MSPrwfiRJr5p7OMtWBlLveCBV85+R3feidYbQTXlvVTdToY+GN6mFE1x6zG2dvLD +s4UuRnipmvGcFYhIRTX8J4AJiN8VMtW0TNXscRMudpz/FAVtsRrggRaThYg4f/rI +oAPMqKMsS4JoYhxs9ED6E6/tpj3XmSg1ekaXhgacYSYHeyxizZwoOFVCLH3TG5sF +sD6CYNnukYol8bR+VRpvHftIYss5Yz+DyyhYEAMJm1CfQo+xoGR3D0ozbT3hUnzm +fEoOhmSp3sALrFVE4iJSuajoh2/3xhmcyi3xZdWyq4F8hpb+URyaoW0CAwEAAaMt +MCswKQYDVR0RBCIwIIINbXVzaWMuMTYzLmNvbYIPKi5tdXNpYy4xNjMuY29tMA0G +CSqGSIb3DQEBCwUAA4IBAQB32SVz5jHUYv3ZG7SNF/LFJ904/LI8QlTe9R+Abb9z +bpXmQeo4pvNNOk3LgcTyuSIPQSHEFn32hk/MedB6Q2cKaGVKQq7Usne1jsV0JirG +wMx3PTcKPnX+XexRY8s6v6cNKSx5YlMQNFeH7p8MgKqdM/UX/dNCxT04X/ClmP1K +/rKqonXn4i3wmWprl7Q7Z1wqt0ygQRkNJKqdYKTu4oQcPON8/dRcseYdJzSoK2/G +H6cOJwKrRLzuUqQlphe6wyUsyTIbIJiFu1a1Gml6zB4lhLZhL89H2lYwdS8wWlc+ +M+wYi+XTM/ylNHEIoKsOe2nscnwi/hTfHJOPPchHbEuM +-----END CERTIFICATE----- diff --git a/package/ctcgfw/UnblockNeteaseMusic-Go/cert/server.key b/package/ctcgfw/UnblockNeteaseMusic-Go/cert/server.key new file mode 100644 index 0000000000..ce16c73adc --- /dev/null +++ b/package/ctcgfw/UnblockNeteaseMusic-Go/cert/server.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAuhsQLKnASh7xWoz8Um8FFHenZP5lZ2IxI+vB+JEmvmns4y1Y +GUu94IFXzn5Hd96J1htBNeW9VN1Ohj4Y3qYUTXHrMbZ28sOzhS5GeKma8ZwViEhF +NfwngAmI3xUy1bRM1exxEy52nP8UBW2xGuCBFpOFiDh/+sigA8yooyxLgmhiHGz0 +QPoTr+2mPdeZKDV6RpeGBpxhJgd7LGLNnCg4VUIsfdMbmwWwPoJg2e6RiiXxtH5V +Gm8d+0hiyzljP4PLKFgQAwmbUJ9Cj7GgZHcPSjNtPeFSfOZ8Sg6GZKnewAusVUTi +IlK5qOiHb/fGGZzKLfFl1bKrgXyGlv5RHJqhbQIDAQABAoIBAEmAvtalBMlBh1mY +LV/xcTQwPfDpeOtoILhrOOUPjxnNhD4FfrIe9BNjgmaQAXIadp4VjZ/X6PtHnOfw +RqpJNeOQhq/PvRMMsC59pF+rvQKH/wkgYhV8Ta2IFoLlQHqfB2nGRLKquzYumJ28 +QSK4YMOl6CtxBTrrWiemAUTRDdGm8tARiipJH1SEJrS6d/NoRoJx2vixFgD2eS6X +bjnhGjIzvX/w5FWjctqj+SFITP1UI62b6DyWsPOkoosKNteK+Ulz+K6ZFvOx7day +XgUoTcVpwCVr2dVGhJtOrbKPcl1jYCYHJAHwzUZND4x4yftm1mnnsi3bthYqbtHQ +vxLE9YECgYEA9hiZxwiVvLjSe1xT/D75HbB8S1XSnwzpMmqgzStguxCQ0Qg5yiLI +UKRDY8UZvEDV4i2bQGy7mk8lFvX1q2z7Q30+dtT9r2N9a6ujMk5RMfo2BZg/poI6 +yDWe2tKUg9cTwfgni4TutLOYkpz3VDPIQHs3k2mpNh7f+8X4RIybDqkCgYEAwZhp +uWMV38Bb0WytswHXL1dRuwBskKqALUBY61dtXkyBuocj8AuRRxfxfZpgJRrHFxDX +O9bQ2nxpVlwKsR6DJDUdxU3+kvwyPfseU5XUBey8WdkuAKD7cKZOHMhFVWccks0U +YJzykNrxB+rGTiwVKa0MOhipuJ7boerwwaN2SyUCgYBP9Ow5o4tq9q3EUNoksZ0k +zUuE+oxlCr/VlplKL9bM0HQMxlxoVWa59LTEfKyA4pvbUbAIfYtydlZ5oE5CdTUp +105tM4R88Jk2W1y5ooJ093OH29CKW/OXSvyi4hpIv592vRa0GOupoFRpBkDBhdWB +RcdnyMOmht+FIOwp8XkLiQKBgAUK3j4Y6ZnxXbLfvMp70soF4TgYs7s05a/IDEjc +9xlMrthX6sS22GrcocqeucBdqS/dnW2Ok9QNB4VbUl/4pnvL8mGQPYBAl2Jr5wdQ +ULxyxRkmAf+8MbBmdIRlZwDpdaIRO2Wk0OCbA0osgEvK9CYovrfIqqsHYDsgbnLs +ugkNAoGBAJok06BN05caPXXLQ2pMwI/7mjcZFjcOMxSloYi7LFkxlyvoTqReAeSa +yOb6W/7obS1X8ms/EAkqiyzJuPtNZJCW/nvV0iCoZ/NxLuyHnFaO344GBAweol+S +Jx0MY8KuDCyeGErc2xdz/yr3ld2PSTq71dhBluGyba2YX+peJ2Yv +-----END RSA PRIVATE KEY----- diff --git a/package/ctcgfw/baidupcs-web/Makefile b/package/ctcgfw/baidupcs-web/Makefile new file mode 100644 index 0000000000..e938bcc68a --- /dev/null +++ b/package/ctcgfw/baidupcs-web/Makefile @@ -0,0 +1,82 @@ +# +# Copyright (C) 2019 OpenWrt.org +# +# KFERMercer +# +# This is free software, licensed under the GNU General Public License v3. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=baidupcs-web +PKG_VERSION:=3.7.0 +PKG_RELEASE:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/$(PKG_NAME) + SECTION:=net + CATEGORY:=Network + TITLE:=BaiduPCS-Web is a web controller for BaiduPCS-Go + URL:=https://github.com/liuzhuoling2011/baidupcs-web +endef + + +define Package/$(PKG_NAME)/description +BaiduPCS-Web is a web controller for BaiduPCS-Go +endef + +# 禁止OpenWrt对二进制文件进行strip +STRIP:=true + +ifeq ($(ARCH),i386) + PKG_ARCH_BAIDUPCS-WEB:=86 +endif + +ifeq ($(ARCH),x86_64) + PKG_ARCH_BAIDUPCS-WEB:=amd64 +endif + +ifeq ($(ARCH),mipsel) + PKG_ARCH_BAIDUPCS-WEB:=mipsle +endif + +ifeq ($(ARCH),mips) + PKG_ARCH_BAIDUPCS-WEB:=mipsle +endif + +ifeq ($(ARCH),arm) + PKG_ARCH_BAIDUPCS-WEB:=arm +endif + +ifeq ($(ARCH),aarch64) + PKG_ARCH_BAIDUPCS-WEB:=arm64 +endif + + +PKG_SOURCE:=BaiduPCS-Go-$(PKG_VERSION)-linux-$(PKG_ARCH_BAIDUPCS-WEB).zip + +PKG_SOURCE_URL:=https://github.com/liuzhuoling2011/baidupcs-web/releases/download/$(PKG_VERSION)/ + +UNZIP_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/$(PKG_NAME)-unzip + +PKG_HASH:=skip + +define Build/Prepare + mkdir -vp $(UNZIP_DIR) + unzip -od $(UNZIP_DIR) $(DL_DIR)/$(PKG_SOURCE) +endef + +define Build/Configure +endef + +define Build/Compile +endef + +define Package/$(PKG_NAME)/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(UNZIP_DIR)/*/BaiduPCS-Go $(1)/usr/bin/$(PKG_NAME) + chmod 755 $(1)/usr/bin/$(PKG_NAME) +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/package/ctcgfw/bbr-bbrplus/Makefile b/package/ctcgfw/bbr-bbrplus/Makefile new file mode 100644 index 0000000000..796ae7422a --- /dev/null +++ b/package/ctcgfw/bbr-bbrplus/Makefile @@ -0,0 +1,46 @@ +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=tcp-bbr-bbrplus +PKG_RELEASE:=1 + +include $(INCLUDE_DIR)/package.mk + +define KernelPackage/$(PKG_NAME) + SUBMENU:=Network Support + TITLE:=Modified bbr tcp congestion control + DEPENDS:=@LINUX_4_14 + FILES:=$(PKG_BUILD_DIR)/tcp_bbr_bbrplus.ko + KCONFIG:= +endef + +define KernelPackage/$(PKG_NAME)/description + Kernel module of modified BBR tcp congestion control +endef + +EXTRA_KCONFIG:= \ + + +EXTRA_CFLAGS:= \ + $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(EXTRA_KCONFIG)))) \ + $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(EXTRA_KCONFIG)))) \ + +MAKE_OPTS:= \ + ARCH="$(LINUX_KARCH)" \ + CROSS_COMPILE="$(TARGET_CROSS)" \ + SUBDIRS="$(PKG_BUILD_DIR)" \ + EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \ + $(EXTRA_KCONFIG) + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) + $(CP) ./src/* $(PKG_BUILD_DIR)/ +endef + +define Build/Compile + $(MAKE) -C "$(LINUX_DIR)" \ + $(MAKE_OPTS) \ + modules +endef + +$(eval $(call KernelPackage,$(PKG_NAME))) diff --git a/package/ctcgfw/bbr-bbrplus/src/Makefile b/package/ctcgfw/bbr-bbrplus/src/Makefile new file mode 100644 index 0000000000..9754713cc8 --- /dev/null +++ b/package/ctcgfw/bbr-bbrplus/src/Makefile @@ -0,0 +1 @@ +obj-m := tcp_bbr_bbrplus.o diff --git a/package/ctcgfw/bbr-bbrplus/src/tcp_bbr_bbrplus.c b/package/ctcgfw/bbr-bbrplus/src/tcp_bbr_bbrplus.c new file mode 100644 index 0000000000..f772a4d1e7 --- /dev/null +++ b/package/ctcgfw/bbr-bbrplus/src/tcp_bbr_bbrplus.c @@ -0,0 +1,1171 @@ +/* Bottleneck Bandwidth and RTT (BBR) congestion control + * + * BBR congestion control computes the sending rate based on the delivery + * rate (throughput) estimated from ACKs. In a nutshell: + * + * On each ACK, update our model of the network path: + * bottleneck_bandwidth = windowed_max(delivered / elapsed, 10 round trips) + * min_rtt = windowed_min(rtt, 10 seconds) + * pacing_rate = pacing_gain * bottleneck_bandwidth + * cwnd = max(cwnd_gain * bottleneck_bandwidth * min_rtt, 4) + * + * The core algorithm does not react directly to packet losses or delays, + * although BBR may adjust the size of next send per ACK when loss is + * observed, or adjust the sending rate if it estimates there is a + * traffic policer, in order to keep the drop rate reasonable. + * + * Here is a state transition diagram for BBR: + * + * | + * V + * +---> STARTUP ----+ + * | | | + * | V | + * | DRAIN ----+ + * | | | + * | V | + * +---> PROBE_BW ----+ + * | ^ | | + * | | | | + * | +----+ | + * | | + * +---- PROBE_RTT <--+ + * + * A BBR flow starts in STARTUP, and ramps up its sending rate quickly. + * When it estimates the pipe is full, it enters DRAIN to drain the queue. + * In steady state a BBR flow only uses PROBE_BW and PROBE_RTT. + * A long-lived BBR flow spends the vast majority of its time remaining + * (repeatedly) in PROBE_BW, fully probing and utilizing the pipe's bandwidth + * in a fair manner, with a small, bounded queue. *If* a flow has been + * continuously sending for the entire min_rtt window, and hasn't seen an RTT + * sample that matches or decreases its min_rtt estimate for 10 seconds, then + * it briefly enters PROBE_RTT to cut inflight to a minimum value to re-probe + * the path's two-way propagation delay (min_rtt). When exiting PROBE_RTT, if + * we estimated that we reached the full bw of the pipe then we enter PROBE_BW; + * otherwise we enter STARTUP to try to fill the pipe. + * + * BBR is described in detail in: + * "BBR: Congestion-Based Congestion Control", + * Neal Cardwell, Yuchung Cheng, C. Stephen Gunn, Soheil Hassas Yeganeh, + * Van Jacobson. ACM Queue, Vol. 14 No. 5, September-October 2016. + * + * There is a public e-mail list for discussing BBR development and testing: + * https://groups.google.com/forum/#!forum/bbr-dev + * + * NOTE: BBR might be used with the fq qdisc ("man tc-fq") with pacing enabled, + * otherwise TCP stack falls back to an internal pacing using one high + * resolution timer per TCP socket and may use more resources. + */ +#include +#include +#include +#include +#include +#include + +/* Scale factor for rate in pkt/uSec unit to avoid truncation in bandwidth + * estimation. The rate unit ~= (1500 bytes / 1 usec / 2^24) ~= 715 bps. + * This handles bandwidths from 0.06pps (715bps) to 256Mpps (3Tbps) in a u32. + * Since the minimum window is >=4 packets, the lower bound isn't + * an issue. The upper bound isn't an issue with existing technologies. + */ +#define BW_SCALE 24 +#define BW_UNIT (1 << BW_SCALE) + +#define BBR_SCALE 8 /* scaling factor for fractions in BBR (e.g. gains) */ +#define BBR_UNIT (1 << BBR_SCALE) + +/* BBR has the following modes for deciding how fast to send: */ +enum bbr_mode { + BBR_STARTUP, /* ramp up sending rate rapidly to fill pipe */ + BBR_DRAIN, /* drain any queue created during startup */ + BBR_PROBE_BW, /* discover, share bw: pace around estimated bw */ + BBR_PROBE_RTT, /* cut inflight to min to probe min_rtt */ +}; + +/* BBR congestion control block */ +struct bbr { + u32 min_rtt_us; /* min RTT in min_rtt_win_sec window */ + u32 min_rtt_stamp; /* timestamp of min_rtt_us */ + u32 probe_rtt_done_stamp; /* end time for BBR_PROBE_RTT mode */ + struct minmax bw; /* Max recent delivery rate in pkts/uS << 24 */ + u32 rtt_cnt; /* count of packet-timed rounds elapsed */ + u32 next_rtt_delivered; /* scb->tx.delivered at end of round */ + u64 cycle_mstamp; /* time of this cycle phase start */ + u32 mode:3, /* current bbr_mode in state machine */ + prev_ca_state:3, /* CA state on previous ACK */ + packet_conservation:1, /* use packet conservation? */ + restore_cwnd:1, /* decided to revert cwnd to old value */ + round_start:1, /* start of packet-timed tx->ack round? */ + cycle_len:4, /* phases in this PROBE_BW gain cycle */ + tso_segs_goal:7, /* segments we want in each skb we send */ + idle_restart:1, /* restarting after idle? */ + probe_rtt_round_done:1, /* a BBR_PROBE_RTT round at 4 pkts? */ + unused:8, + lt_is_sampling:1, /* taking long-term ("LT") samples now? */ + lt_rtt_cnt:7, /* round trips in long-term interval */ + lt_use_bw:1; /* use lt_bw as our bw estimate? */ + u32 lt_bw; /* LT est delivery rate in pkts/uS << 24 */ + u32 lt_last_delivered; /* LT intvl start: tp->delivered */ + u32 lt_last_stamp; /* LT intvl start: tp->delivered_mstamp */ + u32 lt_last_lost; /* LT intvl start: tp->lost */ + u32 pacing_gain:10, /* current gain for setting pacing rate */ + cwnd_gain:10, /* current gain for setting cwnd */ + full_bw_cnt:3, /* number of rounds without large bw gains */ + cycle_idx:3, /* current index in pacing_gain cycle array */ + has_seen_rtt:1, /* have we seen an RTT sample yet? */ + unused_b:5; + u32 prior_cwnd; /* prior cwnd upon entering loss recovery */ + u32 full_bw; /* recent bw, to estimate if pipe is full */ + /* For tracking ACK aggregation: */ + u64 ack_epoch_mstamp; + /* start of ACK sampling epoch */ + u16 extra_acked[2]; + /* max excess data ACKed in epoch */ + u32 ack_epoch_acked:20, /* packets (S)ACKed in sampling epoch */ + extra_acked_win_rtts:5, /* age of extra_acked, in round trips */ + extra_acked_win_idx:1, /* current index in extra_acked array */ + unused1:6; +}; + +#define CYCLE_LEN 8 /* number of phases in a pacing gain cycle */ + +/* Window length of bw filter (in rounds): */ +static const int bbr_bw_rtts = CYCLE_LEN + 2; +/* Window length of min_rtt filter (in sec): */ +static const u32 bbr_min_rtt_win_sec = 10; +/* Minimum time (in ms) spent at bbr_cwnd_min_target in BBR_PROBE_RTT mode: */ +static const u32 bbr_probe_rtt_mode_ms = 200; +/* Skip TSO below the following bandwidth (bits/sec): */ +static const int bbr_min_tso_rate = 1200000; + +/* We use a high_gain value of 2/ln(2) because it's the smallest pacing gain + * that will allow a smoothly increasing pacing rate that will double each RTT + * and send the same number of packets per RTT that an un-paced, slow-starting + * Reno or CUBIC flow would: + */ +static const int bbr_high_gain = BBR_UNIT * 2885 / 1000 + 1; +/* The pacing gain of 1/high_gain in BBR_DRAIN is calculated to typically drain + * the queue created in BBR_STARTUP in a single round: + */ +static const int bbr_drain_gain = BBR_UNIT * 1000 / 2885; +/* The gain for deriving steady-state cwnd tolerates delayed/stretched ACKs: */ +static const int bbr_cwnd_gain = BBR_UNIT * 2; + +enum bbr_pacing_gain_phase { + BBR_BW_PROBE_UP = 0, + BBR_BW_PROBE_DOWN = 1, + BBR_BW_PROBE_CRUISE = 2, +}; + + +/* The pacing_gain values for the PROBE_BW gain cycle, to discover/share bw: */ +static const int bbr_pacing_gain[] = { + BBR_UNIT * 5 / 4, /* probe for more available bw */ + BBR_UNIT * 3 / 4, /* drain queue and/or yield bw to other flows */ + BBR_UNIT, BBR_UNIT, BBR_UNIT, /* cruise at 1.0*bw to utilize pipe, */ + BBR_UNIT, BBR_UNIT, BBR_UNIT /* without creating excess queue... */ +}; +/* Randomize the starting gain cycling phase over N phases: */ +static const u32 bbr_cycle_rand = 7; + +/* Try to keep at least this many packets in flight, if things go smoothly. For + * smooth functioning, a sliding window protocol ACKing every other packet + * needs at least 4 packets in flight: + */ +static const u32 bbr_cwnd_min_target = 4; + +/* To estimate if BBR_STARTUP mode (i.e. high_gain) has filled pipe... */ +/* If bw has increased significantly (1.25x), there may be more bw available: */ +static const u32 bbr_full_bw_thresh = BBR_UNIT * 5 / 4; +/* But after 3 rounds w/o significant bw growth, estimate pipe is full: */ +static const u32 bbr_full_bw_cnt = 3; + +/* "long-term" ("LT") bandwidth estimator parameters... */ +/* The minimum number of rounds in an LT bw sampling interval: */ +static const u32 bbr_lt_intvl_min_rtts = 4; +/* If lost/delivered ratio > 20%, interval is "lossy" and we may be policed: */ +static const u32 bbr_lt_loss_thresh = 50; +/* If 2 intervals have a bw ratio <= 1/8, their bw is "consistent": */ +static const u32 bbr_lt_bw_ratio = BBR_UNIT / 8; +/* If 2 intervals have a bw diff <= 4 Kbit/sec their bw is "consistent": */ +static const u32 bbr_lt_bw_diff = 4000 / 8; +/* If we estimate we're policed, use lt_bw for this many round trips: */ +static const u32 bbr_lt_bw_max_rtts = 48; + +/* Gain factor for adding extra_acked to target cwnd: */ +static const int bbr_extra_acked_gain = BBR_UNIT; +/* Window length of extra_acked window. Max allowed val is 31. */ +static const u32 bbr_extra_acked_win_rtts = 10; +/* Max allowed val for ack_epoch_acked, after which sampling epoch is reset */ +static const u32 bbr_ack_epoch_acked_reset_thresh = 1U << 20; +/* Time period for clamping cwnd increment due to ack aggregation */ +static const u32 bbr_extra_acked_max_us = 100 * 1000; + +/* Each cycle, try to hold sub-unity gain until inflight <= BDP. */ +static const bool bbr_drain_to_target = true; /* default: enabled */ + +extern bool tcp_snd_wnd_test(const struct tcp_sock *tp, + const struct sk_buff *skb, + unsigned int cur_mss); + +/* Do we estimate that STARTUP filled the pipe? */ +static bool bbr_full_bw_reached(const struct sock *sk) +{ + const struct bbr *bbr = inet_csk_ca(sk); + + return bbr->full_bw_cnt >= bbr_full_bw_cnt; +} + +static void bbr_set_cycle_idx(struct sock *sk, int cycle_idx) +{ + struct bbr *bbr = inet_csk_ca(sk); + bbr->cycle_idx = cycle_idx; + bbr->pacing_gain = bbr->lt_use_bw ? + BBR_UNIT : bbr_pacing_gain[bbr->cycle_idx]; +} + +u32 bbr_max_bw(const struct sock *sk); +u32 bbr_inflight(struct sock *sk, u32 bw, int gain); +u32 bbr_max_bw(const struct sock *sk); + +static void bbr_drain_to_target_cycling(struct sock *sk, + const struct rate_sample *rs) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u32 elapsed_us = + tcp_stamp_us_delta(tp->delivered_mstamp, bbr->cycle_mstamp); + u32 inflight, bw; + if (bbr->mode != BBR_PROBE_BW) + return; + + /* Always need to probe for bw before we forget good bw estimate. */ + if (elapsed_us > bbr->cycle_len * bbr->min_rtt_us) { + /* Start a new PROBE_BW probing cycle of [2 to 8] x min_rtt. */ + bbr->cycle_mstamp = tp->delivered_mstamp; + bbr->cycle_len = CYCLE_LEN - prandom_u32_max(bbr_cycle_rand); + bbr_set_cycle_idx(sk, BBR_BW_PROBE_UP); /* probe bandwidth */ + return; + } + /* The pacing_gain of 1.0 paces at the estimated bw to try to fully + * use the pipe without increasing the queue. + */ + if (bbr->pacing_gain == BBR_UNIT) + return; + inflight = rs->prior_in_flight; /* what was in-flight before ACK? */ + bw = bbr_max_bw(sk); + /* A pacing_gain < 1.0 tries to drain extra queue we added if bw + * probing didn't find more bw. If inflight falls to match BDP then we + * estimate queue is drained; persisting would underutilize the pipe. + */ + if (bbr->pacing_gain < BBR_UNIT) { + if (inflight <= bbr_inflight(sk, bw, BBR_UNIT)) + bbr_set_cycle_idx(sk, BBR_BW_PROBE_CRUISE); /* cruise */ + return; + } + /* A pacing_gain > 1.0 probes for bw by trying to raise inflight to at + * least pacing_gain*BDP; this may take more than min_rtt if min_rtt is + * small (e.g. on a LAN). We do not persist if packets are lost, since + * a path with small buffers may not hold that much. Similarly we exit + * if we were prevented by app/recv-win from reaching the target. + */ + if (elapsed_us > bbr->min_rtt_us && + (inflight >= bbr_inflight(sk, bw, bbr->pacing_gain) || + rs->losses || /* perhaps pacing_gain*BDP won't fit */ + rs->is_app_limited || /* previously app-limited */ + !tcp_send_head(sk) || /* currently app/rwin-limited */ + !tcp_snd_wnd_test(tp, tcp_send_head(sk), tp->mss_cache))) { + bbr_set_cycle_idx(sk, BBR_BW_PROBE_DOWN); /* drain queue */ + return; + } +} + + +/* Return maximum extra acked in past k-2k round trips, + * where k = bbr_extra_acked_win_rtts. + */ +static u16 bbr_extra_acked(const struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + return max(bbr->extra_acked[0], bbr->extra_acked[1]); +} + + +/* Return the windowed max recent bandwidth sample, in pkts/uS << BW_SCALE. */ +u32 bbr_max_bw(const struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + return minmax_get(&bbr->bw); +} + +/* Return the estimated bandwidth of the path, in pkts/uS << BW_SCALE. */ +static u32 bbr_bw(const struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + return bbr->lt_use_bw ? bbr->lt_bw : bbr_max_bw(sk); +} + +/* Return rate in bytes per second, optionally with a gain. + * The order here is chosen carefully to avoid overflow of u64. This should + * work for input rates of up to 2.9Tbit/sec and gain of 2.89x. + */ +static u64 bbr_rate_bytes_per_sec(struct sock *sk, u64 rate, int gain) +{ + rate *= tcp_mss_to_mtu(sk, tcp_sk(sk)->mss_cache); + rate *= gain; + rate >>= BBR_SCALE; + rate *= USEC_PER_SEC; + return rate >> BW_SCALE; +} + +/* Convert a BBR bw and gain factor to a pacing rate in bytes per second. */ +static u32 bbr_bw_to_pacing_rate(struct sock *sk, u32 bw, int gain) +{ + u64 rate = bw; + + rate = bbr_rate_bytes_per_sec(sk, rate, gain); + rate = min_t(u64, rate, sk->sk_max_pacing_rate); + return rate; +} + +/* Initialize pacing rate to: high_gain * init_cwnd / RTT. */ +static void bbr_init_pacing_rate_from_rtt(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u64 bw; + u32 rtt_us; + + if (tp->srtt_us) { /* any RTT sample yet? */ + rtt_us = max(tp->srtt_us >> 3, 1U); + bbr->has_seen_rtt = 1; + } else { /* no RTT sample yet */ + rtt_us = USEC_PER_MSEC; /* use nominal default RTT */ + } + bw = (u64)tp->snd_cwnd * BW_UNIT; + do_div(bw, rtt_us); + sk->sk_pacing_rate = bbr_bw_to_pacing_rate(sk, bw, bbr_high_gain); +} + +/* Pace using current bw estimate and a gain factor. In order to help drive the + * network toward lower queues while maintaining high utilization and low + * latency, the average pacing rate aims to be slightly (~1%) lower than the + * estimated bandwidth. This is an important aspect of the design. In this + * implementation this slightly lower pacing rate is achieved implicitly by not + * including link-layer headers in the packet size used for the pacing rate. + */ +static void bbr_set_pacing_rate(struct sock *sk, u32 bw, int gain) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u32 rate = bbr_bw_to_pacing_rate(sk, bw, gain); + + if (unlikely(!bbr->has_seen_rtt && tp->srtt_us)) + bbr_init_pacing_rate_from_rtt(sk); + if (bbr_full_bw_reached(sk) || rate > sk->sk_pacing_rate) + sk->sk_pacing_rate = rate; +} + +/* Return count of segments we want in the skbs we send, or 0 for default. */ +static u32 bbr_tso_segs_goal(struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + return bbr->tso_segs_goal; +} + +static void bbr_set_tso_segs_goal(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u32 min_segs; + + min_segs = sk->sk_pacing_rate < (bbr_min_tso_rate >> 3) ? 1 : 2; + bbr->tso_segs_goal = min(tcp_tso_autosize(sk, tp->mss_cache, min_segs), + 0x7FU); +} + +/* Save "last known good" cwnd so we can restore it after losses or PROBE_RTT */ +static void bbr_save_cwnd(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + + if (bbr->prev_ca_state < TCP_CA_Recovery && bbr->mode != BBR_PROBE_RTT) + bbr->prior_cwnd = tp->snd_cwnd; /* this cwnd is good enough */ + else /* loss recovery or BBR_PROBE_RTT have temporarily cut cwnd */ + bbr->prior_cwnd = max(bbr->prior_cwnd, tp->snd_cwnd); +} + +static void bbr_cwnd_event(struct sock *sk, enum tcp_ca_event event) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + + if (event == CA_EVENT_TX_START && tp->app_limited) { + bbr->idle_restart = 1; + bbr->ack_epoch_mstamp = tp->tcp_mstamp; + bbr->ack_epoch_acked = 0; + + /* Avoid pointless buffer overflows: pace at est. bw if we don't + * need more speed (we're restarting from idle and app-limited). + */ + if (bbr->mode == BBR_PROBE_BW) + bbr_set_pacing_rate(sk, bbr_bw(sk), BBR_UNIT); + } +} + +/* Find target cwnd. Right-size the cwnd based on min RTT and the + * estimated bottleneck bandwidth: + * + * cwnd = bw * min_rtt * gain = BDP * gain + * + * The key factor, gain, controls the amount of queue. While a small gain + * builds a smaller queue, it becomes more vulnerable to noise in RTT + * measurements (e.g., delayed ACKs or other ACK compression effects). This + * noise may cause BBR to under-estimate the rate. + * + * To achieve full performance in high-speed paths, we budget enough cwnd to + * fit full-sized skbs in-flight on both end hosts to fully utilize the path: + * - one skb in sending host Qdisc, + * - one skb in sending host TSO/GSO engine + * - one skb being received by receiver host LRO/GRO/delayed-ACK engine + * Don't worry, at low rates (bbr_min_tso_rate) this won't bloat cwnd because + * in such cases tso_segs_goal is 1. The minimum cwnd is 4 packets, + * which allows 2 outstanding 2-packet sequences, to try to keep pipe + * full even with ACK-every-other-packet delayed ACKs. + */ +static u32 bbr_bdp(struct sock *sk, u32 bw, int gain) +{ + struct bbr *bbr = inet_csk_ca(sk); + u32 bdp; + u64 w; + + /* If we've never had a valid RTT sample, cap cwnd at the initial + * default. This should only happen when the connection is not using TCP + * timestamps and has retransmitted all of the SYN/SYNACK/data packets + * ACKed so far. In this case, an RTO can cut cwnd to 1, in which + * case we need to slow-start up toward something safe: TCP_INIT_CWND. + */ + if (unlikely(bbr->min_rtt_us == ~0U)) /* no valid RTT samples yet? */ + return TCP_INIT_CWND; /* be safe: cap at default initial cwnd*/ + + w = (u64)bw * bbr->min_rtt_us; + + /* Apply a gain to the given value, then remove the BW_SCALE shift. */ + bdp = (((w * gain) >> BBR_SCALE) + BW_UNIT - 1) / BW_UNIT; + + return bdp; +} + +static u32 bbr_quantization_budget(struct sock *sk, u32 cwnd, int gain) +{ + + /* Allow enough full-sized skbs in flight to utilize end systems. */ + cwnd += 3 * bbr_tso_segs_goal(sk); + + return cwnd; +} + +/* Find inflight based on min RTT and the estimated bottleneck bandwidth. */ +u32 bbr_inflight(struct sock *sk, u32 bw, int gain) +{ + u32 inflight; + inflight = bbr_bdp(sk, bw, gain); + inflight = bbr_quantization_budget(sk, inflight, gain); + return inflight; + +} + +/* Find the cwnd increment based on estimate of ack aggregation */ +static u32 bbr_ack_aggregation_cwnd(struct sock *sk) +{ + u32 max_aggr_cwnd, aggr_cwnd = 0; + if (bbr_extra_acked_gain && bbr_full_bw_reached(sk)) { + max_aggr_cwnd = ((u64)bbr_bw(sk) * bbr_extra_acked_max_us) + / BW_UNIT; + aggr_cwnd = (bbr_extra_acked_gain * bbr_extra_acked(sk)) + >> BBR_SCALE; + aggr_cwnd = min(aggr_cwnd, max_aggr_cwnd); + } + return aggr_cwnd; +} + + +/* An optimization in BBR to reduce losses: On the first round of recovery, we + * follow the packet conservation principle: send P packets per P packets acked. + * After that, we slow-start and send at most 2*P packets per P packets acked. + * After recovery finishes, or upon undo, we restore the cwnd we had when + * recovery started (capped by the target cwnd based on estimated BDP). + * + * TODO(ycheng/ncardwell): implement a rate-based approach. + */ +static bool bbr_set_cwnd_to_recover_or_restore( + struct sock *sk, const struct rate_sample *rs, u32 acked, u32 *new_cwnd) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u8 prev_state = bbr->prev_ca_state, state = inet_csk(sk)->icsk_ca_state; + u32 cwnd = tp->snd_cwnd; + + /* An ACK for P pkts should release at most 2*P packets. We do this + * in two steps. First, here we deduct the number of lost packets. + * Then, in bbr_set_cwnd() we slow start up toward the target cwnd. + */ + if (rs->losses > 0) + cwnd = max_t(s32, cwnd - rs->losses, 1); + + if (state == TCP_CA_Recovery && prev_state != TCP_CA_Recovery) { + /* Starting 1st round of Recovery, so do packet conservation. */ + bbr->packet_conservation = 1; + bbr->next_rtt_delivered = tp->delivered; /* start round now */ + /* Cut unused cwnd from app behavior, TSQ, or TSO deferral: */ + cwnd = tcp_packets_in_flight(tp) + acked; + } else if (prev_state >= TCP_CA_Recovery && state < TCP_CA_Recovery) { + /* Exiting loss recovery; restore cwnd saved before recovery. */ + bbr->restore_cwnd = 1; + bbr->packet_conservation = 0; + } + bbr->prev_ca_state = state; + + if (bbr->restore_cwnd) { + /* Restore cwnd after exiting loss recovery or PROBE_RTT. */ + cwnd = max(cwnd, bbr->prior_cwnd); + bbr->restore_cwnd = 0; + } + + if (bbr->packet_conservation) { + *new_cwnd = max(cwnd, tcp_packets_in_flight(tp) + acked); + return true; /* yes, using packet conservation */ + } + *new_cwnd = cwnd; + return false; +} + +/* Slow-start up toward target cwnd (if bw estimate is growing, or packet loss + * has drawn us down below target), or snap down to target if we're above it. + */ +static void bbr_set_cwnd(struct sock *sk, const struct rate_sample *rs, + u32 acked, u32 bw, int gain) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u32 cwnd = 0, target_cwnd = 0; + + if (!acked) + return; + + if (bbr_set_cwnd_to_recover_or_restore(sk, rs, acked, &cwnd)) + goto done; + + /* If we're below target cwnd, slow start cwnd toward target cwnd. */ + target_cwnd = bbr_bdp(sk, bw, gain); + //// + /* Increment the cwnd to account for excess ACKed data that seems + * due to aggregation (of data and/or ACKs) visible in the ACK stream. + */ + target_cwnd += bbr_ack_aggregation_cwnd(sk); + //// + target_cwnd = bbr_quantization_budget(sk, target_cwnd, gain); + if (bbr_full_bw_reached(sk)) /* only cut cwnd if we filled the pipe */ + cwnd = min(cwnd + acked, target_cwnd); + else if (cwnd < target_cwnd || tp->delivered < TCP_INIT_CWND) + cwnd = cwnd + acked; + cwnd = max(cwnd, bbr_cwnd_min_target); + +done: + tp->snd_cwnd = min(cwnd, tp->snd_cwnd_clamp); /* apply global cap */ + if (bbr->mode == BBR_PROBE_RTT) /* drain queue, refresh min_rtt */ + tp->snd_cwnd = min(tp->snd_cwnd, bbr_cwnd_min_target); +} + +/* End cycle phase if it's time and/or we hit the phase's in-flight target. */ +static bool bbr_is_next_cycle_phase(struct sock *sk, + const struct rate_sample *rs) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + bool is_full_length = + tcp_stamp_us_delta(tp->delivered_mstamp, bbr->cycle_mstamp) > + bbr->min_rtt_us; + u32 inflight, bw; + + /* The pacing_gain of 1.0 paces at the estimated bw to try to fully + * use the pipe without increasing the queue. + */ + if (bbr->pacing_gain == BBR_UNIT) + return is_full_length; /* just use wall clock time */ + + inflight = rs->prior_in_flight; /* what was in-flight before ACK? */ + bw = bbr_max_bw(sk); + + /* A pacing_gain > 1.0 probes for bw by trying to raise inflight to at + * least pacing_gain*BDP; this may take more than min_rtt if min_rtt is + * small (e.g. on a LAN). We do not persist if packets are lost, since + * a path with small buffers may not hold that much. + */ + if (bbr->pacing_gain > BBR_UNIT) + return is_full_length && + (rs->losses || /* perhaps pacing_gain*BDP won't fit */ + inflight >= bbr_inflight(sk, bw, bbr->pacing_gain)); + + /* A pacing_gain < 1.0 tries to drain extra queue we added if bw + * probing didn't find more bw. If inflight falls to match BDP then we + * estimate queue is drained; persisting would underutilize the pipe. + */ + return is_full_length || + inflight <= bbr_inflight(sk, bw, BBR_UNIT); +} + +static void bbr_advance_cycle_phase(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + + + bbr->cycle_idx = (bbr->cycle_idx + 1) & (CYCLE_LEN - 1); + bbr->cycle_mstamp = tp->delivered_mstamp; + bbr->pacing_gain = bbr_pacing_gain[bbr->cycle_idx]; +} + +/* Gain cycling: cycle pacing gain to converge to fair share of available bw. */ +static void bbr_update_cycle_phase(struct sock *sk, + const struct rate_sample *rs) +{ + struct bbr *bbr = inet_csk_ca(sk); + + if (bbr_drain_to_target) { + bbr_drain_to_target_cycling(sk, rs); + return; + } + + if ((bbr->mode == BBR_PROBE_BW) && !bbr->lt_use_bw && + bbr_is_next_cycle_phase(sk, rs)) + bbr_advance_cycle_phase(sk); +} + +static void bbr_reset_startup_mode(struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + bbr->mode = BBR_STARTUP; + bbr->pacing_gain = bbr_high_gain; + bbr->cwnd_gain = bbr_high_gain; +} + +static void bbr_reset_probe_bw_mode(struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + bbr->mode = BBR_PROBE_BW; + bbr->pacing_gain = BBR_UNIT; + bbr->cwnd_gain = bbr_cwnd_gain; + bbr->cycle_idx = CYCLE_LEN - 1 - prandom_u32_max(bbr_cycle_rand); + bbr_advance_cycle_phase(sk); /* flip to next phase of gain cycle */ +} + +static void bbr_reset_mode(struct sock *sk) +{ + if (!bbr_full_bw_reached(sk)) + bbr_reset_startup_mode(sk); + else + bbr_reset_probe_bw_mode(sk); +} + +/* Start a new long-term sampling interval. */ +static void bbr_reset_lt_bw_sampling_interval(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + + bbr->lt_last_stamp = div_u64(tp->delivered_mstamp, USEC_PER_MSEC); + bbr->lt_last_delivered = tp->delivered; + bbr->lt_last_lost = tp->lost; + bbr->lt_rtt_cnt = 0; +} + +/* Completely reset long-term bandwidth sampling. */ +static void bbr_reset_lt_bw_sampling(struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + bbr->lt_bw = 0; + bbr->lt_use_bw = 0; + bbr->lt_is_sampling = false; + bbr_reset_lt_bw_sampling_interval(sk); +} + +/* Long-term bw sampling interval is done. Estimate whether we're policed. */ +static void bbr_lt_bw_interval_done(struct sock *sk, u32 bw) +{ + struct bbr *bbr = inet_csk_ca(sk); + u32 diff; + + if (bbr->lt_bw) { /* do we have bw from a previous interval? */ + /* Is new bw close to the lt_bw from the previous interval? */ + diff = abs(bw - bbr->lt_bw); + if ((diff * BBR_UNIT <= bbr_lt_bw_ratio * bbr->lt_bw) || + (bbr_rate_bytes_per_sec(sk, diff, BBR_UNIT) <= + bbr_lt_bw_diff)) { + /* All criteria are met; estimate we're policed. */ + bbr->lt_bw = (bw + bbr->lt_bw) >> 1; /* avg 2 intvls */ + bbr->lt_use_bw = 1; + bbr->pacing_gain = BBR_UNIT; /* try to avoid drops */ + bbr->lt_rtt_cnt = 0; + return; + } + } + bbr->lt_bw = bw; + bbr_reset_lt_bw_sampling_interval(sk); +} + +/* Token-bucket traffic policers are common (see "An Internet-Wide Analysis of + * Traffic Policing", SIGCOMM 2016). BBR detects token-bucket policers and + * explicitly models their policed rate, to reduce unnecessary losses. We + * estimate that we're policed if we see 2 consecutive sampling intervals with + * consistent throughput and high packet loss. If we think we're being policed, + * set lt_bw to the "long-term" average delivery rate from those 2 intervals. + */ +static void bbr_lt_bw_sampling(struct sock *sk, const struct rate_sample *rs) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u32 lost, delivered; + u64 bw; + u32 t; + + if (bbr->lt_use_bw) { /* already using long-term rate, lt_bw? */ + if (bbr->mode == BBR_PROBE_BW && bbr->round_start && + ++bbr->lt_rtt_cnt >= bbr_lt_bw_max_rtts) { + bbr_reset_lt_bw_sampling(sk); /* stop using lt_bw */ + bbr_reset_probe_bw_mode(sk); /* restart gain cycling */ + } + return; + } + + /* Wait for the first loss before sampling, to let the policer exhaust + * its tokens and estimate the steady-state rate allowed by the policer. + * Starting samples earlier includes bursts that over-estimate the bw. + */ + if (!bbr->lt_is_sampling) { + if (!rs->losses) + return; + bbr_reset_lt_bw_sampling_interval(sk); + bbr->lt_is_sampling = true; + } + + /* To avoid underestimates, reset sampling if we run out of data. */ + if (rs->is_app_limited) { + bbr_reset_lt_bw_sampling(sk); + return; + } + + if (bbr->round_start) + bbr->lt_rtt_cnt++; /* count round trips in this interval */ + if (bbr->lt_rtt_cnt < bbr_lt_intvl_min_rtts) + return; /* sampling interval needs to be longer */ + if (bbr->lt_rtt_cnt > 4 * bbr_lt_intvl_min_rtts) { + bbr_reset_lt_bw_sampling(sk); /* interval is too long */ + return; + } + + /* End sampling interval when a packet is lost, so we estimate the + * policer tokens were exhausted. Stopping the sampling before the + * tokens are exhausted under-estimates the policed rate. + */ + if (!rs->losses) + return; + + /* Calculate packets lost and delivered in sampling interval. */ + lost = tp->lost - bbr->lt_last_lost; + delivered = tp->delivered - bbr->lt_last_delivered; + /* Is loss rate (lost/delivered) >= lt_loss_thresh? If not, wait. */ + if (!delivered || (lost << BBR_SCALE) < bbr_lt_loss_thresh * delivered) + return; + + /* Find average delivery rate in this sampling interval. */ + t = div_u64(tp->delivered_mstamp, USEC_PER_MSEC) - bbr->lt_last_stamp; + if ((s32)t < 1) + return; /* interval is less than one ms, so wait */ + /* Check if can multiply without overflow */ + if (t >= ~0U / USEC_PER_MSEC) { + bbr_reset_lt_bw_sampling(sk); /* interval too long; reset */ + return; + } + t *= USEC_PER_MSEC; + bw = (u64)delivered * BW_UNIT; + do_div(bw, t); + bbr_lt_bw_interval_done(sk, bw); +} + +/* Estimate the bandwidth based on how fast packets are delivered */ +static void bbr_update_bw(struct sock *sk, const struct rate_sample *rs) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u64 bw; + + bbr->round_start = 0; + if (rs->delivered < 0 || rs->interval_us <= 0) + return; /* Not a valid observation */ + + /* See if we've reached the next RTT */ + if (!before(rs->prior_delivered, bbr->next_rtt_delivered)) { + bbr->next_rtt_delivered = tp->delivered; + bbr->rtt_cnt++; + bbr->round_start = 1; + bbr->packet_conservation = 0; + } + + bbr_lt_bw_sampling(sk, rs); + + /* Divide delivered by the interval to find a (lower bound) bottleneck + * bandwidth sample. Delivered is in packets and interval_us in uS and + * ratio will be <<1 for most connections. So delivered is first scaled. + */ + bw = (u64)rs->delivered * BW_UNIT; + do_div(bw, rs->interval_us); + + /* If this sample is application-limited, it is likely to have a very + * low delivered count that represents application behavior rather than + * the available network rate. Such a sample could drag down estimated + * bw, causing needless slow-down. Thus, to continue to send at the + * last measured network rate, we filter out app-limited samples unless + * they describe the path bw at least as well as our bw model. + * + * So the goal during app-limited phase is to proceed with the best + * network rate no matter how long. We automatically leave this + * phase when app writes faster than the network can deliver :) + */ + if (!rs->is_app_limited || bw >= bbr_max_bw(sk)) { + /* Incorporate new sample into our max bw filter. */ + minmax_running_max(&bbr->bw, bbr_bw_rtts, bbr->rtt_cnt, bw); + } +} + +/* Estimate when the pipe is full, using the change in delivery rate: BBR + * estimates that STARTUP filled the pipe if the estimated bw hasn't changed by + * at least bbr_full_bw_thresh (25%) after bbr_full_bw_cnt (3) non-app-limited + * rounds. Why 3 rounds: 1: rwin autotuning grows the rwin, 2: we fill the + * higher rwin, 3: we get higher delivery rate samples. Or transient + * cross-traffic or radio noise can go away. CUBIC Hystart shares a similar + * design goal, but uses delay and inter-ACK spacing instead of bandwidth. + */ +static void bbr_check_full_bw_reached(struct sock *sk, + const struct rate_sample *rs) +{ + struct bbr *bbr = inet_csk_ca(sk); + u32 bw_thresh; + + if (bbr_full_bw_reached(sk) || !bbr->round_start || rs->is_app_limited) + return; + + bw_thresh = (u64)bbr->full_bw * bbr_full_bw_thresh >> BBR_SCALE; + if (bbr_max_bw(sk) >= bw_thresh) { + bbr->full_bw = bbr_max_bw(sk); + bbr->full_bw_cnt = 0; + return; + } + ++bbr->full_bw_cnt; +} + +/* If pipe is probably full, drain the queue and then enter steady-state. */ +static void bbr_check_drain(struct sock *sk, const struct rate_sample *rs) +{ + struct bbr *bbr = inet_csk_ca(sk); + + if (bbr->mode == BBR_STARTUP && bbr_full_bw_reached(sk)) { + bbr->mode = BBR_DRAIN; /* drain queue we created */ + bbr->pacing_gain = bbr_drain_gain; /* pace slow to drain */ + bbr->cwnd_gain = bbr_high_gain; /* maintain cwnd */ + } /* fall through to check if in-flight is already small: */ + if (bbr->mode == BBR_DRAIN && + tcp_packets_in_flight(tcp_sk(sk)) <= bbr_inflight(sk, bbr_max_bw(sk), BBR_UNIT)) + bbr_reset_probe_bw_mode(sk); /* we estimate queue is drained */ +} + + +/* Estimates the windowed max degree of ack aggregation. + * This is used to provision extra in-flight data to keep sending during + * inter-ACK silences. + * + * Degree of ack aggregation is estimated as extra data acked beyond expected. + * + * max_extra_acked = "maximum recent excess data ACKed beyond max_bw * interval" + * cwnd += max_extra_acked + * + * Max extra_acked is clamped by cwnd and bw * bbr_extra_acked_max_us (100 ms). + * Max filter is an approximate sliding window of 10-20 (packet timed) round + * trips. + */ + static void bbr_update_ack_aggregation(struct sock *sk, + const struct rate_sample *rs) + { + u32 epoch_us, expected_acked, extra_acked; + struct bbr *bbr = inet_csk_ca(sk); + struct tcp_sock *tp = tcp_sk(sk); + if (!bbr_extra_acked_gain || rs->acked_sacked <= 0 || + rs->delivered < 0 || rs->interval_us <= 0) + return; + if (bbr->round_start) { + bbr->extra_acked_win_rtts = min(0x1F, + bbr->extra_acked_win_rtts + 1); + if (bbr->extra_acked_win_rtts >= bbr_extra_acked_win_rtts) { + bbr->extra_acked_win_rtts = 0; + bbr->extra_acked_win_idx = bbr->extra_acked_win_idx ?0 : 1; + bbr->extra_acked[bbr->extra_acked_win_idx] = 0; + } + } + /* Compute how many packets we expected to be delivered over epoch. */ + epoch_us = tcp_stamp_us_delta(tp->delivered_mstamp, + bbr->ack_epoch_mstamp); + expected_acked = ((u64)bbr_bw(sk) * epoch_us) / BW_UNIT; + /* Reset the aggregation epoch if ACK rate is below expected rate or + * significantly large no. of ack received since epoch (potentially + * quite old epoch). + */ + if (bbr->ack_epoch_acked <= expected_acked || + (bbr->ack_epoch_acked + rs->acked_sacked >= + bbr_ack_epoch_acked_reset_thresh)) { + bbr->ack_epoch_acked = 0; + bbr->ack_epoch_mstamp = tp->delivered_mstamp; + expected_acked = 0; + } + /* Compute excess data delivered, beyond what was expected. */ + bbr->ack_epoch_acked = min(0xFFFFFU, + bbr->ack_epoch_acked + rs->acked_sacked); + extra_acked = bbr->ack_epoch_acked - expected_acked; + extra_acked = min(extra_acked, tp->snd_cwnd); + if (extra_acked > bbr->extra_acked[bbr->extra_acked_win_idx]) + bbr->extra_acked[bbr->extra_acked_win_idx] = extra_acked; +} + +/* The goal of PROBE_RTT mode is to have BBR flows cooperatively and + * periodically drain the bottleneck queue, to converge to measure the true + * min_rtt (unloaded propagation delay). This allows the flows to keep queues + * small (reducing queuing delay and packet loss) and achieve fairness among + * BBR flows. + * + * The min_rtt filter window is 10 seconds. When the min_rtt estimate expires, + * we enter PROBE_RTT mode and cap the cwnd at bbr_cwnd_min_target=4 packets. + * After at least bbr_probe_rtt_mode_ms=200ms and at least one packet-timed + * round trip elapsed with that flight size <= 4, we leave PROBE_RTT mode and + * re-enter the previous mode. BBR uses 200ms to approximately bound the + * performance penalty of PROBE_RTT's cwnd capping to roughly 2% (200ms/10s). + * + * Note that flows need only pay 2% if they are busy sending over the last 10 + * seconds. Interactive applications (e.g., Web, RPCs, video chunks) often have + * natural silences or low-rate periods within 10 seconds where the rate is low + * enough for long enough to drain its queue in the bottleneck. We pick up + * these min RTT measurements opportunistically with our min_rtt filter. :-) + */ + +static void bbr_update_min_rtt(struct sock *sk, const struct rate_sample *rs) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + bool filter_expired; + + /* Track min RTT seen in the min_rtt_win_sec filter window: */ + filter_expired = after(tcp_jiffies32, + bbr->min_rtt_stamp + bbr_min_rtt_win_sec * HZ); + if (rs->rtt_us >= 0 && + (rs->rtt_us <= bbr->min_rtt_us || filter_expired)) { + bbr->min_rtt_us = rs->rtt_us; + bbr->min_rtt_stamp = tcp_jiffies32; + } + + if (bbr_probe_rtt_mode_ms > 0 && filter_expired && + !bbr->idle_restart && bbr->mode != BBR_PROBE_RTT) { + bbr->mode = BBR_PROBE_RTT; /* dip, drain queue */ + bbr->pacing_gain = BBR_UNIT; + bbr->cwnd_gain = BBR_UNIT; + bbr_save_cwnd(sk); /* note cwnd so we can restore it */ + bbr->probe_rtt_done_stamp = 0; + } + + if (bbr->mode == BBR_PROBE_RTT) { + /* Ignore low rate samples during this mode. */ + tp->app_limited = + (tp->delivered + tcp_packets_in_flight(tp)) ? : 1; + /* Maintain min packets in flight for max(200 ms, 1 round). */ + if (!bbr->probe_rtt_done_stamp && + tcp_packets_in_flight(tp) <= bbr_cwnd_min_target) { + bbr->probe_rtt_done_stamp = tcp_jiffies32 + + msecs_to_jiffies(bbr_probe_rtt_mode_ms); + bbr->probe_rtt_round_done = 0; + bbr->next_rtt_delivered = tp->delivered; + } else if (bbr->probe_rtt_done_stamp) { + if (bbr->round_start) + bbr->probe_rtt_round_done = 1; + if (bbr->probe_rtt_round_done && + after(tcp_jiffies32, bbr->probe_rtt_done_stamp)) { + bbr->min_rtt_stamp = tcp_jiffies32; + bbr->restore_cwnd = 1; /* snap to prior_cwnd */ + bbr_reset_mode(sk); + } + } + } + bbr->idle_restart = 0; +} + +static void bbr_update_model(struct sock *sk, const struct rate_sample *rs) +{ + bbr_update_bw(sk, rs); + bbr_update_ack_aggregation(sk, rs); + bbr_update_cycle_phase(sk, rs); + bbr_check_full_bw_reached(sk, rs); + bbr_check_drain(sk, rs); + bbr_update_min_rtt(sk, rs); +} + +static void bbr_main(struct sock *sk, const struct rate_sample *rs) +{ + struct bbr *bbr = inet_csk_ca(sk); + u32 bw; + + bbr_update_model(sk, rs); + + bw = bbr_bw(sk); + bbr_set_pacing_rate(sk, bw, bbr->pacing_gain); + bbr_set_tso_segs_goal(sk); + bbr_set_cwnd(sk, rs, rs->acked_sacked, bw, bbr->cwnd_gain); +} + +static void bbr_init(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + + bbr->prior_cwnd = 0; + bbr->tso_segs_goal = 0; /* default segs per skb until first ACK */ + bbr->rtt_cnt = 0; + bbr->next_rtt_delivered = 0; + bbr->prev_ca_state = TCP_CA_Open; + bbr->packet_conservation = 0; + + bbr->probe_rtt_done_stamp = 0; + bbr->probe_rtt_round_done = 0; + bbr->min_rtt_us = tcp_min_rtt(tp); + bbr->min_rtt_stamp = tcp_jiffies32; + + minmax_reset(&bbr->bw, bbr->rtt_cnt, 0); /* init max bw to 0 */ + + bbr->has_seen_rtt = 0; + bbr_init_pacing_rate_from_rtt(sk); + + bbr->restore_cwnd = 0; + bbr->round_start = 0; + bbr->idle_restart = 0; + bbr->full_bw = 0; + bbr->full_bw_cnt = 0; + bbr->cycle_mstamp = 0; + bbr->cycle_idx = 0; + bbr->cycle_len = 0; + bbr_reset_lt_bw_sampling(sk); + bbr_reset_startup_mode(sk); + bbr->ack_epoch_mstamp = tp->tcp_mstamp; + bbr->ack_epoch_acked = 0; + bbr->extra_acked_win_rtts = 0; + bbr->extra_acked_win_idx = 0; + bbr->extra_acked[0] = 0; + bbr->extra_acked[1] = 0; + + cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED); +} + +static u32 bbr_sndbuf_expand(struct sock *sk) +{ + /* Provision 3 * cwnd since BBR may slow-start even during recovery. */ + return 3; +} + +/* In theory BBR does not need to undo the cwnd since it does not + * always reduce cwnd on losses (see bbr_main()). Keep it for now. + */ +static u32 bbr_undo_cwnd(struct sock *sk) +{ + return tcp_sk(sk)->snd_cwnd; +} + +/* Entering loss recovery, so save cwnd for when we exit or undo recovery. */ +static u32 bbr_ssthresh(struct sock *sk) +{ + bbr_save_cwnd(sk); + return TCP_INFINITE_SSTHRESH; /* BBR does not use ssthresh */ +} + +static size_t bbr_get_info(struct sock *sk, u32 ext, int *attr, + union tcp_cc_info *info) +{ + if (ext & (1 << (INET_DIAG_BBRINFO - 1)) || + ext & (1 << (INET_DIAG_VEGASINFO - 1))) { + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u64 bw = bbr_bw(sk); + + bw = bw * tp->mss_cache * USEC_PER_SEC >> BW_SCALE; + memset(&info->bbr, 0, sizeof(info->bbr)); + info->bbr.bbr_bw_lo = (u32)bw; + info->bbr.bbr_bw_hi = (u32)(bw >> 32); + info->bbr.bbr_min_rtt = bbr->min_rtt_us; + info->bbr.bbr_pacing_gain = bbr->pacing_gain; + info->bbr.bbr_cwnd_gain = bbr->cwnd_gain; + *attr = INET_DIAG_BBRINFO; + return sizeof(info->bbr); + } + return 0; +} + +static void bbr_set_state(struct sock *sk, u8 new_state) +{ + struct bbr *bbr = inet_csk_ca(sk); + + if (new_state == TCP_CA_Loss) { + struct rate_sample rs = { .losses = 1 }; + + bbr->prev_ca_state = TCP_CA_Loss; + bbr->full_bw = 0; + bbr->round_start = 1; /* treat RTO like end of a round */ + bbr_lt_bw_sampling(sk, &rs); + } +} + +static struct tcp_congestion_ops tcp_bbr_cong_ops __read_mostly = { + .flags = TCP_CONG_NON_RESTRICTED, + .name = "bbrplus", + .owner = THIS_MODULE, + .init = bbr_init, + .cong_control = bbr_main, + .sndbuf_expand = bbr_sndbuf_expand, + .undo_cwnd = bbr_undo_cwnd, + .cwnd_event = bbr_cwnd_event, + .ssthresh = bbr_ssthresh, + .tso_segs_goal = bbr_tso_segs_goal, + .get_info = bbr_get_info, + .set_state = bbr_set_state, +}; + +static int __init bbr_register(void) +{ + BUILD_BUG_ON(sizeof(struct bbr) > ICSK_CA_PRIV_SIZE); + return tcp_register_congestion_control(&tcp_bbr_cong_ops); +} + +static void __exit bbr_unregister(void) +{ + tcp_unregister_congestion_control(&tcp_bbr_cong_ops); +} + +module_init(bbr_register); +module_exit(bbr_unregister); + +MODULE_AUTHOR("Van Jacobson "); +MODULE_AUTHOR("Neal Cardwell "); +MODULE_AUTHOR("Yuchung Cheng "); +MODULE_AUTHOR("Soheil Hassas Yeganeh "); +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_DESCRIPTION("TCP BBR (Bottleneck Bandwidth and RTT)"); \ No newline at end of file diff --git a/package/ctcgfw/bbr-mod/Makefile b/package/ctcgfw/bbr-mod/Makefile new file mode 100644 index 0000000000..55c8c82344 --- /dev/null +++ b/package/ctcgfw/bbr-mod/Makefile @@ -0,0 +1,47 @@ +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=tcp-bbr-mod +PKG_RELEASE:=1 + +include $(INCLUDE_DIR)/package.mk + +define KernelPackage/$(PKG_NAME) + SUBMENU:=Network Support + TITLE:=Modified bbr tcp congestion control + DEPENDS:=@LINUX_4_14 + FILES:=$(PKG_BUILD_DIR)/tcp_bbr_mod.ko + AUTOLOAD:=$(call AutoLoad,99,tcp-bbr-mod) + KCONFIG:= +endef + +define KernelPackage/$(PKG_NAME)/description + Kernel module of modified BBR tcp congestion control +endef + +EXTRA_KCONFIG:= \ + + +EXTRA_CFLAGS:= \ + $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(EXTRA_KCONFIG)))) \ + $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(EXTRA_KCONFIG)))) \ + +MAKE_OPTS:= \ + ARCH="$(LINUX_KARCH)" \ + CROSS_COMPILE="$(TARGET_CROSS)" \ + SUBDIRS="$(PKG_BUILD_DIR)" \ + EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \ + $(EXTRA_KCONFIG) + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) + $(CP) ./src/* $(PKG_BUILD_DIR)/ +endef + +define Build/Compile + $(MAKE) -C "$(LINUX_DIR)" \ + $(MAKE_OPTS) \ + modules +endef + +$(eval $(call KernelPackage,$(PKG_NAME))) diff --git a/package/ctcgfw/bbr-mod/src/Makefile b/package/ctcgfw/bbr-mod/src/Makefile new file mode 100644 index 0000000000..ec3e7d1834 --- /dev/null +++ b/package/ctcgfw/bbr-mod/src/Makefile @@ -0,0 +1 @@ +obj-m := tcp_bbr_mod.o diff --git a/package/ctcgfw/bbr-mod/src/tcp_bbr_mod.c b/package/ctcgfw/bbr-mod/src/tcp_bbr_mod.c new file mode 100644 index 0000000000..6aac1e34c3 --- /dev/null +++ b/package/ctcgfw/bbr-mod/src/tcp_bbr_mod.c @@ -0,0 +1,962 @@ +/* Bottleneck Bandwidth and RTT (BBR) congestion control + * + * BBR congestion control computes the sending rate based on the delivery + * rate (throughput) estimated from ACKs. In a nutshell: + * + * On each ACK, update our model of the network path: + * bottleneck_bandwidth = windowed_max(delivered / elapsed, 10 round trips) + * min_rtt = windowed_min(rtt, 10 seconds) + * pacing_rate = pacing_gain * bottleneck_bandwidth + * cwnd = max(cwnd_gain * bottleneck_bandwidth * min_rtt, 4) + * + * The core algorithm does not react directly to packet losses or delays, + * although BBR may adjust the size of next send per ACK when loss is + * observed, or adjust the sending rate if it estimates there is a + * traffic policer, in order to keep the drop rate reasonable. + * + * Here is a state transition diagram for BBR: + * + * | + * V + * +---> STARTUP ----+ + * | | | + * | V | + * | DRAIN ----+ + * | | | + * | V | + * +---> PROBE_BW ----+ + * | ^ | | + * | | | | + * | +----+ | + * | | + * +---- PROBE_RTT <--+ + * + * A BBR flow starts in STARTUP, and ramps up its sending rate quickly. + * When it estimates the pipe is full, it enters DRAIN to drain the queue. + * In steady state a BBR flow only uses PROBE_BW and PROBE_RTT. + * A long-lived BBR flow spends the vast majority of its time remaining + * (repeatedly) in PROBE_BW, fully probing and utilizing the pipe's bandwidth + * in a fair manner, with a small, bounded queue. *If* a flow has been + * continuously sending for the entire min_rtt window, and hasn't seen an RTT + * sample that matches or decreases its min_rtt estimate for 10 seconds, then + * it briefly enters PROBE_RTT to cut inflight to a minimum value to re-probe + * the path's two-way propagation delay (min_rtt). When exiting PROBE_RTT, if + * we estimated that we reached the full bw of the pipe then we enter PROBE_BW; + * otherwise we enter STARTUP to try to fill the pipe. + * + * BBR is described in detail in: + * "BBR: Congestion-Based Congestion Control", + * Neal Cardwell, Yuchung Cheng, C. Stephen Gunn, Soheil Hassas Yeganeh, + * Van Jacobson. ACM Queue, Vol. 14 No. 5, September-October 2016. + * + * There is a public e-mail list for discussing BBR development and testing: + * https://groups.google.com/forum/#!forum/bbr-dev + * + * NOTE: BBR might be used with the fq qdisc ("man tc-fq") with pacing enabled, + * otherwise TCP stack falls back to an internal pacing using one high + * resolution timer per TCP socket and may use more resources. + */ +#include +#include +#include +#include +#include +#include + +/* Scale factor for rate in pkt/uSec unit to avoid truncation in bandwidth + * estimation. The rate unit ~= (1500 bytes / 1 usec / 2^24) ~= 715 bps. + * This handles bandwidths from 0.06pps (715bps) to 256Mpps (3Tbps) in a u32. + * Since the minimum window is >=4 packets, the lower bound isn't + * an issue. The upper bound isn't an issue with existing technologies. + */ +#define BW_SCALE 24 +#define BW_UNIT (1 << BW_SCALE) + +#define BBR_SCALE 8 /* scaling factor for fractions in BBR (e.g. gains) */ +#define BBR_UNIT (1 << BBR_SCALE) + +/* BBR has the following modes for deciding how fast to send: */ +enum bbr_mode { + BBR_STARTUP, /* ramp up sending rate rapidly to fill pipe */ + BBR_DRAIN, /* drain any queue created during startup */ + BBR_PROBE_BW, /* discover, share bw: pace around estimated bw */ + BBR_PROBE_RTT, /* cut inflight to min to probe min_rtt */ +}; + +/* BBR congestion control block */ +struct bbr { + u32 min_rtt_us; /* min RTT in min_rtt_win_sec window */ + u32 min_rtt_stamp; /* timestamp of min_rtt_us */ + u32 probe_rtt_done_stamp; /* end time for BBR_PROBE_RTT mode */ + struct minmax bw; /* Max recent delivery rate in pkts/uS << 24 */ + u32 rtt_cnt; /* count of packet-timed rounds elapsed */ + u32 next_rtt_delivered; /* scb->tx.delivered at end of round */ + u64 cycle_mstamp; /* time of this cycle phase start */ + u32 mode:3, /* current bbr_mode in state machine */ + prev_ca_state:3, /* CA state on previous ACK */ + packet_conservation:1, /* use packet conservation? */ + restore_cwnd:1, /* decided to revert cwnd to old value */ + round_start:1, /* start of packet-timed tx->ack round? */ + tso_segs_goal:7, /* segments we want in each skb we send */ + idle_restart:1, /* restarting after idle? */ + probe_rtt_round_done:1, /* a BBR_PROBE_RTT round at 4 pkts? */ + unused:5, + lt_is_sampling:1, /* taking long-term ("LT") samples now? */ + lt_rtt_cnt:7, /* round trips in long-term interval */ + lt_use_bw:1; /* use lt_bw as our bw estimate? */ + u32 lt_bw; /* LT est delivery rate in pkts/uS << 24 */ + u32 lt_last_delivered; /* LT intvl start: tp->delivered */ + u32 lt_last_stamp; /* LT intvl start: tp->delivered_mstamp */ + u32 lt_last_lost; /* LT intvl start: tp->lost */ + u32 pacing_gain:10, /* current gain for setting pacing rate */ + cwnd_gain:10, /* current gain for setting cwnd */ + full_bw_reached:1, /* reached full bw in Startup? */ + full_bw_cnt:2, /* number of rounds without large bw gains */ + cycle_idx:3, /* current index in pacing_gain cycle array */ + has_seen_rtt:1, /* have we seen an RTT sample yet? */ + unused_b:5; + u32 prior_cwnd; /* prior cwnd upon entering loss recovery */ + u32 full_bw; /* recent bw, to estimate if pipe is full */ +}; + +#define CYCLE_LEN 8 /* number of phases in a pacing gain cycle */ + +/* Window length of bw filter (in rounds): */ +static const int bbr_bw_rtts = CYCLE_LEN + 2; +/* Window length of min_rtt filter (in sec): */ +static const u32 bbr_min_rtt_win_sec = 10; +/* Minimum time (in ms) spent at bbr_cwnd_min_target in BBR_PROBE_RTT mode: */ +static const u32 bbr_probe_rtt_mode_ms = 100; +/* Skip TSO below the following bandwidth (bits/sec): */ +static const int bbr_min_tso_rate = 1200000; + +/* We use a high_gain value of 2/ln(2) because it's the smallest pacing gain + * that will allow a smoothly increasing pacing rate that will double each RTT + * and send the same number of packets per RTT that an un-paced, slow-starting + * Reno or CUBIC flow would: + */ +static const int bbr_high_gain = BBR_UNIT * 3000 / 1000 + 1; +/* The pacing gain of 1/high_gain in BBR_DRAIN is calculated to typically drain + * the queue created in BBR_STARTUP in a single round: + */ +static const int bbr_drain_gain = BBR_UNIT * 1000 / 3000; +/* The gain for deriving steady-state cwnd tolerates delayed/stretched ACKs: */ +static const int bbr_cwnd_gain = BBR_UNIT * 2; +/* The pacing_gain values for the PROBE_BW gain cycle, to discover/share bw: */ +static const int bbr_pacing_gain[] = { + BBR_UNIT * 6 / 4, /* probe for more available bw */ + BBR_UNIT * 3 / 4, /* drain queue and/or yield bw to other flows */ + BBR_UNIT * 5 / 4, BBR_UNIT * 5 / 4, BBR_UNIT * 5 / 4, /* cruise at 1.0*bw to utilize pipe, */ + BBR_UNIT * 6 / 4, BBR_UNIT * 6 / 4, BBR_UNIT * 6 / 4 /* without creating excess queue... */ +}; +/* Randomize the starting gain cycling phase over N phases: */ +static const u32 bbr_cycle_rand = 7; + +/* Try to keep at least this many packets in flight, if things go smoothly. For + * smooth functioning, a sliding window protocol ACKing every other packet + * needs at least 4 packets in flight: + */ +static const u32 bbr_cwnd_min_target = 4; + +/* To estimate if BBR_STARTUP mode (i.e. high_gain) has filled pipe... */ +/* If bw has increased significantly (1.25x), there may be more bw available: */ +static const u32 bbr_full_bw_thresh = BBR_UNIT * 5 / 4; +/* But after 3 rounds w/o significant bw growth, estimate pipe is full: */ +static const u32 bbr_full_bw_cnt = 3; + +/* "long-term" ("LT") bandwidth estimator parameters... */ +/* The minimum number of rounds in an LT bw sampling interval: */ +static const u32 bbr_lt_intvl_min_rtts = 4; +/* If lost/delivered ratio > 20%, interval is "lossy" and we may be policed: */ +static const u32 bbr_lt_loss_thresh = 50; +/* If 2 intervals have a bw ratio <= 1/8, their bw is "consistent": */ +static const u32 bbr_lt_bw_ratio = BBR_UNIT / 4; +/* If 2 intervals have a bw diff <= 4 Kbit/sec their bw is "consistent": */ +static const u32 bbr_lt_bw_diff = 4000 / 4; +/* If we estimate we're policed, use lt_bw for this many round trips: */ +static const u32 bbr_lt_bw_max_rtts = 48; + +/* Do we estimate that STARTUP filled the pipe? */ +static bool bbr_full_bw_reached(const struct sock *sk) +{ + const struct bbr *bbr = inet_csk_ca(sk); + + return bbr->full_bw_reached; +} + +/* Return the windowed max recent bandwidth sample, in pkts/uS << BW_SCALE. */ +static u32 bbr_max_bw(const struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + return minmax_get(&bbr->bw); +} + +/* Return the estimated bandwidth of the path, in pkts/uS << BW_SCALE. */ +static u32 bbr_bw(const struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + return bbr->lt_use_bw ? bbr->lt_bw : bbr_max_bw(sk); +} + +/* Return rate in bytes per second, optionally with a gain. + * The order here is chosen carefully to avoid overflow of u64. This should + * work for input rates of up to 2.9Tbit/sec and gain of 2.89x. + */ +static u64 bbr_rate_bytes_per_sec(struct sock *sk, u64 rate, int gain) +{ + rate *= tcp_mss_to_mtu(sk, tcp_sk(sk)->mss_cache); + rate *= gain; + rate >>= BBR_SCALE; + rate *= USEC_PER_SEC; + return rate >> BW_SCALE; +} + +/* Convert a BBR bw and gain factor to a pacing rate in bytes per second. */ +static u32 bbr_bw_to_pacing_rate(struct sock *sk, u32 bw, int gain) +{ + u64 rate = bw; + + rate = bbr_rate_bytes_per_sec(sk, rate, gain); + rate = min_t(u64, rate, sk->sk_max_pacing_rate); + return rate; +} + +/* Initialize pacing rate to: high_gain * init_cwnd / RTT. */ +static void bbr_init_pacing_rate_from_rtt(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u64 bw; + u32 rtt_us; + + if (tp->srtt_us) { /* any RTT sample yet? */ + rtt_us = max(tp->srtt_us >> 3, 1U); + bbr->has_seen_rtt = 1; + } else { /* no RTT sample yet */ + rtt_us = USEC_PER_MSEC; /* use nominal default RTT */ + } + bw = (u64)tp->snd_cwnd * BW_UNIT; + do_div(bw, rtt_us); + sk->sk_pacing_rate = bbr_bw_to_pacing_rate(sk, bw, bbr_high_gain); +} + +/* Pace using current bw estimate and a gain factor. In order to help drive the + * network toward lower queues while maintaining high utilization and low + * latency, the average pacing rate aims to be slightly (~1%) lower than the + * estimated bandwidth. This is an important aspect of the design. In this + * implementation this slightly lower pacing rate is achieved implicitly by not + * including link-layer headers in the packet size used for the pacing rate. + */ +static void bbr_set_pacing_rate(struct sock *sk, u32 bw, int gain) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u32 rate = bbr_bw_to_pacing_rate(sk, bw, gain); + + if (unlikely(!bbr->has_seen_rtt && tp->srtt_us)) + bbr_init_pacing_rate_from_rtt(sk); + if (bbr_full_bw_reached(sk) || rate > sk->sk_pacing_rate) + sk->sk_pacing_rate = rate; +} + +/* Return count of segments we want in the skbs we send, or 0 for default. */ +static u32 bbr_tso_segs_goal(struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + return bbr->tso_segs_goal; +} + +static void bbr_set_tso_segs_goal(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u32 min_segs; + + min_segs = sk->sk_pacing_rate < (bbr_min_tso_rate >> 3) ? 1 : 2; + bbr->tso_segs_goal = min(tcp_tso_autosize(sk, tp->mss_cache, min_segs), + 0x7FU); +} + +/* Save "last known good" cwnd so we can restore it after losses or PROBE_RTT */ +static void bbr_save_cwnd(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + + if (bbr->prev_ca_state < TCP_CA_Recovery && bbr->mode != BBR_PROBE_RTT) + bbr->prior_cwnd = tp->snd_cwnd; /* this cwnd is good enough */ + else /* loss recovery or BBR_PROBE_RTT have temporarily cut cwnd */ + bbr->prior_cwnd = max(bbr->prior_cwnd, tp->snd_cwnd); +} + +static void bbr_cwnd_event(struct sock *sk, enum tcp_ca_event event) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + + if (event == CA_EVENT_TX_START && tp->app_limited) { + bbr->idle_restart = 1; + /* Avoid pointless buffer overflows: pace at est. bw if we don't + * need more speed (we're restarting from idle and app-limited). + */ + if (bbr->mode == BBR_PROBE_BW) + bbr_set_pacing_rate(sk, bbr_bw(sk), BBR_UNIT); + } +} + +/* Find target cwnd. Right-size the cwnd based on min RTT and the + * estimated bottleneck bandwidth: + * + * cwnd = bw * min_rtt * gain = BDP * gain + * + * The key factor, gain, controls the amount of queue. While a small gain + * builds a smaller queue, it becomes more vulnerable to noise in RTT + * measurements (e.g., delayed ACKs or other ACK compression effects). This + * noise may cause BBR to under-estimate the rate. + * + * To achieve full performance in high-speed paths, we budget enough cwnd to + * fit full-sized skbs in-flight on both end hosts to fully utilize the path: + * - one skb in sending host Qdisc, + * - one skb in sending host TSO/GSO engine + * - one skb being received by receiver host LRO/GRO/delayed-ACK engine + * Don't worry, at low rates (bbr_min_tso_rate) this won't bloat cwnd because + * in such cases tso_segs_goal is 1. The minimum cwnd is 4 packets, + * which allows 2 outstanding 2-packet sequences, to try to keep pipe + * full even with ACK-every-other-packet delayed ACKs. + */ +static u32 bbr_target_cwnd(struct sock *sk, u32 bw, int gain) +{ + struct bbr *bbr = inet_csk_ca(sk); + u32 cwnd; + u64 w; + + /* If we've never had a valid RTT sample, cap cwnd at the initial + * default. This should only happen when the connection is not using TCP + * timestamps and has retransmitted all of the SYN/SYNACK/data packets + * ACKed so far. In this case, an RTO can cut cwnd to 1, in which + * case we need to slow-start up toward something safe: TCP_INIT_CWND. + */ + if (unlikely(bbr->min_rtt_us == ~0U)) /* no valid RTT samples yet? */ + return TCP_INIT_CWND; /* be safe: cap at default initial cwnd*/ + + w = (u64)bw * bbr->min_rtt_us; + + /* Apply a gain to the given value, then remove the BW_SCALE shift. */ + cwnd = (((w * gain) >> BBR_SCALE) + BW_UNIT - 1) / BW_UNIT; + + /* Allow enough full-sized skbs in flight to utilize end systems. */ + cwnd += 3 * bbr->tso_segs_goal; + + /* Reduce delayed ACKs by rounding up cwnd to the next even number. */ + cwnd = (cwnd + 1) & ~1U; + + return cwnd; +} + +/* An optimization in BBR to reduce losses: On the first round of recovery, we + * follow the packet conservation principle: send P packets per P packets acked. + * After that, we slow-start and send at most 2*P packets per P packets acked. + * After recovery finishes, or upon undo, we restore the cwnd we had when + * recovery started (capped by the target cwnd based on estimated BDP). + * + * TODO(ycheng/ncardwell): implement a rate-based approach. + */ +static bool bbr_set_cwnd_to_recover_or_restore( + struct sock *sk, const struct rate_sample *rs, u32 acked, u32 *new_cwnd) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u8 prev_state = bbr->prev_ca_state, state = inet_csk(sk)->icsk_ca_state; + u32 cwnd = tp->snd_cwnd; + + /* An ACK for P pkts should release at most 2*P packets. We do this + * in two steps. First, here we deduct the number of lost packets. + * Then, in bbr_set_cwnd() we slow start up toward the target cwnd. + */ + if (rs->losses > 0) + cwnd = max_t(s32, cwnd - rs->losses, 1); + + if (state == TCP_CA_Recovery && prev_state != TCP_CA_Recovery) { + /* Starting 1st round of Recovery, so do packet conservation. */ + bbr->packet_conservation = 1; + bbr->next_rtt_delivered = tp->delivered; /* start round now */ + /* Cut unused cwnd from app behavior, TSQ, or TSO deferral: */ + cwnd = tcp_packets_in_flight(tp) + acked; + } else if (prev_state >= TCP_CA_Recovery && state < TCP_CA_Recovery) { + /* Exiting loss recovery; restore cwnd saved before recovery. */ + bbr->restore_cwnd = 1; + bbr->packet_conservation = 0; + } + bbr->prev_ca_state = state; + + if (bbr->restore_cwnd) { + /* Restore cwnd after exiting loss recovery or PROBE_RTT. */ + cwnd = max(cwnd, bbr->prior_cwnd); + bbr->restore_cwnd = 0; + } + + if (bbr->packet_conservation) { + *new_cwnd = max(cwnd, tcp_packets_in_flight(tp) + acked); + return true; /* yes, using packet conservation */ + } + *new_cwnd = cwnd; + return false; +} + +/* Slow-start up toward target cwnd (if bw estimate is growing, or packet loss + * has drawn us down below target), or snap down to target if we're above it. + */ +static void bbr_set_cwnd(struct sock *sk, const struct rate_sample *rs, + u32 acked, u32 bw, int gain) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u32 cwnd = 0, target_cwnd = 0; + + if (!acked) + return; + + if (bbr_set_cwnd_to_recover_or_restore(sk, rs, acked, &cwnd)) + goto done; + + /* If we're below target cwnd, slow start cwnd toward target cwnd. */ + target_cwnd = bbr_target_cwnd(sk, bw, gain); + if (bbr_full_bw_reached(sk)) /* only cut cwnd if we filled the pipe */ + cwnd = min(cwnd + acked, target_cwnd); + else if (cwnd < target_cwnd || tp->delivered < TCP_INIT_CWND) + cwnd = cwnd + acked; + cwnd = max(cwnd, bbr_cwnd_min_target); + +done: + tp->snd_cwnd = min(cwnd, tp->snd_cwnd_clamp); /* apply global cap */ + if (bbr->mode == BBR_PROBE_RTT) /* drain queue, refresh min_rtt */ + tp->snd_cwnd = min(tp->snd_cwnd, bbr_cwnd_min_target); +} + +/* End cycle phase if it's time and/or we hit the phase's in-flight target. */ +static bool bbr_is_next_cycle_phase(struct sock *sk, + const struct rate_sample *rs) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + bool is_full_length = + tcp_stamp_us_delta(tp->delivered_mstamp, bbr->cycle_mstamp) > + bbr->min_rtt_us; + u32 inflight, bw; + + /* The pacing_gain of 1.0 paces at the estimated bw to try to fully + * use the pipe without increasing the queue. + */ + if (bbr->pacing_gain == BBR_UNIT) + return is_full_length; /* just use wall clock time */ + + inflight = rs->prior_in_flight; /* what was in-flight before ACK? */ + bw = bbr_max_bw(sk); + + /* A pacing_gain > 1.0 probes for bw by trying to raise inflight to at + * least pacing_gain*BDP; this may take more than min_rtt if min_rtt is + * small (e.g. on a LAN). We do not persist if packets are lost, since + * a path with small buffers may not hold that much. + */ + if (bbr->pacing_gain > BBR_UNIT) + return is_full_length && + (rs->losses || /* perhaps pacing_gain*BDP won't fit */ + inflight >= bbr_target_cwnd(sk, bw, bbr->pacing_gain)); + + /* A pacing_gain < 1.0 tries to drain extra queue we added if bw + * probing didn't find more bw. If inflight falls to match BDP then we + * estimate queue is drained; persisting would underutilize the pipe. + */ + return is_full_length || + inflight <= bbr_target_cwnd(sk, bw, BBR_UNIT); +} + +static void bbr_advance_cycle_phase(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + + bbr->cycle_idx = (bbr->cycle_idx + 1) & (CYCLE_LEN - 1); + bbr->cycle_mstamp = tp->delivered_mstamp; + bbr->pacing_gain = bbr->lt_use_bw ? BBR_UNIT : + bbr_pacing_gain[bbr->cycle_idx]; +} + +/* Gain cycling: cycle pacing gain to converge to fair share of available bw. */ +static void bbr_update_cycle_phase(struct sock *sk, + const struct rate_sample *rs) +{ + struct bbr *bbr = inet_csk_ca(sk); + + if (bbr->mode == BBR_PROBE_BW && bbr_is_next_cycle_phase(sk, rs)) + bbr_advance_cycle_phase(sk); +} + +static void bbr_reset_startup_mode(struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + bbr->mode = BBR_STARTUP; + bbr->pacing_gain = bbr_high_gain; + bbr->cwnd_gain = bbr_high_gain; +} + +static void bbr_reset_probe_bw_mode(struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + bbr->mode = BBR_PROBE_BW; + bbr->pacing_gain = BBR_UNIT; + bbr->cwnd_gain = bbr_cwnd_gain; + bbr->cycle_idx = CYCLE_LEN - 1 - prandom_u32_max(bbr_cycle_rand); + bbr_advance_cycle_phase(sk); /* flip to next phase of gain cycle */ +} + +static void bbr_reset_mode(struct sock *sk) +{ + if (!bbr_full_bw_reached(sk)) + bbr_reset_startup_mode(sk); + else + bbr_reset_probe_bw_mode(sk); +} + +/* Start a new long-term sampling interval. */ +static void bbr_reset_lt_bw_sampling_interval(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + + bbr->lt_last_stamp = div_u64(tp->delivered_mstamp, USEC_PER_MSEC); + bbr->lt_last_delivered = tp->delivered; + bbr->lt_last_lost = tp->lost; + bbr->lt_rtt_cnt = 0; +} + +/* Completely reset long-term bandwidth sampling. */ +static void bbr_reset_lt_bw_sampling(struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + bbr->lt_bw = 0; + bbr->lt_use_bw = 0; + bbr->lt_is_sampling = false; + bbr_reset_lt_bw_sampling_interval(sk); +} + +/* Long-term bw sampling interval is done. Estimate whether we're policed. */ +static void bbr_lt_bw_interval_done(struct sock *sk, u32 bw) +{ + struct bbr *bbr = inet_csk_ca(sk); + u32 diff; + + if (bbr->lt_bw) { /* do we have bw from a previous interval? */ + /* Is new bw close to the lt_bw from the previous interval? */ + diff = abs(bw - bbr->lt_bw); + if ((diff * BBR_UNIT <= bbr_lt_bw_ratio * bbr->lt_bw) || + (bbr_rate_bytes_per_sec(sk, diff, BBR_UNIT) <= + bbr_lt_bw_diff)) { + /* All criteria are met; estimate we're policed. */ + bbr->lt_bw = (bw + bbr->lt_bw) >> 1; /* avg 2 intvls */ + bbr->lt_use_bw = 1; + bbr->pacing_gain = BBR_UNIT; /* try to avoid drops */ + bbr->lt_rtt_cnt = 0; + return; + } + } + bbr->lt_bw = bw; + bbr_reset_lt_bw_sampling_interval(sk); +} + +/* Token-bucket traffic policers are common (see "An Internet-Wide Analysis of + * Traffic Policing", SIGCOMM 2016). BBR detects token-bucket policers and + * explicitly models their policed rate, to reduce unnecessary losses. We + * estimate that we're policed if we see 2 consecutive sampling intervals with + * consistent throughput and high packet loss. If we think we're being policed, + * set lt_bw to the "long-term" average delivery rate from those 2 intervals. + */ +static void bbr_lt_bw_sampling(struct sock *sk, const struct rate_sample *rs) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u32 lost, delivered; + u64 bw; + u32 t; + + if (bbr->lt_use_bw) { /* already using long-term rate, lt_bw? */ + if (bbr->mode == BBR_PROBE_BW && bbr->round_start && + ++bbr->lt_rtt_cnt >= bbr_lt_bw_max_rtts) { + bbr_reset_lt_bw_sampling(sk); /* stop using lt_bw */ + bbr_reset_probe_bw_mode(sk); /* restart gain cycling */ + } + return; + } + + /* Wait for the first loss before sampling, to let the policer exhaust + * its tokens and estimate the steady-state rate allowed by the policer. + * Starting samples earlier includes bursts that over-estimate the bw. + */ + if (!bbr->lt_is_sampling) { + if (!rs->losses) + return; + bbr_reset_lt_bw_sampling_interval(sk); + bbr->lt_is_sampling = true; + } + + /* To avoid underestimates, reset sampling if we run out of data. */ + if (rs->is_app_limited) { + bbr_reset_lt_bw_sampling(sk); + return; + } + + if (bbr->round_start) + bbr->lt_rtt_cnt++; /* count round trips in this interval */ + if (bbr->lt_rtt_cnt < bbr_lt_intvl_min_rtts) + return; /* sampling interval needs to be longer */ + if (bbr->lt_rtt_cnt > 4 * bbr_lt_intvl_min_rtts) { + bbr_reset_lt_bw_sampling(sk); /* interval is too long */ + return; + } + + /* End sampling interval when a packet is lost, so we estimate the + * policer tokens were exhausted. Stopping the sampling before the + * tokens are exhausted under-estimates the policed rate. + */ + if (!rs->losses) + return; + + /* Calculate packets lost and delivered in sampling interval. */ + lost = tp->lost - bbr->lt_last_lost; + delivered = tp->delivered - bbr->lt_last_delivered; + /* Is loss rate (lost/delivered) >= lt_loss_thresh? If not, wait. */ + if (!delivered || (lost << BBR_SCALE) < bbr_lt_loss_thresh * delivered) + return; + + /* Find average delivery rate in this sampling interval. */ + t = div_u64(tp->delivered_mstamp, USEC_PER_MSEC) - bbr->lt_last_stamp; + if ((s32)t < 1) + return; /* interval is less than one ms, so wait */ + /* Check if can multiply without overflow */ + if (t >= ~0U / USEC_PER_MSEC) { + bbr_reset_lt_bw_sampling(sk); /* interval too long; reset */ + return; + } + t *= USEC_PER_MSEC; + bw = (u64)delivered * BW_UNIT; + do_div(bw, t); + bbr_lt_bw_interval_done(sk, bw); +} + +/* Estimate the bandwidth based on how fast packets are delivered */ +static void bbr_update_bw(struct sock *sk, const struct rate_sample *rs) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u64 bw; + + bbr->round_start = 0; + if (rs->delivered < 0 || rs->interval_us <= 0) + return; /* Not a valid observation */ + + /* See if we've reached the next RTT */ + if (!before(rs->prior_delivered, bbr->next_rtt_delivered)) { + bbr->next_rtt_delivered = tp->delivered; + bbr->rtt_cnt++; + bbr->round_start = 1; + bbr->packet_conservation = 0; + } + + bbr_lt_bw_sampling(sk, rs); + + /* Divide delivered by the interval to find a (lower bound) bottleneck + * bandwidth sample. Delivered is in packets and interval_us in uS and + * ratio will be <<1 for most connections. So delivered is first scaled. + */ + bw = (u64)rs->delivered * BW_UNIT; + do_div(bw, rs->interval_us); + + /* If this sample is application-limited, it is likely to have a very + * low delivered count that represents application behavior rather than + * the available network rate. Such a sample could drag down estimated + * bw, causing needless slow-down. Thus, to continue to send at the + * last measured network rate, we filter out app-limited samples unless + * they describe the path bw at least as well as our bw model. + * + * So the goal during app-limited phase is to proceed with the best + * network rate no matter how long. We automatically leave this + * phase when app writes faster than the network can deliver :) + */ + if (!rs->is_app_limited || bw >= bbr_max_bw(sk)) { + /* Incorporate new sample into our max bw filter. */ + minmax_running_max(&bbr->bw, bbr_bw_rtts, bbr->rtt_cnt, bw); + } +} + +/* Estimate when the pipe is full, using the change in delivery rate: BBR + * estimates that STARTUP filled the pipe if the estimated bw hasn't changed by + * at least bbr_full_bw_thresh (25%) after bbr_full_bw_cnt (3) non-app-limited + * rounds. Why 3 rounds: 1: rwin autotuning grows the rwin, 2: we fill the + * higher rwin, 3: we get higher delivery rate samples. Or transient + * cross-traffic or radio noise can go away. CUBIC Hystart shares a similar + * design goal, but uses delay and inter-ACK spacing instead of bandwidth. + */ +static void bbr_check_full_bw_reached(struct sock *sk, + const struct rate_sample *rs) +{ + struct bbr *bbr = inet_csk_ca(sk); + u32 bw_thresh; + + if (bbr_full_bw_reached(sk) || !bbr->round_start || rs->is_app_limited) + return; + + bw_thresh = (u64)bbr->full_bw * bbr_full_bw_thresh >> BBR_SCALE; + if (bbr_max_bw(sk) >= bw_thresh) { + bbr->full_bw = bbr_max_bw(sk); + bbr->full_bw_cnt = 0; + return; + } + ++bbr->full_bw_cnt; + bbr->full_bw_reached = bbr->full_bw_cnt >= bbr_full_bw_cnt; +} + +/* If pipe is probably full, drain the queue and then enter steady-state. */ +static void bbr_check_drain(struct sock *sk, const struct rate_sample *rs) +{ + struct bbr *bbr = inet_csk_ca(sk); + + if (bbr->mode == BBR_STARTUP && bbr_full_bw_reached(sk)) { + bbr->mode = BBR_DRAIN; /* drain queue we created */ + bbr->pacing_gain = bbr_drain_gain; /* pace slow to drain */ + bbr->cwnd_gain = bbr_high_gain; /* maintain cwnd */ + } /* fall through to check if in-flight is already small: */ + if (bbr->mode == BBR_DRAIN && + tcp_packets_in_flight(tcp_sk(sk)) <= + bbr_target_cwnd(sk, bbr_max_bw(sk), BBR_UNIT)) + bbr_reset_probe_bw_mode(sk); /* we estimate queue is drained */ +} + +/* The goal of PROBE_RTT mode is to have BBR flows cooperatively and + * periodically drain the bottleneck queue, to converge to measure the true + * min_rtt (unloaded propagation delay). This allows the flows to keep queues + * small (reducing queuing delay and packet loss) and achieve fairness among + * BBR flows. + * + * The min_rtt filter window is 10 seconds. When the min_rtt estimate expires, + * we enter PROBE_RTT mode and cap the cwnd at bbr_cwnd_min_target=4 packets. + * After at least bbr_probe_rtt_mode_ms=200ms and at least one packet-timed + * round trip elapsed with that flight size <= 4, we leave PROBE_RTT mode and + * re-enter the previous mode. BBR uses 200ms to approximately bound the + * performance penalty of PROBE_RTT's cwnd capping to roughly 2% (200ms/10s). + * + * Note that flows need only pay 2% if they are busy sending over the last 10 + * seconds. Interactive applications (e.g., Web, RPCs, video chunks) often have + * natural silences or low-rate periods within 10 seconds where the rate is low + * enough for long enough to drain its queue in the bottleneck. We pick up + * these min RTT measurements opportunistically with our min_rtt filter. :-) + */ +static void bbr_update_min_rtt(struct sock *sk, const struct rate_sample *rs) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + bool filter_expired; + + /* Track min RTT seen in the min_rtt_win_sec filter window: */ + filter_expired = after(tcp_jiffies32, + bbr->min_rtt_stamp + bbr_min_rtt_win_sec * HZ); + if (rs->rtt_us >= 0 && + (rs->rtt_us <= bbr->min_rtt_us || filter_expired)) { + bbr->min_rtt_us = rs->rtt_us; + bbr->min_rtt_stamp = tcp_jiffies32; + } + + if (bbr_probe_rtt_mode_ms > 0 && filter_expired && + !bbr->idle_restart && bbr->mode != BBR_PROBE_RTT) { + bbr->mode = BBR_PROBE_RTT; /* dip, drain queue */ + bbr->pacing_gain = BBR_UNIT; + bbr->cwnd_gain = BBR_UNIT; + bbr_save_cwnd(sk); /* note cwnd so we can restore it */ + bbr->probe_rtt_done_stamp = 0; + } + + if (bbr->mode == BBR_PROBE_RTT) { + /* Ignore low rate samples during this mode. */ + tp->app_limited = + (tp->delivered + tcp_packets_in_flight(tp)) ? : 1; + /* Maintain min packets in flight for max(200 ms, 1 round). */ + if (!bbr->probe_rtt_done_stamp && + tcp_packets_in_flight(tp) <= bbr_cwnd_min_target) { + bbr->probe_rtt_done_stamp = tcp_jiffies32 + + msecs_to_jiffies(bbr_probe_rtt_mode_ms); + bbr->probe_rtt_round_done = 0; + bbr->next_rtt_delivered = tp->delivered; + } else if (bbr->probe_rtt_done_stamp) { + if (bbr->round_start) + bbr->probe_rtt_round_done = 1; + if (bbr->probe_rtt_round_done && + after(tcp_jiffies32, bbr->probe_rtt_done_stamp)) { + bbr->min_rtt_stamp = tcp_jiffies32; + bbr->restore_cwnd = 1; /* snap to prior_cwnd */ + bbr_reset_mode(sk); + } + } + } + bbr->idle_restart = 0; +} + +static void bbr_update_model(struct sock *sk, const struct rate_sample *rs) +{ + bbr_update_bw(sk, rs); + bbr_update_cycle_phase(sk, rs); + bbr_check_full_bw_reached(sk, rs); + bbr_check_drain(sk, rs); + bbr_update_min_rtt(sk, rs); +} + +static void bbr_main(struct sock *sk, const struct rate_sample *rs) +{ + struct bbr *bbr = inet_csk_ca(sk); + u32 bw; + + bbr_update_model(sk, rs); + + bw = bbr_bw(sk); + bbr_set_pacing_rate(sk, bw, bbr->pacing_gain); + bbr_set_tso_segs_goal(sk); + bbr_set_cwnd(sk, rs, rs->acked_sacked, bw, bbr->cwnd_gain); +} + +static void bbr_init(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + + bbr->prior_cwnd = 0; + bbr->tso_segs_goal = 0; /* default segs per skb until first ACK */ + bbr->rtt_cnt = 0; + bbr->next_rtt_delivered = 0; + bbr->prev_ca_state = TCP_CA_Open; + bbr->packet_conservation = 0; + + bbr->probe_rtt_done_stamp = 0; + bbr->probe_rtt_round_done = 0; + bbr->min_rtt_us = tcp_min_rtt(tp); + bbr->min_rtt_stamp = tcp_jiffies32; + + minmax_reset(&bbr->bw, bbr->rtt_cnt, 0); /* init max bw to 0 */ + + bbr->has_seen_rtt = 0; + bbr_init_pacing_rate_from_rtt(sk); + + bbr->restore_cwnd = 0; + bbr->round_start = 0; + bbr->idle_restart = 0; + bbr->full_bw_reached = 0; + bbr->full_bw = 0; + bbr->full_bw_cnt = 0; + bbr->cycle_mstamp = 0; + bbr->cycle_idx = 0; + bbr_reset_lt_bw_sampling(sk); + bbr_reset_startup_mode(sk); + + cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED); +} + +static u32 bbr_sndbuf_expand(struct sock *sk) +{ + /* Provision 3 * cwnd since BBR may slow-start even during recovery. */ + return 3; +} + +/* In theory BBR does not need to undo the cwnd since it does not + * always reduce cwnd on losses (see bbr_main()). Keep it for now. + */ +static u32 bbr_undo_cwnd(struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + bbr->full_bw = 0; /* spurious slow-down; reset full pipe detection */ + bbr->full_bw_cnt = 0; + bbr_reset_lt_bw_sampling(sk); + return tcp_sk(sk)->snd_cwnd; +} + +/* Entering loss recovery, so save cwnd for when we exit or undo recovery. */ +static u32 bbr_ssthresh(struct sock *sk) +{ + bbr_save_cwnd(sk); + return TCP_INFINITE_SSTHRESH; /* BBR does not use ssthresh */ +} + +static size_t bbr_get_info(struct sock *sk, u32 ext, int *attr, + union tcp_cc_info *info) +{ + if (ext & (1 << (INET_DIAG_BBRINFO - 1)) || + ext & (1 << (INET_DIAG_VEGASINFO - 1))) { + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u64 bw = bbr_bw(sk); + + bw = bw * tp->mss_cache * USEC_PER_SEC >> BW_SCALE; + memset(&info->bbr, 0, sizeof(info->bbr)); + info->bbr.bbr_bw_lo = (u32)bw; + info->bbr.bbr_bw_hi = (u32)(bw >> 32); + info->bbr.bbr_min_rtt = bbr->min_rtt_us; + info->bbr.bbr_pacing_gain = bbr->pacing_gain; + info->bbr.bbr_cwnd_gain = bbr->cwnd_gain; + *attr = INET_DIAG_BBRINFO; + return sizeof(info->bbr); + } + return 0; +} + +static void bbr_set_state(struct sock *sk, u8 new_state) +{ + struct bbr *bbr = inet_csk_ca(sk); + + if (new_state == TCP_CA_Loss) { + struct rate_sample rs = { .losses = 1 }; + + bbr->prev_ca_state = TCP_CA_Loss; + bbr->full_bw = 0; + bbr->round_start = 1; /* treat RTO like end of a round */ + bbr_lt_bw_sampling(sk, &rs); + } +} + +static struct tcp_congestion_ops tcp_bbr_cong_ops __read_mostly = { + .flags = TCP_CONG_NON_RESTRICTED, + .name = "tcp_bbr_mod", + .owner = THIS_MODULE, + .init = bbr_init, + .cong_control = bbr_main, + .sndbuf_expand = bbr_sndbuf_expand, + .undo_cwnd = bbr_undo_cwnd, + .cwnd_event = bbr_cwnd_event, + .ssthresh = bbr_ssthresh, + .tso_segs_goal = bbr_tso_segs_goal, + .get_info = bbr_get_info, + .set_state = bbr_set_state, +}; + +static int __init bbr_register(void) +{ + BUILD_BUG_ON(sizeof(struct bbr) > ICSK_CA_PRIV_SIZE); + return tcp_register_congestion_control(&tcp_bbr_cong_ops); +} + +static void __exit bbr_unregister(void) +{ + tcp_unregister_congestion_control(&tcp_bbr_cong_ops); +} + +module_init(bbr_register); +module_exit(bbr_unregister); + +MODULE_AUTHOR("Van Jacobson "); +MODULE_AUTHOR("Neal Cardwell "); +MODULE_AUTHOR("Yuchung Cheng "); +MODULE_AUTHOR("Soheil Hassas Yeganeh "); +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_DESCRIPTION("TCP BBR (Bottleneck Bandwidth and RTT)"); \ No newline at end of file diff --git a/package/ctcgfw/bbr-nanqinlang/Makefile b/package/ctcgfw/bbr-nanqinlang/Makefile new file mode 100644 index 0000000000..7f53cc11aa --- /dev/null +++ b/package/ctcgfw/bbr-nanqinlang/Makefile @@ -0,0 +1,47 @@ +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=tcp-bbr-nanqinlang +PKG_RELEASE:=1 + +include $(INCLUDE_DIR)/package.mk + +define KernelPackage/$(PKG_NAME) + SUBMENU:=Network Support + TITLE:=Modified bbr tcp congestion control + DEPENDS:=@LINUX_4_14 + FILES:=$(PKG_BUILD_DIR)/tcp_bbr_nanqinlang.ko + AUTOLOAD:=$(call AutoLoad,99,tcp-bbr-nanqinlang) + KCONFIG:= +endef + +define KernelPackage/$(PKG_NAME)/description + Kernel module of modified BBR tcp congestion control +endef + +EXTRA_KCONFIG:= \ + + +EXTRA_CFLAGS:= \ + $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(EXTRA_KCONFIG)))) \ + $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(EXTRA_KCONFIG)))) \ + +MAKE_OPTS:= \ + ARCH="$(LINUX_KARCH)" \ + CROSS_COMPILE="$(TARGET_CROSS)" \ + SUBDIRS="$(PKG_BUILD_DIR)" \ + EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \ + $(EXTRA_KCONFIG) + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) + $(CP) ./src/* $(PKG_BUILD_DIR)/ +endef + +define Build/Compile + $(MAKE) -C "$(LINUX_DIR)" \ + $(MAKE_OPTS) \ + modules +endef + +$(eval $(call KernelPackage,$(PKG_NAME))) diff --git a/package/ctcgfw/bbr-nanqinlang/src/Makefile b/package/ctcgfw/bbr-nanqinlang/src/Makefile new file mode 100644 index 0000000000..af66109374 --- /dev/null +++ b/package/ctcgfw/bbr-nanqinlang/src/Makefile @@ -0,0 +1 @@ +obj-m := tcp_bbr_nanqinlang.o diff --git a/package/ctcgfw/bbr-nanqinlang/src/tcp_bbr_nanqinlang.c b/package/ctcgfw/bbr-nanqinlang/src/tcp_bbr_nanqinlang.c new file mode 100644 index 0000000000..00fe217039 --- /dev/null +++ b/package/ctcgfw/bbr-nanqinlang/src/tcp_bbr_nanqinlang.c @@ -0,0 +1,968 @@ +/* tcp_nanqinlang + + * Debian + + * kernel v4.14 + + × New BBR Congestion Control + + * Modified by (C) 2017 nanqinlang + + ******************************************************************************* + Bottleneck Bandwidth and RTT (BBR) congestion control + * + * BBR congestion control computes the sending rate based on the delivery + * rate (throughput) estimated from ACKs. In a nutshell: + * + * On each ACK, update our model of the network path: + * bottleneck_bandwidth = windowed_max(delivered / elapsed, 10 round trips) + * min_rtt = windowed_min(rtt, 10 seconds) + * pacing_rate = pacing_gain * bottleneck_bandwidth + * cwnd = max(cwnd_gain * bottleneck_bandwidth * min_rtt, 4) + * + * The core algorithm does not react directly to packet losses or delays, + * although BBR may adjust the size of next send per ACK when loss is + * observed, or adjust the sending rate if it estimates there is a + * traffic policer, in order to keep the drop rate reasonable. + * + * Here is a state transition diagram for BBR: + * + * | + * V + * +---> STARTUP ----+ + * | | | + * | V | + * | DRAIN ----+ + * | | | + * | V | + * +---> PROBE_BW ----+ + * | ^ | | + * | | | | + * | +----+ | + * | | + * +---- PROBE_RTT <--+ + * + * A BBR flow starts in STARTUP, and ramps up its sending rate quickly. + * When it estimates the pipe is full, it enters DRAIN to drain the queue. + * In steady state a BBR flow only uses PROBE_BW and PROBE_RTT. + * A long-lived BBR flow spends the vast majority of its time remaining + * (repeatedly) in PROBE_BW, fully probing and utilizing the pipe's bandwidth + * in a fair manner, with a small, bounded queue. *If* a flow has been + * continuously sending for the entire min_rtt window, and hasn't seen an RTT + * sample that matches or decreases its min_rtt estimate for 10 seconds, then + * it briefly enters PROBE_RTT to cut inflight to a minimum value to re-probe + * the path's two-way propagation delay (min_rtt). When exiting PROBE_RTT, if + * we estimated that we reached the full bw of the pipe then we enter PROBE_BW; + * otherwise we enter STARTUP to try to fill the pipe. + * + * BBR is described in detail in: + * "BBR: Congestion-Based Congestion Control", + * Neal Cardwell, Yuchung Cheng, C. Stephen Gunn, Soheil Hassas Yeganeh, + * Van Jacobson. ACM Queue, Vol. 14 No. 5, September-October 2016. + * + * There is a public e-mail list for discussing BBR development and testing: + * https://groups.google.com/forum/#!forum/bbr-dev + * + * NOTE: BBR might be used with the fq qdisc ("man tc-fq") with pacing enabled, + * otherwise TCP stack falls back to an internal pacing using one high + * resolution timer per TCP socket and may use more resources. + */ +#include +#include +#include +#include +#include +#include + +/* Scale factor for rate in pkt/uSec unit to avoid truncation in bandwidth + * estimation. The rate unit ~= (1500 bytes / 1 usec / 2^24) ~= 715 bps. + * This handles bandwidths from 0.06pps (715bps) to 256Mpps (3Tbps) in a u32. + * Since the minimum window is >=4 packets, the lower bound isn't + * an issue. The upper bound isn't an issue with existing technologies. + */ +#define BW_SCALE 24 +#define BW_UNIT (1 << BW_SCALE) + +#define BBR_SCALE 8 /* scaling factor for fractions in BBR (e.g. gains) */ +#define BBR_UNIT (1 << BBR_SCALE) + +#define CYCLE_LEN 8 /* number of phases in a pacing gain cycle */ + + +/* BBR has the following modes for deciding how fast to send: */ +enum bbr_mode { + BBR_STARTUP, /* ramp up sending rate rapidly to fill pipe */ + BBR_DRAIN, /* drain any queue created during startup */ + BBR_PROBE_BW, /* discover, share bw: pace around estimated bw */ + BBR_PROBE_RTT, /* cut inflight to min to probe min_rtt */ +}; + +/* BBR congestion control block */ +struct bbr { + u32 min_rtt_us; /* min RTT in min_rtt_win_sec window */ + u32 min_rtt_stamp; /* timestamp of min_rtt_us */ + u32 probe_rtt_done_stamp; /* end time for BBR_PROBE_RTT mode */ + struct minmax bw; /* Max recent delivery rate in pkts/uS << 24 */ + u32 rtt_cnt; /* count of packet-timed rounds elapsed */ + u32 next_rtt_delivered; /* scb->tx.delivered at end of round */ + u64 cycle_mstamp; /* time of this cycle phase start */ + u32 mode:3, /* current bbr_mode in state machine */ + prev_ca_state:3, /* CA state on previous ACK */ + packet_conservation:1, /* use packet conservation? */ + restore_cwnd:1, /* decided to revert cwnd to old value */ + round_start:1, /* start of packet-timed tx->ack round? */ + tso_segs_goal:7, /* segments we want in each skb we send */ + idle_restart:1, /* restarting after idle? */ + probe_rtt_round_done:1, /* a BBR_PROBE_RTT round at 4 pkts? */ + unused:5, + lt_is_sampling:1, /* taking long-term ("LT") samples now? */ + lt_rtt_cnt:7, /* round trips in long-term interval */ + lt_use_bw:1; /* use lt_bw as our bw estimate? */ + u32 lt_bw; /* LT est delivery rate in pkts/uS << 24 */ + u32 lt_last_delivered; /* LT intvl start: tp->delivered */ + u32 lt_last_stamp; /* LT intvl start: tp->delivered_mstamp */ + u32 lt_last_lost; /* LT intvl start: tp->lost */ + u32 pacing_gain:10, /* current gain for setting pacing rate */ + cwnd_gain:10, /* current gain for setting cwnd */ + full_bw_cnt:3, /* number of rounds without large bw gains */ + cycle_idx:3, /* current index in pacing_gain cycle array */ + has_seen_rtt:1, /* have we seen an RTT sample yet? */ + unused_b:5; + u32 prior_cwnd; /* prior cwnd upon entering loss recovery */ + u32 full_bw; /* recent bw, to estimate if pipe is full */ +}; + + +/* Window length of bw filter (in rounds): */ +static const int bbr_bw_rtts = CYCLE_LEN + 2; +/* Window length of min_rtt filter (in sec): */ +static const u32 bbr_min_rtt_win_sec = 10; +/* Minimum time (in ms) spent at bbr_cwnd_min_target in BBR_PROBE_RTT mode: */ +static const u32 bbr_probe_rtt_mode_ms = 100; +/* Skip TSO below the following bandwidth (bits/sec): */ +static const int bbr_min_tso_rate = 1200000; + +/* We use a high_gain value of 2/ln(2) because it's the smallest pacing gain + * that will allow a smoothly increasing pacing rate that will double each RTT + * and send the same number of packets per RTT that an un-paced, slow-starting + * Reno or CUBIC flow would: + */ +static const int bbr_high_gain = BBR_UNIT * 3000 / 1000 + 1; +/* The pacing gain of 1/high_gain in BBR_DRAIN is calculated to typically drain + * the queue created in BBR_STARTUP in a single round: + */ +static const int bbr_drain_gain = BBR_UNIT * 1000 / 3000; +/* The gain for deriving steady-state cwnd tolerates delayed/stretched ACKs: */ +static const int bbr_cwnd_gain = BBR_UNIT * 2; +/* The pacing_gain values for the PROBE_BW gain cycle, to discover/share bw: */ +static const int bbr_pacing_gain[] = { + BBR_UNIT * 6 / 4, /* probe for more available bw */ + BBR_UNIT * 3 / 4, /* drain queue and/or yield bw to other flows */ + BBR_UNIT * 5 / 4, BBR_UNIT * 5 / 4, BBR_UNIT * 5 / 4, /* cruise at 1.0*bw to utilize pipe, */ + BBR_UNIT * 6 / 4, BBR_UNIT * 6 / 4, BBR_UNIT * 6 / 4 /* without creating excess queue... */ +}; +/* Randomize the starting gain cycling phase over N phases: */ +static const u32 bbr_cycle_rand = 7; + +/* Try to keep at least this many packets in flight, if things go smoothly. For + * smooth functioning, a sliding window protocol ACKing every other packet + * needs at least 4 packets in flight: + */ +static const u32 bbr_cwnd_min_target = 4; + +/* To estimate if BBR_STARTUP mode (i.e. high_gain) has filled pipe... */ +/* If bw has increased significantly (1.25x), there may be more bw available: */ +static const u32 bbr_full_bw_thresh = BBR_UNIT * 5 / 4; +/* But after 3 rounds w/o significant bw growth, estimate pipe is full: */ +static const u32 bbr_full_bw_cnt = 3; + +/* "long-term" ("LT") bandwidth estimator parameters... */ +/* The minimum number of rounds in an LT bw sampling interval: */ +static const u32 bbr_lt_intvl_min_rtts = 4; +/* If lost/delivered ratio > 20%, interval is "lossy" and we may be policed: */ +static const u32 bbr_lt_loss_thresh = 50; +/* If 2 intervals have a bw ratio <= 1/8, their bw is "consistent": */ +static const u32 bbr_lt_bw_ratio = BBR_UNIT / 4; +/* If 2 intervals have a bw diff <= 4 Kbit/sec their bw is "consistent": */ +static const u32 bbr_lt_bw_diff = 4000 / 4; +/* If we estimate we're policed, use lt_bw for this many round trips: */ +static const u32 bbr_lt_bw_max_rtts = 48; + +/* Do we estimate that STARTUP filled the pipe? */ +static bool bbr_full_bw_reached(const struct sock *sk) +{ + const struct bbr *bbr = inet_csk_ca(sk); + + return bbr->full_bw_cnt >= bbr_full_bw_cnt; +} + +/* Return the windowed max recent bandwidth sample, in pkts/uS << BW_SCALE. */ +static u32 bbr_max_bw(const struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + return minmax_get(&bbr->bw); +} + +/* Return the estimated bandwidth of the path, in pkts/uS << BW_SCALE. */ +static u32 bbr_bw(const struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + return bbr->lt_use_bw ? bbr->lt_bw : bbr_max_bw(sk); +} + +/* Return rate in bytes per second, optionally with a gain. + * The order here is chosen carefully to avoid overflow of u64. This should + * work for input rates of up to 2.9Tbit/sec and gain of 2.89x. + */ +static u64 bbr_rate_bytes_per_sec(struct sock *sk, u64 rate, int gain) +{ + rate *= tcp_mss_to_mtu(sk, tcp_sk(sk)->mss_cache); + rate *= gain; + rate >>= BBR_SCALE; + rate *= USEC_PER_SEC; + return rate >> BW_SCALE; +} + +/* Convert a BBR bw and gain factor to a pacing rate in bytes per second. */ +static u32 bbr_bw_to_pacing_rate(struct sock *sk, u32 bw, int gain) +{ + u64 rate = bw; + + rate = bbr_rate_bytes_per_sec(sk, rate, gain); + rate = min_t(u64, rate, sk->sk_max_pacing_rate); + return rate; +} + +/* Initialize pacing rate to: high_gain * init_cwnd / RTT. */ +static void bbr_init_pacing_rate_from_rtt(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u64 bw; + u32 rtt_us; + + if (tp->srtt_us) { /* any RTT sample yet? */ + rtt_us = max(tp->srtt_us >> 3, 1U); + bbr->has_seen_rtt = 1; + } else { /* no RTT sample yet */ + rtt_us = USEC_PER_MSEC; /* use nominal default RTT */ + } + bw = (u64)tp->snd_cwnd * BW_UNIT; + do_div(bw, rtt_us); + sk->sk_pacing_rate = bbr_bw_to_pacing_rate(sk, bw, bbr_high_gain); +} + +/* Pace using current bw estimate and a gain factor. In order to help drive the + * network toward lower queues while maintaining high utilization and low + * latency, the average pacing rate aims to be slightly (~1%) lower than the + * estimated bandwidth. This is an important aspect of the design. In this + * implementation this slightly lower pacing rate is achieved implicitly by not + * including link-layer headers in the packet size used for the pacing rate. + */ +static void bbr_set_pacing_rate(struct sock *sk, u32 bw, int gain) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u32 rate = bbr_bw_to_pacing_rate(sk, bw, gain); + + if (unlikely(!bbr->has_seen_rtt && tp->srtt_us)) + bbr_init_pacing_rate_from_rtt(sk); + if (bbr_full_bw_reached(sk) || rate > sk->sk_pacing_rate) + sk->sk_pacing_rate = rate; +} + +/* Return count of segments we want in the skbs we send, or 0 for default. */ +static u32 bbr_tso_segs_goal(struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + return bbr->tso_segs_goal; +} + +static void bbr_set_tso_segs_goal(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u32 min_segs; + + min_segs = sk->sk_pacing_rate < (bbr_min_tso_rate >> 3) ? 1 : 2; + bbr->tso_segs_goal = min(tcp_tso_autosize(sk, tp->mss_cache, min_segs), + 0x7FU); +} + +/* Save "last known good" cwnd so we can restore it after losses or PROBE_RTT */ +static void bbr_save_cwnd(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + + if (bbr->prev_ca_state < TCP_CA_Recovery && bbr->mode != BBR_PROBE_RTT) + bbr->prior_cwnd = tp->snd_cwnd; /* this cwnd is good enough */ + else /* loss recovery or BBR_PROBE_RTT have temporarily cut cwnd */ + bbr->prior_cwnd = max(bbr->prior_cwnd, tp->snd_cwnd); +} + +static void bbr_cwnd_event(struct sock *sk, enum tcp_ca_event event) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + + if (event == CA_EVENT_TX_START && tp->app_limited) { + bbr->idle_restart = 1; + /* Avoid pointless buffer overflows: pace at est. bw if we don't + * need more speed (we're restarting from idle and app-limited). + */ + if (bbr->mode == BBR_PROBE_BW) + bbr_set_pacing_rate(sk, bbr_bw(sk), BBR_UNIT); + } +} + +/* Find target cwnd. Right-size the cwnd based on min RTT and the + * estimated bottleneck bandwidth: + * + * cwnd = bw * min_rtt * gain = BDP * gain + * + * The key factor, gain, controls the amount of queue. While a small gain + * builds a smaller queue, it becomes more vulnerable to noise in RTT + * measurements (e.g., delayed ACKs or other ACK compression effects). This + * noise may cause BBR to under-estimate the rate. + * + * To achieve full performance in high-speed paths, we budget enough cwnd to + * fit full-sized skbs in-flight on both end hosts to fully utilize the path: + * - one skb in sending host Qdisc, + * - one skb in sending host TSO/GSO engine + * - one skb being received by receiver host LRO/GRO/delayed-ACK engine + * Don't worry, at low rates (bbr_min_tso_rate) this won't bloat cwnd because + * in such cases tso_segs_goal is 1. The minimum cwnd is 4 packets, + * which allows 2 outstanding 2-packet sequences, to try to keep pipe + * full even with ACK-every-other-packet delayed ACKs. + */ +static u32 bbr_target_cwnd(struct sock *sk, u32 bw, int gain) +{ + struct bbr *bbr = inet_csk_ca(sk); + u32 cwnd; + u64 w; + + /* If we've never had a valid RTT sample, cap cwnd at the initial + * default. This should only happen when the connection is not using TCP + * timestamps and has retransmitted all of the SYN/SYNACK/data packets + * ACKed so far. In this case, an RTO can cut cwnd to 1, in which + * case we need to slow-start up toward something safe: TCP_INIT_CWND. + */ + if (unlikely(bbr->min_rtt_us == ~0U)) /* no valid RTT samples yet? */ + return TCP_INIT_CWND; /* be safe: cap at default initial cwnd*/ + + w = (u64)bw * bbr->min_rtt_us; + + /* Apply a gain to the given value, then remove the BW_SCALE shift. */ + cwnd = (((w * gain) >> BBR_SCALE) + BW_UNIT - 1) / BW_UNIT; + + /* Allow enough full-sized skbs in flight to utilize end systems. */ + cwnd += 3 * bbr->tso_segs_goal; + + /* Reduce delayed ACKs by rounding up cwnd to the next even number. */ + cwnd = (cwnd + 1) & ~1U; + + return cwnd; +} + +/* An optimization in BBR to reduce losses: On the first round of recovery, we + * follow the packet conservation principle: send P packets per P packets acked. + * After that, we slow-start and send at most 2*P packets per P packets acked. + * After recovery finishes, or upon undo, we restore the cwnd we had when + * recovery started (capped by the target cwnd based on estimated BDP). + * + * TODO(ycheng/ncardwell): implement a rate-based approach. + */ +static bool bbr_set_cwnd_to_recover_or_restore( + struct sock *sk, const struct rate_sample *rs, u32 acked, u32 *new_cwnd) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u8 prev_state = bbr->prev_ca_state, state = inet_csk(sk)->icsk_ca_state; + u32 cwnd = tp->snd_cwnd; + + /* An ACK for P pkts should release at most 2*P packets. We do this + * in two steps. First, here we deduct the number of lost packets. + * Then, in bbr_set_cwnd() we slow start up toward the target cwnd. + */ + if (rs->losses > 0) + cwnd = max_t(s32, cwnd - rs->losses, 1); + + if (state == TCP_CA_Recovery && prev_state != TCP_CA_Recovery) { + /* Starting 1st round of Recovery, so do packet conservation. */ + bbr->packet_conservation = 1; + bbr->next_rtt_delivered = tp->delivered; /* start round now */ + /* Cut unused cwnd from app behavior, TSQ, or TSO deferral: */ + cwnd = tcp_packets_in_flight(tp) + acked; + } else if (prev_state >= TCP_CA_Recovery && state < TCP_CA_Recovery) { + /* Exiting loss recovery; restore cwnd saved before recovery. */ + bbr->restore_cwnd = 1; + bbr->packet_conservation = 0; + } + bbr->prev_ca_state = state; + + if (bbr->restore_cwnd) { + /* Restore cwnd after exiting loss recovery or PROBE_RTT. */ + cwnd = max(cwnd, bbr->prior_cwnd); + bbr->restore_cwnd = 0; + } + + if (bbr->packet_conservation) { + *new_cwnd = max(cwnd, tcp_packets_in_flight(tp) + acked); + return true; /* yes, using packet conservation */ + } + *new_cwnd = cwnd; + return false; +} + +/* Slow-start up toward target cwnd (if bw estimate is growing, or packet loss + * has drawn us down below target), or snap down to target if we're above it. + */ +static void bbr_set_cwnd(struct sock *sk, const struct rate_sample *rs, + u32 acked, u32 bw, int gain) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u32 cwnd = 0, target_cwnd = 0; + + if (!acked) + return; + + if (bbr_set_cwnd_to_recover_or_restore(sk, rs, acked, &cwnd)) + goto done; + + /* If we're below target cwnd, slow start cwnd toward target cwnd. */ + target_cwnd = bbr_target_cwnd(sk, bw, gain); + if (bbr_full_bw_reached(sk)) /* only cut cwnd if we filled the pipe */ + cwnd = min(cwnd + acked, target_cwnd); + else if (cwnd < target_cwnd || tp->delivered < TCP_INIT_CWND) + cwnd = cwnd + acked; + cwnd = max(cwnd, bbr_cwnd_min_target); + +done: + tp->snd_cwnd = min(cwnd, tp->snd_cwnd_clamp); /* apply global cap */ + if (bbr->mode == BBR_PROBE_RTT) /* drain queue, refresh min_rtt */ + tp->snd_cwnd = min(tp->snd_cwnd, bbr_cwnd_min_target); +} + +/* End cycle phase if it's time and/or we hit the phase's in-flight target. */ +static bool bbr_is_next_cycle_phase(struct sock *sk, + const struct rate_sample *rs) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + bool is_full_length = + tcp_stamp_us_delta(tp->delivered_mstamp, bbr->cycle_mstamp) > + bbr->min_rtt_us; + u32 inflight, bw; + + /* The pacing_gain of 1.0 paces at the estimated bw to try to fully + * use the pipe without increasing the queue. + */ + if (bbr->pacing_gain == BBR_UNIT) + return is_full_length; /* just use wall clock time */ + + inflight = rs->prior_in_flight; /* what was in-flight before ACK? */ + bw = bbr_max_bw(sk); + + /* A pacing_gain > 1.0 probes for bw by trying to raise inflight to at + * least pacing_gain*BDP; this may take more than min_rtt if min_rtt is + * small (e.g. on a LAN). We do not persist if packets are lost, since + * a path with small buffers may not hold that much. + */ + if (bbr->pacing_gain > BBR_UNIT) + return is_full_length && + (rs->losses || /* perhaps pacing_gain*BDP won't fit */ + inflight >= bbr_target_cwnd(sk, bw, bbr->pacing_gain)); + + /* A pacing_gain < 1.0 tries to drain extra queue we added if bw + * probing didn't find more bw. If inflight falls to match BDP then we + * estimate queue is drained; persisting would underutilize the pipe. + */ + return is_full_length || + inflight <= bbr_target_cwnd(sk, bw, BBR_UNIT); +} + +static void bbr_advance_cycle_phase(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + + bbr->cycle_idx = (bbr->cycle_idx + 1) & (CYCLE_LEN - 1); + bbr->cycle_mstamp = tp->delivered_mstamp; + bbr->pacing_gain = bbr_pacing_gain[bbr->cycle_idx]; +} + +/* Gain cycling: cycle pacing gain to converge to fair share of available bw. */ +static void bbr_update_cycle_phase(struct sock *sk, + const struct rate_sample *rs) +{ + struct bbr *bbr = inet_csk_ca(sk); + + if ((bbr->mode == BBR_PROBE_BW) && !bbr->lt_use_bw && + bbr_is_next_cycle_phase(sk, rs)) + bbr_advance_cycle_phase(sk); +} + +static void bbr_reset_startup_mode(struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + bbr->mode = BBR_STARTUP; + bbr->pacing_gain = bbr_high_gain; + bbr->cwnd_gain = bbr_high_gain; +} + +static void bbr_reset_probe_bw_mode(struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + bbr->mode = BBR_PROBE_BW; + bbr->pacing_gain = BBR_UNIT; + bbr->cwnd_gain = bbr_cwnd_gain; + bbr->cycle_idx = CYCLE_LEN - 1 - prandom_u32_max(bbr_cycle_rand); + bbr_advance_cycle_phase(sk); /* flip to next phase of gain cycle */ +} + +static void bbr_reset_mode(struct sock *sk) +{ + if (!bbr_full_bw_reached(sk)) + bbr_reset_startup_mode(sk); + else + bbr_reset_probe_bw_mode(sk); +} + +/* Start a new long-term sampling interval. */ +static void bbr_reset_lt_bw_sampling_interval(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + + bbr->lt_last_stamp = div_u64(tp->delivered_mstamp, USEC_PER_MSEC); + bbr->lt_last_delivered = tp->delivered; + bbr->lt_last_lost = tp->lost; + bbr->lt_rtt_cnt = 0; +} + +/* Completely reset long-term bandwidth sampling. */ +static void bbr_reset_lt_bw_sampling(struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + bbr->lt_bw = 0; + bbr->lt_use_bw = 0; + bbr->lt_is_sampling = false; + bbr_reset_lt_bw_sampling_interval(sk); +} + +/* Long-term bw sampling interval is done. Estimate whether we're policed. */ +static void bbr_lt_bw_interval_done(struct sock *sk, u32 bw) +{ + struct bbr *bbr = inet_csk_ca(sk); + u32 diff; + + if (bbr->lt_bw) { /* do we have bw from a previous interval? */ + /* Is new bw close to the lt_bw from the previous interval? */ + diff = abs(bw - bbr->lt_bw); + if ((diff * BBR_UNIT <= bbr_lt_bw_ratio * bbr->lt_bw) || + (bbr_rate_bytes_per_sec(sk, diff, BBR_UNIT) <= + bbr_lt_bw_diff)) { + /* All criteria are met; estimate we're policed. */ + bbr->lt_bw = (bw + bbr->lt_bw) >> 1; /* avg 2 intvls */ + bbr->lt_use_bw = 1; + bbr->pacing_gain = BBR_UNIT; /* try to avoid drops */ + bbr->lt_rtt_cnt = 0; + return; + } + } + bbr->lt_bw = bw; + bbr_reset_lt_bw_sampling_interval(sk); +} + +/* Token-bucket traffic policers are common (see "An Internet-Wide Analysis of + * Traffic Policing", SIGCOMM 2016). BBR detects token-bucket policers and + * explicitly models their policed rate, to reduce unnecessary losses. We + * estimate that we're policed if we see 2 consecutive sampling intervals with + * consistent throughput and high packet loss. If we think we're being policed, + * set lt_bw to the "long-term" average delivery rate from those 2 intervals. + */ +static void bbr_lt_bw_sampling(struct sock *sk, const struct rate_sample *rs) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u32 lost, delivered; + u64 bw; + u32 t; + + if (bbr->lt_use_bw) { /* already using long-term rate, lt_bw? */ + if (bbr->mode == BBR_PROBE_BW && bbr->round_start && + ++bbr->lt_rtt_cnt >= bbr_lt_bw_max_rtts) { + bbr_reset_lt_bw_sampling(sk); /* stop using lt_bw */ + bbr_reset_probe_bw_mode(sk); /* restart gain cycling */ + } + return; + } + + /* Wait for the first loss before sampling, to let the policer exhaust + * its tokens and estimate the steady-state rate allowed by the policer. + * Starting samples earlier includes bursts that over-estimate the bw. + */ + if (!bbr->lt_is_sampling) { + if (!rs->losses) + return; + bbr_reset_lt_bw_sampling_interval(sk); + bbr->lt_is_sampling = true; + } + + /* To avoid underestimates, reset sampling if we run out of data. */ + if (rs->is_app_limited) { + bbr_reset_lt_bw_sampling(sk); + return; + } + + if (bbr->round_start) + bbr->lt_rtt_cnt++; /* count round trips in this interval */ + if (bbr->lt_rtt_cnt < bbr_lt_intvl_min_rtts) + return; /* sampling interval needs to be longer */ + if (bbr->lt_rtt_cnt > 4 * bbr_lt_intvl_min_rtts) { + bbr_reset_lt_bw_sampling(sk); /* interval is too long */ + return; + } + + /* End sampling interval when a packet is lost, so we estimate the + * policer tokens were exhausted. Stopping the sampling before the + * tokens are exhausted under-estimates the policed rate. + */ + if (!rs->losses) + return; + + /* Calculate packets lost and delivered in sampling interval. */ + lost = tp->lost - bbr->lt_last_lost; + delivered = tp->delivered - bbr->lt_last_delivered; + /* Is loss rate (lost/delivered) >= lt_loss_thresh? If not, wait. */ + if (!delivered || (lost << BBR_SCALE) < bbr_lt_loss_thresh * delivered) + return; + + /* Find average delivery rate in this sampling interval. */ + t = div_u64(tp->delivered_mstamp, USEC_PER_MSEC) - bbr->lt_last_stamp; + if ((s32)t < 1) + return; /* interval is less than one ms, so wait */ + /* Check if can multiply without overflow */ + if (t >= ~0U / USEC_PER_MSEC) { + bbr_reset_lt_bw_sampling(sk); /* interval too long; reset */ + return; + } + t *= USEC_PER_MSEC; + bw = (u64)delivered * BW_UNIT; + do_div(bw, t); + bbr_lt_bw_interval_done(sk, bw); +} + +/* Estimate the bandwidth based on how fast packets are delivered */ +static void bbr_update_bw(struct sock *sk, const struct rate_sample *rs) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u64 bw; + + bbr->round_start = 0; + if (rs->delivered < 0 || rs->interval_us <= 0) + return; /* Not a valid observation */ + + /* See if we've reached the next RTT */ + if (!before(rs->prior_delivered, bbr->next_rtt_delivered)) { + bbr->next_rtt_delivered = tp->delivered; + bbr->rtt_cnt++; + bbr->round_start = 1; + bbr->packet_conservation = 0; + } + + bbr_lt_bw_sampling(sk, rs); + + /* Divide delivered by the interval to find a (lower bound) bottleneck + * bandwidth sample. Delivered is in packets and interval_us in uS and + * ratio will be <<1 for most connections. So delivered is first scaled. + */ + bw = (u64)rs->delivered * BW_UNIT; + do_div(bw, rs->interval_us); + + /* If this sample is application-limited, it is likely to have a very + * low delivered count that represents application behavior rather than + * the available network rate. Such a sample could drag down estimated + * bw, causing needless slow-down. Thus, to continue to send at the + * last measured network rate, we filter out app-limited samples unless + * they describe the path bw at least as well as our bw model. + * + * So the goal during app-limited phase is to proceed with the best + * network rate no matter how long. We automatically leave this + * phase when app writes faster than the network can deliver :) + */ + if (!rs->is_app_limited || bw >= bbr_max_bw(sk)) { + /* Incorporate new sample into our max bw filter. */ + minmax_running_max(&bbr->bw, bbr_bw_rtts, bbr->rtt_cnt, bw); + } +} + +/* Estimate when the pipe is full, using the change in delivery rate: BBR + * estimates that STARTUP filled the pipe if the estimated bw hasn't changed by + * at least bbr_full_bw_thresh (25%) after bbr_full_bw_cnt (3) non-app-limited + * rounds. Why 3 rounds: 1: rwin autotuning grows the rwin, 2: we fill the + * higher rwin, 3: we get higher delivery rate samples. Or transient + * cross-traffic or radio noise can go away. CUBIC Hystart shares a similar + * design goal, but uses delay and inter-ACK spacing instead of bandwidth. + */ +static void bbr_check_full_bw_reached(struct sock *sk, + const struct rate_sample *rs) +{ + struct bbr *bbr = inet_csk_ca(sk); + u32 bw_thresh; + + if (bbr_full_bw_reached(sk) || !bbr->round_start || rs->is_app_limited) + return; + + bw_thresh = (u64)bbr->full_bw * bbr_full_bw_thresh >> BBR_SCALE; + if (bbr_max_bw(sk) >= bw_thresh) { + bbr->full_bw = bbr_max_bw(sk); + bbr->full_bw_cnt = 0; + return; + } + ++bbr->full_bw_cnt; +} + +/* If pipe is probably full, drain the queue and then enter steady-state. */ +static void bbr_check_drain(struct sock *sk, const struct rate_sample *rs) +{ + struct bbr *bbr = inet_csk_ca(sk); + + if (bbr->mode == BBR_STARTUP && bbr_full_bw_reached(sk)) { + bbr->mode = BBR_DRAIN; /* drain queue we created */ + bbr->pacing_gain = bbr_drain_gain; /* pace slow to drain */ + bbr->cwnd_gain = bbr_high_gain; /* maintain cwnd */ + } /* fall through to check if in-flight is already small: */ + if (bbr->mode == BBR_DRAIN && + tcp_packets_in_flight(tcp_sk(sk)) <= + bbr_target_cwnd(sk, bbr_max_bw(sk), BBR_UNIT)) + bbr_reset_probe_bw_mode(sk); /* we estimate queue is drained */ +} + +/* The goal of PROBE_RTT mode is to have BBR flows cooperatively and + * periodically drain the bottleneck queue, to converge to measure the true + * min_rtt (unloaded propagation delay). This allows the flows to keep queues + * small (reducing queuing delay and packet loss) and achieve fairness among + * BBR flows. + * + * The min_rtt filter window is 10 seconds. When the min_rtt estimate expires, + * we enter PROBE_RTT mode and cap the cwnd at bbr_cwnd_min_target=4 packets. + * After at least bbr_probe_rtt_mode_ms=200ms and at least one packet-timed + * round trip elapsed with that flight size <= 4, we leave PROBE_RTT mode and + * re-enter the previous mode. BBR uses 200ms to approximately bound the + * performance penalty of PROBE_RTT's cwnd capping to roughly 2% (200ms/10s). + * + * Note that flows need only pay 2% if they are busy sending over the last 10 + * seconds. Interactive applications (e.g., Web, RPCs, video chunks) often have + * natural silences or low-rate periods within 10 seconds where the rate is low + * enough for long enough to drain its queue in the bottleneck. We pick up + * these min RTT measurements opportunistically with our min_rtt filter. :-) + */ +static void bbr_update_min_rtt(struct sock *sk, const struct rate_sample *rs) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + bool filter_expired; + + /* Track min RTT seen in the min_rtt_win_sec filter window: */ + filter_expired = after(tcp_jiffies32, + bbr->min_rtt_stamp + bbr_min_rtt_win_sec * HZ); + if (rs->rtt_us >= 0 && + (rs->rtt_us <= bbr->min_rtt_us || filter_expired)) { + bbr->min_rtt_us = rs->rtt_us; + bbr->min_rtt_stamp = tcp_jiffies32; + } + + if (bbr_probe_rtt_mode_ms > 0 && filter_expired && + !bbr->idle_restart && bbr->mode != BBR_PROBE_RTT) { + bbr->mode = BBR_PROBE_RTT; /* dip, drain queue */ + bbr->pacing_gain = BBR_UNIT; + bbr->cwnd_gain = BBR_UNIT; + bbr_save_cwnd(sk); /* note cwnd so we can restore it */ + bbr->probe_rtt_done_stamp = 0; + } + + if (bbr->mode == BBR_PROBE_RTT) { + /* Ignore low rate samples during this mode. */ + tp->app_limited = + (tp->delivered + tcp_packets_in_flight(tp)) ? : 1; + /* Maintain min packets in flight for max(200 ms, 1 round). */ + if (!bbr->probe_rtt_done_stamp && + tcp_packets_in_flight(tp) <= bbr_cwnd_min_target) { + bbr->probe_rtt_done_stamp = tcp_jiffies32 + + msecs_to_jiffies(bbr_probe_rtt_mode_ms); + bbr->probe_rtt_round_done = 0; + bbr->next_rtt_delivered = tp->delivered; + } else if (bbr->probe_rtt_done_stamp) { + if (bbr->round_start) + bbr->probe_rtt_round_done = 1; + if (bbr->probe_rtt_round_done && + after(tcp_jiffies32, bbr->probe_rtt_done_stamp)) { + bbr->min_rtt_stamp = tcp_jiffies32; + bbr->restore_cwnd = 1; /* snap to prior_cwnd */ + bbr_reset_mode(sk); + } + } + } + bbr->idle_restart = 0; +} + +static void bbr_update_model(struct sock *sk, const struct rate_sample *rs) +{ + bbr_update_bw(sk, rs); + bbr_update_cycle_phase(sk, rs); + bbr_check_full_bw_reached(sk, rs); + bbr_check_drain(sk, rs); + bbr_update_min_rtt(sk, rs); +} + +static void bbr_main(struct sock *sk, const struct rate_sample *rs) +{ + struct bbr *bbr = inet_csk_ca(sk); + u32 bw; + + bbr_update_model(sk, rs); + + bw = bbr_bw(sk); + bbr_set_pacing_rate(sk, bw, bbr->pacing_gain); + bbr_set_tso_segs_goal(sk); + bbr_set_cwnd(sk, rs, rs->acked_sacked, bw, bbr->cwnd_gain); +} + +static void bbr_init(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + + bbr->prior_cwnd = 0; + bbr->tso_segs_goal = 0; /* default segs per skb until first ACK */ + bbr->rtt_cnt = 0; + bbr->next_rtt_delivered = 0; + bbr->prev_ca_state = TCP_CA_Open; + bbr->packet_conservation = 0; + + bbr->probe_rtt_done_stamp = 0; + bbr->probe_rtt_round_done = 0; + bbr->min_rtt_us = tcp_min_rtt(tp); + bbr->min_rtt_stamp = tcp_jiffies32; + + minmax_reset(&bbr->bw, bbr->rtt_cnt, 0); /* init max bw to 0 */ + + bbr->has_seen_rtt = 0; + bbr_init_pacing_rate_from_rtt(sk); + + bbr->restore_cwnd = 0; + bbr->round_start = 0; + bbr->idle_restart = 0; + bbr->full_bw = 0; + bbr->full_bw_cnt = 0; + bbr->cycle_mstamp = 0; + bbr->cycle_idx = 0; + bbr_reset_lt_bw_sampling(sk); + bbr_reset_startup_mode(sk); + + cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED); +} + +static u32 bbr_sndbuf_expand(struct sock *sk) +{ + /* Provision 3 * cwnd since BBR may slow-start even during recovery. */ + return 3; +} + +/* In theory BBR does not need to undo the cwnd since it does not + * always reduce cwnd on losses (see bbr_main()). Keep it for now. + */ +static u32 bbr_undo_cwnd(struct sock *sk) +{ + return tcp_sk(sk)->snd_cwnd; +} + +/* Entering loss recovery, so save cwnd for when we exit or undo recovery. */ +static u32 bbr_ssthresh(struct sock *sk) +{ + bbr_save_cwnd(sk); + return TCP_INFINITE_SSTHRESH; /* BBR does not use ssthresh */ +} + +static size_t bbr_get_info(struct sock *sk, u32 ext, int *attr, + union tcp_cc_info *info) +{ + if (ext & (1 << (INET_DIAG_BBRINFO - 1)) || + ext & (1 << (INET_DIAG_VEGASINFO - 1))) { + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u64 bw = bbr_bw(sk); + + bw = bw * tp->mss_cache * USEC_PER_SEC >> BW_SCALE; + memset(&info->bbr, 0, sizeof(info->bbr)); + info->bbr.bbr_bw_lo = (u32)bw; + info->bbr.bbr_bw_hi = (u32)(bw >> 32); + info->bbr.bbr_min_rtt = bbr->min_rtt_us; + info->bbr.bbr_pacing_gain = bbr->pacing_gain; + info->bbr.bbr_cwnd_gain = bbr->cwnd_gain; + *attr = INET_DIAG_BBRINFO; + return sizeof(info->bbr); + } + return 0; +} + +static void bbr_set_state(struct sock *sk, u8 new_state) +{ + struct bbr *bbr = inet_csk_ca(sk); + + if (new_state == TCP_CA_Loss) { + struct rate_sample rs = { .losses = 1 }; + + bbr->prev_ca_state = TCP_CA_Loss; + bbr->full_bw = 0; + bbr->round_start = 1; /* treat RTO like end of a round */ + bbr_lt_bw_sampling(sk, &rs); + } +} + +static struct tcp_congestion_ops tcp_bbr_cong_ops __read_mostly = { + .flags = TCP_CONG_NON_RESTRICTED, + .name = "nanqinlang", + .owner = THIS_MODULE, + .init = bbr_init, + .cong_control = bbr_main, + .sndbuf_expand = bbr_sndbuf_expand, + .undo_cwnd = bbr_undo_cwnd, + .cwnd_event = bbr_cwnd_event, + .ssthresh = bbr_ssthresh, + .tso_segs_goal = bbr_tso_segs_goal, + .get_info = bbr_get_info, + .set_state = bbr_set_state, +}; + +static int __init bbr_register(void) +{ + BUILD_BUG_ON(sizeof(struct bbr) > ICSK_CA_PRIV_SIZE); + return tcp_register_congestion_control(&tcp_bbr_cong_ops); +} + +static void __exit bbr_unregister(void) +{ + tcp_unregister_congestion_control(&tcp_bbr_cong_ops); +} + +module_init(bbr_register); +module_exit(bbr_unregister); + +MODULE_AUTHOR("Van Jacobson "); +MODULE_AUTHOR("Neal Cardwell "); +MODULE_AUTHOR("Yuchung Cheng "); +MODULE_AUTHOR("Soheil Hassas Yeganeh "); +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_DESCRIPTION("TCP BBR (Bottleneck Bandwidth and RTT)"); +MODULE_AUTHOR("Nanqinlang "); \ No newline at end of file diff --git a/package/ctcgfw/bbr-tsunami/Makefile b/package/ctcgfw/bbr-tsunami/Makefile new file mode 100644 index 0000000000..0d8fa2cfa2 --- /dev/null +++ b/package/ctcgfw/bbr-tsunami/Makefile @@ -0,0 +1,46 @@ +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=tcp-bbr-tsunami +PKG_RELEASE:=1 + +include $(INCLUDE_DIR)/package.mk + +define KernelPackage/$(PKG_NAME) + SUBMENU:=Network Support + TITLE:=Modified bbr tcp congestion control + DEPENDS:=@LINUX_4_14 + FILES:=$(PKG_BUILD_DIR)/tcp_bbr_tsunami.ko + KCONFIG:= +endef + +define KernelPackage/$(PKG_NAME)/description + Kernel module of modified BBR tcp congestion control +endef + +EXTRA_KCONFIG:= \ + + +EXTRA_CFLAGS:= \ + $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(EXTRA_KCONFIG)))) \ + $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(EXTRA_KCONFIG)))) \ + +MAKE_OPTS:= \ + ARCH="$(LINUX_KARCH)" \ + CROSS_COMPILE="$(TARGET_CROSS)" \ + SUBDIRS="$(PKG_BUILD_DIR)" \ + EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \ + $(EXTRA_KCONFIG) + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) + $(CP) ./src/* $(PKG_BUILD_DIR)/ +endef + +define Build/Compile + $(MAKE) -C "$(LINUX_DIR)" \ + $(MAKE_OPTS) \ + modules +endef + +$(eval $(call KernelPackage,$(PKG_NAME))) diff --git a/package/ctcgfw/bbr-tsunami/src/Makefile b/package/ctcgfw/bbr-tsunami/src/Makefile new file mode 100644 index 0000000000..e75eebfb33 --- /dev/null +++ b/package/ctcgfw/bbr-tsunami/src/Makefile @@ -0,0 +1 @@ +obj-m := tcp_bbr_tsunami.o diff --git a/package/ctcgfw/bbr-tsunami/src/tcp_bbr_tsunami.c b/package/ctcgfw/bbr-tsunami/src/tcp_bbr_tsunami.c new file mode 100644 index 0000000000..4d6ffe8bcb --- /dev/null +++ b/package/ctcgfw/bbr-tsunami/src/tcp_bbr_tsunami.c @@ -0,0 +1,905 @@ +/* Bottleneck Bandwidth and RTT (BBR) congestion control + * + * BBR congestion control computes the sending rate based on the delivery + * rate (throughput) estimated from ACKs. In a nutshell: + * + * On each ACK, update our model of the network path: + * bottleneck_bandwidth = windowed_max(delivered / elapsed, 10 round trips) + * min_rtt = windowed_min(rtt, 10 seconds) + * pacing_rate = pacing_gain * bottleneck_bandwidth + * cwnd = max(cwnd_gain * bottleneck_bandwidth * min_rtt, 4) + * + * The core algorithm does not react directly to packet losses or delays, + * although BBR may adjust the size of next send per ACK when loss is + * observed, or adjust the sending rate if it estimates there is a + * traffic policer, in order to keep the drop rate reasonable. + * + * BBR is described in detail in: + * "BBR: Congestion-Based Congestion Control", + * Neal Cardwell, Yuchung Cheng, C. Stephen Gunn, Soheil Hassas Yeganeh, + * Van Jacobson. ACM Queue, Vol. 14 No. 5, September-October 2016. + * + * There is a public e-mail list for discussing BBR development and testing: + * https://groups.google.com/forum/#!forum/bbr-dev + * + * NOTE: BBR *must* be used with the fq qdisc ("man tc-fq") with pacing enabled, + * since pacing is integral to the BBR design and implementation. + * BBR without pacing would not function properly, and may incur unnecessary + * high packet loss rates. + */ +#include +#include +#include +#include +#include +#include + +/* Scale factor for rate in pkt/uSec unit to avoid truncation in bandwidth + * estimation. The rate unit ~= (1500 bytes / 1 usec / 2^24) ~= 715 bps. + * This handles bandwidths from 0.06pps (715bps) to 256Mpps (3Tbps) in a u32. + * Since the minimum window is >=4 packets, the lower bound isn't + * an issue. The upper bound isn't an issue with existing technologies. + */ +#define BW_SCALE 24 +#define BW_UNIT (1 << BW_SCALE) + +#define BBR_SCALE 8 /* scaling factor for fractions in BBR (e.g. gains) */ +#define BBR_UNIT (1 << BBR_SCALE) + +/* BBR has the following modes for deciding how fast to send: */ +enum bbr_mode { + BBR_STARTUP, /* ramp up sending rate rapidly to fill pipe */ + BBR_DRAIN, /* drain any queue created during startup */ + BBR_PROBE_BW, /* discover, share bw: pace around estimated bw */ + BBR_PROBE_RTT, /* cut cwnd to min to probe min_rtt */ +}; + +/* BBR congestion control block */ +struct bbr { + u32 min_rtt_us; /* min RTT in min_rtt_win_sec window */ +//deprecated u32 rtt_us; + u32 min_rtt_stamp; /* timestamp of min_rtt_us */ + u32 probe_rtt_done_stamp; /* end time for BBR_PROBE_RTT mode */ +//deprecated struct minmax max_rtt; + struct minmax bw; /* Max recent delivery rate in pkts/uS << 24 */ + u32 rtt_cnt; /* count of packet-timed rounds elapsed */ + u32 next_rtt_delivered; /* scb->tx.delivered at end of round */ + struct skb_mstamp cycle_mstamp; /* time of this cycle phase start */ + u32 mode:3, /* current bbr_mode in state machine */ + prev_ca_state:3, /* CA state on previous ACK */ + packet_conservation:1, /* use packet conservation? */ + restore_cwnd:1, /* decided to revert cwnd to old value */ + round_start:1, /* start of packet-timed tx->ack round? */ + tso_segs_goal:7, /* segments we want in each skb we send */ + idle_restart:1, /* restarting after idle? */ + probe_rtt_round_done:1, /* a BBR_PROBE_RTT round at 4 pkts? */ + unused:5, + lt_is_sampling:1, /* taking long-term ("LT") samples now? */ + lt_rtt_cnt:7, /* round trips in long-term interval */ + lt_use_bw:1; /* use lt_bw as our bw estimate? */ + u32 lt_bw; /* LT est delivery rate in pkts/uS << 24 */ + u32 lt_last_delivered; /* LT intvl start: tp->delivered */ + u32 lt_last_stamp; /* LT intvl start: tp->delivered_mstamp */ + u32 lt_last_lost; /* LT intvl start: tp->lost */ + u32 pacing_gain:10, /* current gain for setting pacing rate */ + cwnd_gain:10, /* current gain for setting cwnd */ + full_bw_cnt:3, /* number of rounds without large bw gains */ + cycle_idx:3, /* current index in pacing_gain cycle array */ + unused_b:6; + u32 prior_cwnd; /* prior cwnd upon entering loss recovery */ + u32 full_bw; /* recent bw, to estimate if pipe is full */ +}; + +#define CYCLE_LEN 8 /* number of phases in a pacing gain cycle */ + +/* Window length of bw filter (in rounds): */ +static const int bbr_bw_rtts = CYCLE_LEN + 7; +/* Window length of min_rtt filter (in sec): */ +static const u32 bbr_min_rtt_win_sec = 20; +/* Minimum time (in ms) spent at bbr_cwnd_min_target in BBR_PROBE_RTT mode: */ +static const u32 bbr_probe_rtt_mode_ms = 200; +/* Skip TSO below the following bandwidth (bits/sec): */ +static const int bbr_min_tso_rate = 1200000; + +/* We use a high_gain value of 2/ln(2) because it's the smallest pacing gain + * that will allow a smoothly increasing pacing rate that will double each RTT + * and send the same number of packets per RTT that an un-paced, slow-starting + * Reno or CUBIC flow would: + */ +static const int bbr_high_gain = BBR_UNIT * 2885 / 1000 + 1; +/* The pacing gain of 1/high_gain in BBR_DRAIN is calculated to typically drain + * the queue created in BBR_STARTUP in a single round: + */ +static const int bbr_drain_gain = BBR_UNIT * 1200 / 2885; +/* The gain for deriving steady-state cwnd tolerates delayed/stretched ACKs: */ +static const int bbr_cwnd_gain = BBR_UNIT * 2; +/* The pacing_gain values for the PROBE_BW gain cycle, to discover/share bw: */ +static const int bbr_pacing_gain[] = { + BBR_UNIT * 3 / 2, /* probe for more available bw */ + BBR_UNIT * 3 / 4, /* drain queue and/or yield bw to other flows */ + BBR_UNIT * 9 / 8, BBR_UNIT * 9 / 8, BBR_UNIT * 9 / 8, /* cruise at 1.0*bw to utilize pipe, */ + BBR_UNIT * 9 / 8, BBR_UNIT * 9 / 8, BBR_UNIT * 9 / 8 /* without creating excess queue... */ +}; +/* Randomize the starting gain cycling phase over N phases: */ +static const u32 bbr_cycle_rand = 7; + +/* Try to keep at least this many packets in flight, if things go smoothly. For + * smooth functioning, a sliding window protocol ACKing every other packet + * needs at least 4 packets in flight: + */ +static const u32 bbr_cwnd_min_target = 4; + +/* To estimate if BBR_STARTUP mode (i.e. high_gain) has filled pipe... */ +/* If bw has increased significantly (1.25x), there may be more bw available: */ +static const u32 bbr_full_bw_thresh = BBR_UNIT * 5 / 4; +/* But after 3 rounds w/o significant bw growth, estimate pipe is full: */ +static const u32 bbr_full_bw_cnt = 3; + +/* "long-term" ("LT") bandwidth estimator parameters... */ +/* The minimum number of rounds in an LT bw sampling interval: */ +static const u32 bbr_lt_intvl_min_rtts = 4; +/* If lost/delivered ratio > 20%, interval is "lossy" and we may be policed: */ +static const u32 bbr_lt_loss_thresh = 50; +/* If 2 intervals have a bw ratio <= 1/8, their bw is "consistent": */ +static const u32 bbr_lt_bw_ratio = BBR_UNIT / 8; +/* If 2 intervals have a bw diff <= 4 Kbit/sec their bw is "consistent": */ +static const u32 bbr_lt_bw_diff = 4000 / 8; +/* If we estimate we're policed, use lt_bw for this many round trips: */ +static const u32 bbr_lt_bw_max_rtts = 48; + +/* Do we estimate that STARTUP filled the pipe? */ +static bool bbr_full_bw_reached(const struct sock *sk) +{ + const struct bbr *bbr = inet_csk_ca(sk); + + return bbr->full_bw_cnt >= bbr_full_bw_cnt; +} + +/* Return the windowed max recent bandwidth sample, in pkts/uS << BW_SCALE. */ +static u32 bbr_max_bw(const struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + return minmax_get(&bbr->bw); +} + +/* Return the estimated bandwidth of the path, in pkts/uS << BW_SCALE. */ +static u32 bbr_bw(const struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + return bbr->lt_use_bw ? bbr->lt_bw : bbr_max_bw(sk); +} + +/* Return rate in bytes per second, optionally with a gain. + * The order here is chosen carefully to avoid overflow of u64. This should + * work for input rates of up to 2.9Tbit/sec and gain of 2.89x. + */ +static u64 bbr_rate_bytes_per_sec(struct sock *sk, u64 rate, int gain) +{ + rate *= tcp_mss_to_mtu(sk, tcp_sk(sk)->mss_cache); + rate *= gain; + rate >>= BBR_SCALE; + rate *= USEC_PER_SEC; + return rate >> BW_SCALE; +} + +/* Pace using current bw estimate and a gain factor. In order to help drive the + * network toward lower queues while maintaining high utilization and low + * latency, the average pacing rate aims to be slightly (~1%) lower than the + * estimated bandwidth. This is an important aspect of the design. In this + * implementation this slightly lower pacing rate is achieved implicitly by not + * including link-layer headers in the packet size used for the pacing rate. + */ +static void bbr_set_pacing_rate(struct sock *sk, u32 bw, int gain) +{ + struct bbr *bbr = inet_csk_ca(sk); + u64 rate = bw; + + rate = bbr_rate_bytes_per_sec(sk, rate, gain); + rate = min_t(u64, rate, sk->sk_max_pacing_rate); + if (bbr->mode != BBR_STARTUP || rate > sk->sk_pacing_rate) + sk->sk_pacing_rate = rate; +} + +/* Return count of segments we want in the skbs we send, or 0 for default. */ +static u32 bbr_tso_segs_goal(struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + return bbr->tso_segs_goal; +} + +static void bbr_set_tso_segs_goal(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u32 min_segs; + + min_segs = sk->sk_pacing_rate < (bbr_min_tso_rate >> 3) ? 1 : 2; + bbr->tso_segs_goal = min(tcp_tso_autosize(sk, tp->mss_cache, min_segs), + 0x7FU); +} + +/* Save "last known good" cwnd so we can restore it after losses or PROBE_RTT */ +static void bbr_save_cwnd(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + + if (bbr->prev_ca_state < TCP_CA_Recovery && bbr->mode != BBR_PROBE_RTT) + bbr->prior_cwnd = tp->snd_cwnd; /* this cwnd is good enough */ + else /* loss recovery or BBR_PROBE_RTT have temporarily cut cwnd */ + bbr->prior_cwnd = max(bbr->prior_cwnd, tp->snd_cwnd); +} + +static void bbr_cwnd_event(struct sock *sk, enum tcp_ca_event event) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + + if (event == CA_EVENT_TX_START && tp->app_limited) { + bbr->idle_restart = 1; + /* Avoid pointless buffer overflows: pace at est. bw if we don't + * need more speed (we're restarting from idle and app-limited). + */ + if (bbr->mode == BBR_PROBE_BW) + bbr_set_pacing_rate(sk, bbr_bw(sk), BBR_UNIT); + } +} + +/* Find target cwnd. Right-size the cwnd based on min RTT and the + * estimated bottleneck bandwidth: + * + * cwnd = bw * min_rtt * gain = BDP * gain + * + * The key factor, gain, controls the amount of queue. While a small gain + * builds a smaller queue, it becomes more vulnerable to noise in RTT + * measurements (e.g., delayed ACKs or other ACK compression effects). This + * noise may cause BBR to under-estimate the rate. + * + * To achieve full performance in high-speed paths, we budget enough cwnd to + * fit full-sized skbs in-flight on both end hosts to fully utilize the path: + * - one skb in sending host Qdisc, + * - one skb in sending host TSO/GSO engine + * - one skb being received by receiver host LRO/GRO/delayed-ACK engine + * Don't worry, at low rates (bbr_min_tso_rate) this won't bloat cwnd because + * in such cases tso_segs_goal is 1. The minimum cwnd is 4 packets, + * which allows 2 outstanding 2-packet sequences, to try to keep pipe + * full even with ACK-every-other-packet delayed ACKs. + */ +static u32 bbr_target_cwnd(struct sock *sk, u32 bw, int gain) +{ + struct bbr *bbr = inet_csk_ca(sk); + u32 cwnd; + u64 w; + + /* If we've never had a valid RTT sample, cap cwnd at the initial + * default. This should only happen when the connection is not using TCP + * timestamps and has retransmitted all of the SYN/SYNACK/data packets + * ACKed so far. In this case, an RTO can cut cwnd to 1, in which + * case we need to slow-start up toward something safe: TCP_INIT_CWND. + */ + if (unlikely(bbr->min_rtt_us == ~0U)) /* no valid RTT samples yet? */ + return TCP_INIT_CWND; /* be safe: cap at default initial cwnd*/ + + w = (u64)bw * bbr->min_rtt_us; + + /* Apply a gain to the given value, then remove the BW_SCALE shift. */ + cwnd = (((w * gain) >> BBR_SCALE) + BW_UNIT - 1) / BW_UNIT; + + /* Allow enough full-sized skbs in flight to utilize end systems. */ + cwnd += 3 * bbr->tso_segs_goal; + + /* Reduce delayed ACKs by rounding up cwnd to the next even number. */ + cwnd = (cwnd + 1) & ~1U; + + return cwnd; +} + +/* An optimization in BBR to reduce losses: On the first round of recovery, we + * follow the packet conservation principle: send P packets per P packets acked. + * After that, we slow-start and send at most 2*P packets per P packets acked. + * After recovery finishes, or upon undo, we restore the cwnd we had when + * recovery started (capped by the target cwnd based on estimated BDP). + * + * TODO(ycheng/ncardwell): implement a rate-based approach. + */ +static bool bbr_set_cwnd_to_recover_or_restore( + struct sock *sk, const struct rate_sample *rs, u32 acked, u32 *new_cwnd) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u8 prev_state = bbr->prev_ca_state, state = inet_csk(sk)->icsk_ca_state; + u32 cwnd = tp->snd_cwnd; + + /* An ACK for P pkts should release at most 2*P packets. We do this + * in two steps. First, here we deduct the number of lost packets. + * Then, in bbr_set_cwnd() we slow start up toward the target cwnd. + */ + if (rs->losses > 0) + cwnd = max_t(s32, cwnd - rs->losses, 1); + + if (state == TCP_CA_Recovery && prev_state != TCP_CA_Recovery) { + /* Starting 1st round of Recovery, so do packet conservation. */ + bbr->packet_conservation = 1; + bbr->next_rtt_delivered = tp->delivered; /* start round now */ + /* Cut unused cwnd from app behavior, TSQ, or TSO deferral: */ + cwnd = tcp_packets_in_flight(tp) + acked; + } else if (prev_state >= TCP_CA_Recovery && state < TCP_CA_Recovery) { + /* Exiting loss recovery; restore cwnd saved before recovery. */ + bbr->restore_cwnd = 1; + bbr->packet_conservation = 0; + } + bbr->prev_ca_state = state; + + if (bbr->restore_cwnd) { + /* Restore cwnd after exiting loss recovery or PROBE_RTT. */ + cwnd = max(cwnd, bbr->prior_cwnd); + bbr->restore_cwnd = 0; + } + + if (bbr->packet_conservation) { + *new_cwnd = max(cwnd, tcp_packets_in_flight(tp) + acked); + return true; /* yes, using packet conservation */ + } + *new_cwnd = cwnd; + return false; +} + +/* Slow-start up toward target cwnd (if bw estimate is growing, or packet loss + * has drawn us down below target), or snap down to target if we're above it. + */ +static void bbr_set_cwnd(struct sock *sk, const struct rate_sample *rs, + u32 acked, u32 bw, int gain) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u32 cwnd = 0, target_cwnd = 0; + + if (!acked) + return; + + if (bbr_set_cwnd_to_recover_or_restore(sk, rs, acked, &cwnd)) + goto done; + + /* If we're below target cwnd, slow start cwnd toward target cwnd. */ + target_cwnd = bbr_target_cwnd(sk, bw, gain); + if (bbr_full_bw_reached(sk)) /* only cut cwnd if we filled the pipe */ + cwnd = min(cwnd + acked, target_cwnd); + else if (cwnd < target_cwnd || tp->delivered < TCP_INIT_CWND) + cwnd = cwnd + acked; + cwnd = max(cwnd, bbr_cwnd_min_target); + +done: + tp->snd_cwnd = min(cwnd, tp->snd_cwnd_clamp); /* apply global cap */ + if (bbr->mode == BBR_PROBE_RTT) /* drain queue, refresh min_rtt */ + tp->snd_cwnd = max(tp->snd_cwnd >> 1, bbr_cwnd_min_target); +} + +/* End cycle phase if it's time and/or we hit the phase's in-flight target. */ +static bool bbr_is_next_cycle_phase(struct sock *sk, + const struct rate_sample *rs) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + bool is_full_length = + skb_mstamp_us_delta(&tp->delivered_mstamp, &bbr->cycle_mstamp) > + bbr->min_rtt_us; + u32 inflight, bw; + + /* The pacing_gain of 1.0 paces at the estimated bw to try to fully + * use the pipe without increasing the queue. + */ + if (bbr->pacing_gain == BBR_UNIT) + return is_full_length; /* just use wall clock time */ + + inflight = rs->prior_in_flight; /* what was in-flight before ACK? */ + bw = bbr_max_bw(sk); + + /* A pacing_gain > 1.0 probes for bw by trying to raise inflight to at + * least pacing_gain*BDP; this may take more than min_rtt if min_rtt is + * small (e.g. on a LAN). We do not persist if packets are lost, since + * a path with small buffers may not hold that much. + */ + if (bbr->pacing_gain > BBR_UNIT) + return is_full_length && + (rs->losses || /* perhaps pacing_gain*BDP won't fit */ + inflight >= bbr_target_cwnd(sk, bw, bbr->pacing_gain)); + + /* A pacing_gain < 1.0 tries to drain extra queue we added if bw + * probing didn't find more bw. If inflight falls to match BDP then we + * estimate queue is drained; persisting would underutilize the pipe. + */ + return is_full_length || + inflight <= bbr_target_cwnd(sk, bw, BBR_UNIT); +} + +static void bbr_advance_cycle_phase(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + + bbr->cycle_idx = (bbr->cycle_idx + 1) & (CYCLE_LEN - 1); + bbr->cycle_mstamp = tp->delivered_mstamp; + bbr->pacing_gain = bbr_pacing_gain[bbr->cycle_idx]; +} + +/* Gain cycling: cycle pacing gain to converge to fair share of available bw. */ +static void bbr_update_cycle_phase(struct sock *sk, + const struct rate_sample *rs) +{ + struct bbr *bbr = inet_csk_ca(sk); + + if ((bbr->mode == BBR_PROBE_BW) && !bbr->lt_use_bw && + bbr_is_next_cycle_phase(sk, rs)) + bbr_advance_cycle_phase(sk); +} + +static void bbr_reset_startup_mode(struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + bbr->mode = BBR_STARTUP; + bbr->pacing_gain = bbr_high_gain; + bbr->cwnd_gain = bbr_high_gain; +} + +static void bbr_reset_probe_bw_mode(struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + bbr->mode = BBR_PROBE_BW; + bbr->pacing_gain = BBR_UNIT; + bbr->cwnd_gain = bbr_cwnd_gain; + bbr->cycle_idx = CYCLE_LEN - 1 - prandom_u32_max(bbr_cycle_rand); + bbr_advance_cycle_phase(sk); /* flip to next phase of gain cycle */ +} + +static void bbr_reset_mode(struct sock *sk) +{ + if (!bbr_full_bw_reached(sk)) + bbr_reset_startup_mode(sk); + else + bbr_reset_probe_bw_mode(sk); +} + +/* Start a new long-term sampling interval. */ +static void bbr_reset_lt_bw_sampling_interval(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + + bbr->lt_last_stamp = tp->delivered_mstamp.stamp_jiffies; + bbr->lt_last_delivered = tp->delivered; + bbr->lt_last_lost = tp->lost; + bbr->lt_rtt_cnt = 0; +} + +/* Completely reset long-term bandwidth sampling. */ +static void bbr_reset_lt_bw_sampling(struct sock *sk) +{ + struct bbr *bbr = inet_csk_ca(sk); + + bbr->lt_bw = 0; + bbr->lt_use_bw = 0; + bbr->lt_is_sampling = false; + bbr_reset_lt_bw_sampling_interval(sk); +} + +/* Long-term bw sampling interval is done. Estimate whether we're policed. */ +static void bbr_lt_bw_interval_done(struct sock *sk, u32 bw) +{ + struct bbr *bbr = inet_csk_ca(sk); + u32 diff; + + if (bbr->lt_bw) { /* do we have bw from a previous interval? */ + /* Is new bw close to the lt_bw from the previous interval? */ + diff = abs(bw - bbr->lt_bw); + if ((diff * BBR_UNIT <= bbr_lt_bw_ratio * bbr->lt_bw) || + (bbr_rate_bytes_per_sec(sk, diff, BBR_UNIT) <= + bbr_lt_bw_diff)) { + /* All criteria are met; estimate we're policed. */ + bbr->lt_bw = (bw + bbr->lt_bw) >> 1; /* avg 2 intvls */ + bbr->lt_use_bw = 1; + bbr->pacing_gain = BBR_UNIT; /* try to avoid drops */ + bbr->lt_rtt_cnt = 0; + return; + } + } + bbr->lt_bw = bw; + bbr_reset_lt_bw_sampling_interval(sk); +} + +/* Token-bucket traffic policers are common (see "An Internet-Wide Analysis of + * Traffic Policing", SIGCOMM 2016). BBR detects token-bucket policers and + * explicitly models their policed rate, to reduce unnecessary losses. We + * estimate that we're policed if we see 2 consecutive sampling intervals with + * consistent throughput and high packet loss. If we think we're being policed, + * set lt_bw to the "long-term" average delivery rate from those 2 intervals. + */ +static void bbr_lt_bw_sampling(struct sock *sk, const struct rate_sample *rs) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u32 lost, delivered; + u64 bw; + s32 t; + + if (bbr->lt_use_bw) { /* already using long-term rate, lt_bw? */ + if (bbr->mode == BBR_PROBE_BW && bbr->round_start && + ++bbr->lt_rtt_cnt >= bbr_lt_bw_max_rtts) { + bbr_reset_lt_bw_sampling(sk); /* stop using lt_bw */ + bbr_reset_probe_bw_mode(sk); /* restart gain cycling */ + } + return; + } + + /* Wait for the first loss before sampling, to let the policer exhaust + * its tokens and estimate the steady-state rate allowed by the policer. + * Starting samples earlier includes bursts that over-estimate the bw. + */ + if (!bbr->lt_is_sampling) { + if (!rs->losses) + return; + bbr_reset_lt_bw_sampling_interval(sk); + bbr->lt_is_sampling = true; + } + + /* To avoid underestimates, reset sampling if we run out of data. */ + if (rs->is_app_limited) { + bbr_reset_lt_bw_sampling(sk); + return; + } + + if (bbr->round_start) + bbr->lt_rtt_cnt++; /* count round trips in this interval */ + if (bbr->lt_rtt_cnt < bbr_lt_intvl_min_rtts) + return; /* sampling interval needs to be longer */ + if (bbr->lt_rtt_cnt > 4 * bbr_lt_intvl_min_rtts) { + bbr_reset_lt_bw_sampling(sk); /* interval is too long */ + return; + } + + /* End sampling interval when a packet is lost, so we estimate the + * policer tokens were exhausted. Stopping the sampling before the + * tokens are exhausted under-estimates the policed rate. + */ + if (!rs->losses) + return; + + /* Calculate packets lost and delivered in sampling interval. */ + lost = tp->lost - bbr->lt_last_lost; + delivered = tp->delivered - bbr->lt_last_delivered; + /* Is loss rate (lost/delivered) >= lt_loss_thresh? If not, wait. */ + if (!delivered || (lost << BBR_SCALE) < bbr_lt_loss_thresh * delivered) + return; + + /* Find average delivery rate in this sampling interval. */ + t = (s32)(tp->delivered_mstamp.stamp_jiffies - bbr->lt_last_stamp); + if (t < 1) + return; /* interval is less than one jiffy, so wait */ + t = jiffies_to_usecs(t); + /* Interval long enough for jiffies_to_usecs() to return a bogus 0? */ + if (t < 1) { + bbr_reset_lt_bw_sampling(sk); /* interval too long; reset */ + return; + } + bw = (u64)delivered * BW_UNIT; + do_div(bw, t); + bbr_lt_bw_interval_done(sk, bw); +} + +/* Estimate the bandwidth based on how fast packets are delivered */ +static void bbr_update_bw(struct sock *sk, const struct rate_sample *rs) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u64 bw; + + bbr->round_start = 0; + if (rs->delivered < 0 || rs->interval_us <= 0) + return; /* Not a valid observation */ + + /* See if we've reached the next RTT */ + if (!before(rs->prior_delivered, bbr->next_rtt_delivered)) { + bbr->next_rtt_delivered = tp->delivered; + bbr->rtt_cnt++; + bbr->round_start = 1; + bbr->packet_conservation = 0; + } + + bbr_lt_bw_sampling(sk, rs); + + /* Divide delivered by the interval to find a (lower bound) bottleneck + * bandwidth sample. Delivered is in packets and interval_us in uS and + * ratio will be <<1 for most connections. So delivered is first scaled. + */ + bw = (u64)rs->delivered * BW_UNIT; + do_div(bw, rs->interval_us); + + /* If this sample is application-limited, it is likely to have a very + * low delivered count that represents application behavior rather than + * the available network rate. Such a sample could drag down estimated + * bw, causing needless slow-down. Thus, to continue to send at the + * last measured network rate, we filter out app-limited samples unless + * they describe the path bw at least as well as our bw model. + * + * So the goal during app-limited phase is to proceed with the best + * network rate no matter how long. We automatically leave this + * phase when app writes faster than the network can deliver :) + */ + if (!rs->is_app_limited || bw >= bbr_max_bw(sk)) { + /* Incorporate new sample into our max bw filter. */ + minmax_running_max(&bbr->bw, bbr_bw_rtts, bbr->rtt_cnt, bw); + } +} + +/* Estimate when the pipe is full, using the change in delivery rate: BBR + * estimates that STARTUP filled the pipe if the estimated bw hasn't changed by + * at least bbr_full_bw_thresh (25%) after bbr_full_bw_cnt (3) non-app-limited + * rounds. Why 3 rounds: 1: rwin autotuning grows the rwin, 2: we fill the + * higher rwin, 3: we get higher delivery rate samples. Or transient + * cross-traffic or radio noise can go away. CUBIC Hystart shares a similar + * design goal, but uses delay and inter-ACK spacing instead of bandwidth. + */ +static void bbr_check_full_bw_reached(struct sock *sk, + const struct rate_sample *rs) +{ + struct bbr *bbr = inet_csk_ca(sk); + u32 bw_thresh; + + if (bbr_full_bw_reached(sk) || !bbr->round_start || rs->is_app_limited) + return; + + bw_thresh = (u64)bbr->full_bw * bbr_full_bw_thresh >> BBR_SCALE; + if (bbr_max_bw(sk) >= bw_thresh) { + bbr->full_bw = bbr_max_bw(sk); + bbr->full_bw_cnt = 0; + return; + } + ++bbr->full_bw_cnt; +} + +/* If pipe is probably full, drain the queue and then enter steady-state. */ +static void bbr_check_drain(struct sock *sk, const struct rate_sample *rs) +{ + struct bbr *bbr = inet_csk_ca(sk); + + if (bbr->mode == BBR_STARTUP && bbr_full_bw_reached(sk)) { + bbr->mode = BBR_DRAIN; /* drain queue we created */ + bbr->pacing_gain = bbr_drain_gain; /* pace slow to drain */ + bbr->cwnd_gain = bbr_high_gain; /* maintain cwnd */ + } /* fall through to check if in-flight is already small: */ + if (bbr->mode == BBR_DRAIN && + tcp_packets_in_flight(tcp_sk(sk)) <= + bbr_target_cwnd(sk, bbr_max_bw(sk), BBR_UNIT)) + bbr_reset_probe_bw_mode(sk); /* we estimate queue is drained */ +} + +/* The goal of PROBE_RTT mode is to have BBR flows cooperatively and + * periodically drain the bottleneck queue, to converge to measure the true + * min_rtt (unloaded propagation delay). This allows the flows to keep queues + * small (reducing queuing delay and packet loss) and achieve fairness among + * BBR flows. + * + * The min_rtt filter window is 10 seconds. When the min_rtt estimate expires, + * we enter PROBE_RTT mode and cap the cwnd at bbr_cwnd_min_target=4 packets. + * After at least bbr_probe_rtt_mode_ms=200ms and at least one packet-timed + * round trip elapsed with that flight size <= 4, we leave PROBE_RTT mode and + * re-enter the previous mode. BBR uses 200ms to approximately bound the + * performance penalty of PROBE_RTT's cwnd capping to roughly 2% (200ms/10s). + * + * Note that flows need only pay 2% if they are busy sending over the last 10 + * seconds. Interactive applications (e.g., Web, RPCs, video chunks) often have + * natural silences or low-rate periods within 10 seconds where the rate is low + * enough for long enough to drain its queue in the bottleneck. We pick up + * these min RTT measurements opportunistically with our min_rtt filter. :-) + */ +static void bbr_update_min_rtt(struct sock *sk, const struct rate_sample *rs) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); +//deprecated u32 rtt_prior = 0; + bool filter_expired; + + /* Track min RTT seen in the min_rtt_win_sec filter window: */ + filter_expired = after(tcp_time_stamp, + bbr->min_rtt_stamp + bbr_min_rtt_win_sec * HZ); + if (rs->rtt_us >= 0 && + (rs->rtt_us <= bbr->min_rtt_us || filter_expired)) { + bbr->min_rtt_us = rs->rtt_us; + bbr->min_rtt_stamp = tcp_time_stamp; +//deprecated bbr->rtt_us = rs->rtt_us; + } +//deprecated bbr->rtt_us = rs->rtt_us; +//deprecated rtt_prior = minmax_get(&bbr->max_rtt); +//deprecated bbr->rtt_us = min(bbr->rtt_us, rtt_prior); + +//deprecated minmax_running_max(&bbr->max_rtt, bbr_bw_rtts, bbr->rtt_cnt, rs->rtt_us); + + if (bbr_probe_rtt_mode_ms > 0 && filter_expired && + !bbr->idle_restart && bbr->mode != BBR_PROBE_RTT) { + bbr->mode = BBR_PROBE_RTT; /* dip, drain queue */ + bbr->pacing_gain = BBR_UNIT; + bbr->cwnd_gain = BBR_UNIT; + bbr_save_cwnd(sk); /* note cwnd so we can restore it */ + bbr->probe_rtt_done_stamp = 0; + } + + if (bbr->mode == BBR_PROBE_RTT) { + /* Ignore low rate samples during this mode. */ + tp->app_limited = + (tp->delivered + tcp_packets_in_flight(tp)) ? : 1; + /* Maintain min packets in flight for max(200 ms, 1 round). */ + if (!bbr->probe_rtt_done_stamp && + tcp_packets_in_flight(tp) <= bbr_cwnd_min_target) { + bbr->probe_rtt_done_stamp = tcp_time_stamp + + msecs_to_jiffies(bbr_probe_rtt_mode_ms >> 1); + bbr->probe_rtt_round_done = 0; + bbr->next_rtt_delivered = tp->delivered; + } else if (bbr->probe_rtt_done_stamp) { + if (bbr->round_start) + bbr->probe_rtt_round_done = 1; + if (bbr->probe_rtt_round_done && + after(tcp_time_stamp, bbr->probe_rtt_done_stamp)) { + bbr->min_rtt_stamp = tcp_time_stamp; + bbr->restore_cwnd = 1; /* snap to prior_cwnd */ + bbr_reset_mode(sk); + } + } + } + bbr->idle_restart = 0; +} + +static void bbr_update_model(struct sock *sk, const struct rate_sample *rs) +{ + bbr_update_bw(sk, rs); + bbr_update_cycle_phase(sk, rs); + bbr_check_full_bw_reached(sk, rs); + bbr_check_drain(sk, rs); + bbr_update_min_rtt(sk, rs); +} + +static void bbr_main(struct sock *sk, const struct rate_sample *rs) +{ + struct bbr *bbr = inet_csk_ca(sk); + u32 bw; + + bbr_update_model(sk, rs); + + bw = bbr_bw(sk); + bbr_set_pacing_rate(sk, bw, bbr->pacing_gain); + bbr_set_tso_segs_goal(sk); + bbr_set_cwnd(sk, rs, rs->acked_sacked, bw, bbr->cwnd_gain); +} + +static void bbr_init(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u64 bw; + + bbr->prior_cwnd = 0; + bbr->tso_segs_goal = 0; /* default segs per skb until first ACK */ + bbr->rtt_cnt = 0; + bbr->next_rtt_delivered = 0; + bbr->prev_ca_state = TCP_CA_Open; + bbr->packet_conservation = 0; + + bbr->probe_rtt_done_stamp = 0; + bbr->probe_rtt_round_done = 0; + bbr->min_rtt_us = tcp_min_rtt(tp); + bbr->min_rtt_stamp = tcp_time_stamp; + + minmax_reset(&bbr->bw, bbr->rtt_cnt, 0); /* init max bw to 0 */ + + /* Initialize pacing rate to: high_gain * init_cwnd / RTT. */ + bw = (u64)tp->snd_cwnd * BW_UNIT; + do_div(bw, (tp->srtt_us >> 3) ? : USEC_PER_MSEC); + sk->sk_pacing_rate = 0; /* force an update of sk_pacing_rate */ + bbr_set_pacing_rate(sk, bw, bbr_high_gain); + + bbr->restore_cwnd = 0; + bbr->round_start = 0; + bbr->idle_restart = 0; + bbr->full_bw = 0; + bbr->full_bw_cnt = 0; + bbr->cycle_mstamp.v64 = 0; + bbr->cycle_idx = 0; + bbr_reset_lt_bw_sampling(sk); + bbr_reset_startup_mode(sk); +} + +static u32 bbr_sndbuf_expand(struct sock *sk) +{ + /* Provision 3 * cwnd since BBR may slow-start even during recovery. */ + return 3; +} + +/* In theory BBR does not need to undo the cwnd since it does not + * always reduce cwnd on losses (see bbr_main()). Keep it for now. + */ +static u32 bbr_undo_cwnd(struct sock *sk) +{ + return tcp_sk(sk)->snd_cwnd; +} + +/* Entering loss recovery, so save cwnd for when we exit or undo recovery. */ +static u32 bbr_ssthresh(struct sock *sk) +{ + bbr_save_cwnd(sk); + return TCP_INFINITE_SSTHRESH; /* BBR does not use ssthresh */ +} + +static size_t bbr_get_info(struct sock *sk, u32 ext, int *attr, + union tcp_cc_info *info) +{ + if (ext & (1 << (INET_DIAG_BBRINFO - 1)) || + ext & (1 << (INET_DIAG_VEGASINFO - 1))) { + struct tcp_sock *tp = tcp_sk(sk); + struct bbr *bbr = inet_csk_ca(sk); + u64 bw = bbr_bw(sk); + + bw = bw * tp->mss_cache * USEC_PER_SEC >> BW_SCALE; + memset(&info->bbr, 0, sizeof(info->bbr)); + info->bbr.bbr_bw_lo = (u32)bw; + info->bbr.bbr_bw_hi = (u32)(bw >> 32); + info->bbr.bbr_min_rtt = bbr->min_rtt_us; + info->bbr.bbr_pacing_gain = bbr->pacing_gain; + info->bbr.bbr_cwnd_gain = bbr->cwnd_gain; + *attr = INET_DIAG_BBRINFO; + return sizeof(info->bbr); + } + return 0; +} + +static void bbr_set_state(struct sock *sk, u8 new_state) +{ + struct bbr *bbr = inet_csk_ca(sk); + + if (new_state == TCP_CA_Loss) { + struct rate_sample rs = { .losses = 1 }; + + bbr->prev_ca_state = TCP_CA_Loss; + bbr->full_bw = 0; + bbr->round_start = 1; /* treat RTO like end of a round */ + bbr_lt_bw_sampling(sk, &rs); + } +} + +static struct tcp_congestion_ops tcp_bbr_cong_ops __read_mostly = { + .flags = TCP_CONG_NON_RESTRICTED, + .name = "tsunami", + .owner = THIS_MODULE, + .init = bbr_init, + .cong_control = bbr_main, + .sndbuf_expand = bbr_sndbuf_expand, + .undo_cwnd = bbr_undo_cwnd, + .cwnd_event = bbr_cwnd_event, + .ssthresh = bbr_ssthresh, + .tso_segs_goal = bbr_tso_segs_goal, + .get_info = bbr_get_info, + .set_state = bbr_set_state, +}; + +static int __init bbr_register(void) +{ + BUILD_BUG_ON(sizeof(struct bbr) > ICSK_CA_PRIV_SIZE); + return tcp_register_congestion_control(&tcp_bbr_cong_ops); +} + +static void __exit bbr_unregister(void) +{ + tcp_unregister_congestion_control(&tcp_bbr_cong_ops); +} + +module_init(bbr_register); +module_exit(bbr_unregister); + +MODULE_AUTHOR("Van Jacobson "); +MODULE_AUTHOR("Neal Cardwell "); +MODULE_AUTHOR("Yuchung Cheng "); +MODULE_AUTHOR("Soheil Hassas Yeganeh "); +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_DESCRIPTION("TCP BBR (Bottleneck Bandwidth and RTT)"); \ No newline at end of file diff --git a/package/ctcgfw/cups-bjnp/Makefile b/package/ctcgfw/cups-bjnp/Makefile new file mode 100644 index 0000000000..0c8a592b4b --- /dev/null +++ b/package/ctcgfw/cups-bjnp/Makefile @@ -0,0 +1,48 @@ +# +# Copyright (C) 2010 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=cups-bjnp +PKG_VERSION:=2.0 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=@SF/cups-bjnp +PKG_MD5SUM:=8a337091b65abfdd70191129efefb9b3 + +PKG_BUILD_DEPENDS:=cups + +include $(INCLUDE_DIR)/package.mk + +define Package/cups-bjnp + SECTION:=net + CATEGORY:=Network + TITLE:=BJNP protocol backend for CUPS + URL:=http://sourceforge.net/projects/cups-bjnp/ + DEPENDS:=cups + SUBMENU:=Printing +endef + +define Package/cups-bjnp/description +CUPS backend for the canon printers using the proprietary USB over +IP BJNP protocol. This backend allows Cups to print over the network +to a Canon printer. It currently supports Cups 1.2 and Cups 1.3 and +is designed by reverse engineering. +endef + +CONFIGURE_ARGS += --with-cupsbackenddir=$(STAGING_DIR)/usr/include/cups + +TARGET_CFLAGS+=-Wl,-rpath-link=$(STAGING_DIR)/usr/lib + +define Package/cups-bjnp/install + $(INSTALL_DIR) $(1)/usr/lib/cups/backend + $(INSTALL_BIN) $(PKG_BUILD_DIR)/bjnp $(1)/usr/lib/cups/backend +endef + + +$(eval $(call BuildPackage,cups-bjnp)) diff --git a/package/ctcgfw/cups/Makefile b/package/ctcgfw/cups/Makefile new file mode 100644 index 0000000000..62df2e608e --- /dev/null +++ b/package/ctcgfw/cups/Makefile @@ -0,0 +1,321 @@ +# +# Copyright (C) 2006-2016 OpenWrt.org +# Copyright (C) 2016 lede-project.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=cups +PKG_VERSION:=2.1.4 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-source.tar.gz +PKG_SOURCE_URL:=http://www.cups.org/software/$(PKG_VERSION) +PKG_MD5SUM:=9f9bf6e3b9c20a3519b4dc409666d6e7 + +TARGET_LDFLAGS+=-Wl,-rpath-link=$(STAGING_DIR)/usr/lib + +include $(INCLUDE_DIR)/package.mk + +define Package/cups/Default + URL:=http://www.cups.org/ + SUBMENU:=Printing +endef + +define Package/cups +$(call Package/cups/Default) + SECTION:=net + CATEGORY:=Network + DEPENDS:=+libcups +libcupsmime +libcupscgi +libcupsppdc +libusb-1.0 + TITLE:=Common UNIX Printing System (daemon) +endef + +define Package/cups/description + Common UNIX Printing System (daemon) +endef + +define Package/cups/conffiles +/etc/cups/classes.conf +/etc/cups/cupsd.conf +/etc/cups/printers.conf +endef + +define Package/cups-bsd +$(call Package/cups/Default) + SECTION:=net + CATEGORY:=Network + DEPENDS:=+libcups + TITLE:=Common UNIX Printing System - BSD commands (old) +endef + +define Package/cups-bsd/description + Common UNIX Printing System - BSD commands (old) +endef + +define Package/cups-client +$(call Package/cups/Default) + SECTION:=net + CATEGORY:=Network + DEPENDS:=+libcups +libcupsimage +libcupsmime + TITLE:=Common UNIX Printing System - Client commands +endef + +define Package/cups-client/conffiles +/etc/cups/client.conf +endef + +define Package/cups-client/description + Common UNIX Printing System - Client commands +endef + +define Package/cups-filters +$(call Package/cups/Default) + SECTION:=net + CATEGORY:=Network + DEPENDS:=+libcupsimage + TITLE:=Common UNIX Printing System - Filter +endef + +define Package/cups-filters/description + Common UNIX Printing System - Filter +endef + +define Package/cups-ppdc +$(call Package/cups/Default) + SECTION:=net + CATEGORY:=Network + DEPENDS:=+libcupsppdc + TITLE:=Common UNIX Printing System - PPDC utils +endef + +define Package/cups-ppdc/description + Common UNIX Printing System - PPDC utils +endef + +define Package/libcups +$(call Package/cups/Default) + SECTION:=libs + CATEGORY:=Libraries + DEPENDS:=+zlib +libpthread +libpng +libjpeg + TITLE:=Common UNIX Printing System - Core library +endef + +define Package/libcups/description + Common UNIX Printing System - Core library +endef + +define Package/libcupscgi +$(call Package/cups/Default) + SECTION:=libs + CATEGORY:=Libraries + DEPENDS:=+libcups + TITLE:=Common UNIX Printing System - CGI library +endef + +define Package/libcupscgi/description + Common UNIX Printing System - CGI library +endef + +define Package/libcupsimage +$(call Package/cups/Default) + SECTION:=libs + CATEGORY:=Libraries + DEPENDS:=+libcups + TITLE:=Common UNIX Printing System - Image library +endef + +define Package/libcupsimage/description + Common UNIX Printing System - Image library +endef + +define Package/libcupsmime +$(call Package/cups/Default) + SECTION:=libs + CATEGORY:=Libraries + DEPENDS:=+libcups + TITLE:=Common UNIX Printing System - MIME library +endef + +define Package/libcupsmime/description + Common UNIX Printing System - MIME library +endef + +define Package/libcupsppdc +$(call Package/cups/Default) + SECTION:=libs + CATEGORY:=Libraries + DEPENDS:=+libcups +libstdcpp + TITLE:=Common UNIX Printing System - PPDC library +endef + +define Package/libcupsppdc/description + Common UNIX Printing System - PPDC library +endef + +define Build/Configure + $(call Build/Configure/Default, \ + --with-cups-user="nobody" \ + --with-cups-group="nogroup" \ + --with-system-groups="root" \ + --with-pdftops="none" \ + --without-perl \ + --without-python \ + --without-php \ + --enable-default-shared \ + --enable-shared \ + --enable-image \ + --enable-libusb \ + --disable-acl \ + --disable-dnssd \ + --disable-dbus \ + --disable-avahi \ + --disable-launchd \ + --disable-ldap \ + --disable-pam \ + --disable-slp \ + --disable-gnutls \ + --disable-openssl \ + --disable-cdsassl \ + --disable-ssl \ + --disable-gssapi \ + --disable-tiff, \ + UNAME="Linux" \ + LIBS="$(TARGET_LDFLAGS) -lz -lpng -ljpeg" \ + ) +endef + +define Build/Compile + $(MAKE) -C $(PKG_BUILD_DIR) \ + $(TARGET_CONFIGURE_OPTS) \ + DSTROOT="$(PKG_INSTALL_DIR)" \ + STRIP="/bin/true" \ + all install +endef + +define Package/cups/install + rm -rf $(1)/etc/cups + $(INSTALL_DIR) $(1)/etc/cups + $(CP) $(PKG_INSTALL_DIR)/etc/cups/* $(1)/etc/cups/ + rm -rf $(1)/etc/cups/certs + ln -sf /tmp $(1)/etc/cups/certs + rm -f $(1)/usr/bin/cups-config + $(INSTALL_DIR) $(1)/usr/lib/cups + $(CP) $(PKG_INSTALL_DIR)/usr/lib/cups/backend $(1)/usr/lib/cups + $(CP) $(PKG_INSTALL_DIR)/usr/lib/cups/cgi-bin $(1)/usr/lib/cups + $(CP) $(PKG_INSTALL_DIR)/usr/lib/cups/daemon $(1)/usr/lib/cups + $(CP) $(PKG_INSTALL_DIR)/usr/lib/cups/driver $(1)/usr/lib/cups + $(CP) $(PKG_INSTALL_DIR)/usr/lib/cups/monitor $(1)/usr/lib/cups + $(INSTALL_DIR) $(1)/usr/lib/cups/filter + $(CP) $(PKG_INSTALL_DIR)/usr/lib/cups/filter/{commandtops,pstops} \ + $(PKG_INSTALL_DIR)/usr/lib/cups/filter/gziptoany \ + $(1)/usr/lib/cups/filter + $(INSTALL_DIR) $(1)/usr/share/cups/templates + $(CP) $(PKG_INSTALL_DIR)/usr/share/cups/templates/*.tmpl \ + $(1)/usr/share/cups/templates/ + $(INSTALL_DIR) $(1)/usr/share/cups/mime + $(CP) $(PKG_INSTALL_DIR)/usr/share/cups/mime/* $(1)/usr/share/cups/mime/ + ### Do install docs: cups web interface relies on them + $(INSTALL_DIR) $(1)/usr/share/doc/cups + $(CP) $(PKG_INSTALL_DIR)/usr/share/doc/cups/*.*html \ + $(1)/usr/share/doc/cups/ + $(CP) $(PKG_INSTALL_DIR)/usr/share/doc/cups/*.css \ + $(1)/usr/share/doc/cups/ + $(CP) $(PKG_INSTALL_DIR)/usr/share/doc/cups/*.txt \ + $(1)/usr/share/doc/cups/ + $(CP) $(PKG_INSTALL_DIR)/usr/share/doc/cups/images \ + $(1)/usr/share/doc/cups/ + $(INSTALL_DIR) $(1)/usr/sbin + # overwrite default config with our own + $(CP) ./files/etc/cups/* $(1)/etc/cups/ + # install initscript with priority 60 + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/cupsd.init $(1)/etc/init.d/cupsd + $(INSTALL_BIN) \ + $(PKG_INSTALL_DIR)/usr/sbin/{cupsctl,cupsd} \ + $(1)/usr/sbin/ + # needed for cups to find usb printers per http://wiki.openwrt.org/doc/howto/cups.server + chmod 700 $(1)/usr/lib/cups/backend/usb +endef + +define Package/cups-bsd/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{lprm,lpq,lpr} $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/lpc $(1)/usr/sbin/ +endef + +define Package/cups-client/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) \ + $(PKG_INSTALL_DIR)/usr/bin/{lp,cancel,cupstestppd,cupstestdsc} \ + $(PKG_INSTALL_DIR)/usr/bin/{ipptool,lpoptions,lpstat} \ + $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) \ + $(PKG_INSTALL_DIR)/usr/sbin/{cupsaccept,cupsaddsmb,cupsfilter} \ + $(PKG_INSTALL_DIR)/usr/sbin/{lpadmin,lpinfo,lpmove} \ + $(1)/usr/sbin/ + (cd $(1)/usr/sbin; ln -sf cupsaccept accept; ln -sf cupsaccept cupsenable; ln -sf cupsaccept cupsdisable; ln -sf cupsaccept reject; ln -sf cupsaccept cupsreject;) +endef + +define Package/cups-filters/install + $(INSTALL_DIR) $(1)/usr/lib/cups/filter + $(CP) $(PKG_INSTALL_DIR)/usr/lib/cups/filter/{commandtops,gziptoany,pstops,rastertoepson,rastertohp,rastertolabel,rastertopwg} \ + $(1)/usr/lib/cups/filter + (cd $(1)/usr/lib/cups/filter; ln -sf rastertolabel rastertodymo;) +endef + +define Package/cups-ppdc/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) \ + $(PKG_INSTALL_DIR)/usr/bin/{ppdc,ppdhtml,ppdi,ppdmerge,ppdpo} \ + $(1)/usr/bin/ +endef + +define Package/libcups/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcups.so* $(1)/usr/lib/ +endef + +define Package/libcupscgi/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcupscgi.so* $(1)/usr/lib/ +endef + +define Package/libcupsimage/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcupsimage.so* $(1)/usr/lib/ +endef + +define Package/libcupsmime/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcupsmime.so* $(1)/usr/lib/ +endef + +define Package/libcupsppdc/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcupsppdc.so* $(1)/usr/lib/ +endef + +define Build/InstallDev + $(INSTALL_DIR) $(2)/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/cups-config $(2)/bin/ + $(INSTALL_DIR) $(1)/usr/include + $(CP) $(PKG_INSTALL_DIR)/usr/include/cups $(1)/usr/include/ + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcups*.so* $(1)/usr/lib/ +endef + +$(eval $(call BuildPackage,cups)) +$(eval $(call BuildPackage,libcups)) +$(eval $(call BuildPackage,libcupscgi)) +$(eval $(call BuildPackage,libcupsimage)) +$(eval $(call BuildPackage,libcupsmime)) +$(eval $(call BuildPackage,libcupsppdc)) +$(eval $(call BuildPackage,cups-bsd)) +$(eval $(call BuildPackage,cups-client)) +$(eval $(call BuildPackage,cups-filters)) +$(eval $(call BuildPackage,cups-ppdc)) diff --git a/package/ctcgfw/cups/files/cupsd.init b/package/ctcgfw/cups/files/cupsd.init new file mode 100755 index 0000000000..e5f00da9a4 --- /dev/null +++ b/package/ctcgfw/cups/files/cupsd.init @@ -0,0 +1,19 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2006-2011 OpenWrt.org + +START=50 + +start() { + mkdir -m 0755 -p /var/cache/cups + mkdir -m 0755 -p /var/cups + mkdir -m 0755 -p /var/spool/cups/tmp + service_start /usr/sbin/cupsd +} + +stop() { + service_stop /usr/sbin/cupsd +} + +reload() { + service_reload /usr/sbin/cupsd +} diff --git a/package/ctcgfw/cups/files/etc/cups/classes.conf b/package/ctcgfw/cups/files/etc/cups/classes.conf new file mode 100644 index 0000000000..15afda75a2 --- /dev/null +++ b/package/ctcgfw/cups/files/etc/cups/classes.conf @@ -0,0 +1,7 @@ +######################################################################## +# # +# This is a sample class configuration file. This file is included # +# from the main configuration file (cups.conf) and lists all of the # +# printer classes known to the system. # +# # +######################################################################## diff --git a/package/ctcgfw/cups/files/etc/cups/client.conf b/package/ctcgfw/cups/files/etc/cups/client.conf new file mode 100644 index 0000000000..c8d9f910ed --- /dev/null +++ b/package/ctcgfw/cups/files/etc/cups/client.conf @@ -0,0 +1,9 @@ +######################################################################## +# # +# This is the CUPS client configuration file. This file is used to # +# define client-specific parameters, such as the default server or # +# default encryption settings. # +# # +######################################################################## + +Encryption Never diff --git a/package/ctcgfw/cups/files/etc/cups/cupsd.conf b/package/ctcgfw/cups/files/etc/cups/cupsd.conf new file mode 100644 index 0000000000..48c4188386 --- /dev/null +++ b/package/ctcgfw/cups/files/etc/cups/cupsd.conf @@ -0,0 +1,58 @@ +######################################################################## +# # +# This is the CUPS configuration file. If you are familiar with # +# Apache or any of the other popular web servers, we've followed the # +# same format. Any configuration variable used here has the same # +# semantics as the corresponding variable in Apache. If we need # +# different functionality then a different name is used to avoid # +# confusion... # +# # +######################################################################## + + +AccessLog syslog +ErrorLog syslog +LogLevel info +PageLog syslog +PreserveJobHistory No +PreserveJobFiles No +AutoPurgeJobs Yes +MaxJobs 25 +MaxPrinterHistory 10 +#Printcap /etc/printcap +#PrintcapFormat BSD +RequestRoot /var/cups +#RemoteRoot remroot +#User nobody +#Group nogroup +# root permissions required to make cups work with the usb backend +User root +Group root +RIPCache auto +TempDir /var/cups +Port 631 +HostNameLookups On +KeepAlive On +# No: "BrowseOrder" "BrowseAllow" "BrowseRemoteProtocols" +Browsing Yes +BrowsingWebIF Yes +BrowseLocalProtocols DNSSD +DefaultShared Yes +WebInterface no +Listen /var/run/cups/cups.sock + +ServerAlias * + + +Order Allow,Deny +Allow From 127.0.0.1 +Allow From 192.168.1.0/24 + + + +AuthType Basic +AuthClass System +Order Allow,Deny +Allow From 127.0.0.1 +Allow From 192.168.1.0/24 + diff --git a/package/ctcgfw/cups/files/etc/cups/printers.conf b/package/ctcgfw/cups/files/etc/cups/printers.conf new file mode 100644 index 0000000000..88bba1b133 --- /dev/null +++ b/package/ctcgfw/cups/files/etc/cups/printers.conf @@ -0,0 +1,23 @@ + +Info USB Printer +Location +DeviceURI usb:/dev/usb/lp0 +State Idle +Accepting Yes +JobSheets none none +QuotaPeriod 0 +PageLimit 0 +KLimit 0 + + + +Info Parallel Port Printer +Location +DeviceURI parallel:/dev/printers/0 +State Idle +Accepting Yes +JobSheets none none +QuotaPeriod 0 +PageLimit 0 +KLimit 0 + diff --git a/package/ctcgfw/cups/patches/100-target.patch b/package/ctcgfw/cups/patches/100-target.patch new file mode 100644 index 0000000000..571cce1a69 --- /dev/null +++ b/package/ctcgfw/cups/patches/100-target.patch @@ -0,0 +1,11 @@ +--- a/configure ++++ b/configure +@@ -5896,7 +5896,7 @@ fi + + case "$COMPONENTS" in + all) +- BUILDDIRS="filter backend berkeley cgi-bin monitor notifier ppdc scheduler systemv conf data desktop locale man doc examples templates" ++ BUILDDIRS="filter backend berkeley cgi-bin monitor ppdc scheduler systemv conf data desktop locale doc examples templates" + ;; + + core) diff --git a/package/ctcgfw/cups/patches/140-uname.patch b/package/ctcgfw/cups/patches/140-uname.patch new file mode 100644 index 0000000000..3261de6187 --- /dev/null +++ b/package/ctcgfw/cups/patches/140-uname.patch @@ -0,0 +1,11 @@ +--- a/configure ++++ b/configure +@@ -1966,7 +1966,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +-uname=`uname` ++uname=${UNAME:-`uname`} + uversion=`uname -r | sed -e '1,$s/^[^0-9]*\([0-9]*\)\.\([0-9]*\).*/\1\2/'` + uarch=`uname -m` + diff --git a/package/ctcgfw/cups/patches/150-64bit_host_fix.patch b/package/ctcgfw/cups/patches/150-64bit_host_fix.patch new file mode 100644 index 0000000000..db46c44268 --- /dev/null +++ b/package/ctcgfw/cups/patches/150-64bit_host_fix.patch @@ -0,0 +1,33 @@ +--- a/config-scripts/cups-directories.m4 ++++ b/config-scripts/cups-directories.m4 +@@ -104,7 +104,7 @@ if test "$libdir" = "\${exec_prefix}/lib + case "$uname" in + Linux*) + if test -d /usr/lib64 -a ! -d /usr/lib64/fakeroot; then +- libdir="$exec_prefix/lib64" ++ libdir="$exec_prefix/lib" + fi + ;; + esac +--- a/configure ++++ b/configure +@@ -5998,7 +5998,7 @@ if test "$libdir" = "\${exec_prefix}/lib + case "$uname" in + Linux*) + if test -d /usr/lib64 -a ! -d /usr/lib64/fakeroot; then +- libdir="$exec_prefix/lib64" ++ libdir="$exec_prefix/lib" + fi + ;; + esac +--- a/cups-config.in ++++ b/cups-config.in +@@ -50,7 +50,7 @@ else + CFLAGS="$CFLAGS -I$includedir" + fi + +- if test $libdir != /usr/lib -a $libdir != /usr/lib32 -a $libdir != /usr/lib64; then ++ if test $libdir != /usr/lib -a $libdir != /usr/lib -a $libdir != /usr/lib; then + LDFLAGS="$LDFLAGS -L$libdir" + fi + fi diff --git a/package/ctcgfw/cups/patches/160-ppdc.patch b/package/ctcgfw/cups/patches/160-ppdc.patch new file mode 100644 index 0000000000..b92780a10b --- /dev/null +++ b/package/ctcgfw/cups/patches/160-ppdc.patch @@ -0,0 +1,17 @@ +--- a/ppdc/Makefile ++++ b/ppdc/Makefile +@@ -238,13 +238,7 @@ framedhelp: + + genstrings: genstrings.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) \ + sample.drv ../data/media.defs +- echo Linking $@... +- $(CXX) $(ARCHFLAGS) $(LDFLAGS) -o genstrings genstrings.o \ +- libcupsppdc.a ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) \ +- $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) +- echo Generating localization strings... +- ./genstrings >sample.c +- ++ echo Not Linking $@... + + # + # ppdc, the PPD compiler. diff --git a/package/ctcgfw/filebrowser/Makefile b/package/ctcgfw/filebrowser/Makefile new file mode 100644 index 0000000000..a4d4723dce --- /dev/null +++ b/package/ctcgfw/filebrowser/Makefile @@ -0,0 +1,77 @@ +# +# Copyright (C) 2014-2018 OpenWrt-dist +# Copyright (C) 2019 [CTCGFW] Project OpenWRT +# +# This is free software, licensed under the GNU General Public License v3. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=filebrowser +PKG_VERSION:=snapshot +PKG_RELEASE:=6ce44f7 + +PKG_LICENSE:=GPLv3 +PKG_MAINTAINER:=[CTCGFW] Project OpenWRT + +ifeq ($(ARCH),x86_64) + PKG_ARCH_filebrowser:=linux_amd64 +endif +ifeq ($(ARCH),i386) + PKG_ARCH_filebrowser:=linux_386 +endif +ifeq ($(ARCH),mipsel) + PKG_ARCH_filebrowser:=linux_mipsle +endif +ifeq ($(ARCH),mips) + PKG_ARCH_filebrowser:=linux_mips +endif +ifeq ($(ARCH),arm) +ifeq ($(BOARD),kirkwood) + PKG_ARCH_filebrowser:=linux_arm5 +else ifeq ($(BOARD),bcm53xx) + PKG_ARCH_filebrowser:=linux_arm5 +else + PKG_ARCH_filebrowser:=linux_arm7 +endif +endif +ifeq ($(ARCH),aarch64) + PKG_ARCH_filebrowser:=linux_arm64 +endif + +PKG_SOURCE:=filebrowser_$(PKG_ARCH_filebrowser).tar.gz +PKG_SOURCE_URL:=https://package.project-openwrt.eu.org/utils/filebrowser/$(PKG_RELEASE)/ +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE) +PKG_HASH:=skip + +include $(INCLUDE_DIR)/package.mk + +define Package/$(PKG_NAME) + SECTION:=utils + CATEGORY:=Utilities + TITLE:=OpenWrt Support for FileBrowser. + URL:=https://github.com/filebrowser/filebrowser +endef + +define Package/$(PKG_NAME)/description +OpenWrt Support for FileBrowser. +endef + +define Build/Prepare + tar -xzf $(DL_DIR)/$(PKG_SOURCE) -C $(PKG_BUILD_DIR) +endef + +define Build/Configure +endef + +define Build/Compile + chmod 0755 $(PKG_BUILD_DIR)/filebrowser +endef + +define Package/$(PKG_NAME)/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/filebrowser $(1)/usr/bin/filebrowser +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/package/ctcgfw/iptvhelper/Makefile b/package/ctcgfw/iptvhelper/Makefile new file mode 100644 index 0000000000..7ecad4eedd --- /dev/null +++ b/package/ctcgfw/iptvhelper/Makefile @@ -0,0 +1,50 @@ +# Copyright 2019 Shun Li +# Licensed to the public under the GNU General Public License v3. + +include $(TOPDIR)/rules.mk + +PKG_NAME:=iptvhelper +PKG_VERSION:=0.1.1 +PKG_RELEASE:=1 +PKG_MAINTAINER:=Shun Li +PKG_LICENSE:=GPL-3.0 + +include $(INCLUDE_DIR)/package.mk + +define Package/iptvhelper + SECTION:=net + CATEGORY:=Network + SUBMENU:=Routing and Redirection + DEPENDS:= \ + +ipset \ + +iptables + TITLE:=Scripts for configure IPTV easily + MAINTAINER:=Shun Li + PKGARCH:=all +endef + +define Package/iptvhelper/description +Scripts for configure IPTV easily +endef + +define Package/iptvhelper/conffiles +/etc/config/iptvhelper +/etc/firewall.iptvhelper +endef + +define Build/Compile +endef + +define Package/iptvhelper/postinst +#!/bin/sh +endef + +define Package/iptvhelper/postrm +#!/bin/sh +endef + +define Package/iptvhelper/install +$(CP) ./files/* $(1) +endef + +$(eval $(call BuildPackage,iptvhelper)) \ No newline at end of file diff --git a/package/ctcgfw/iptvhelper/files/etc/config/iptvhelper b/package/ctcgfw/iptvhelper/files/etc/config/iptvhelper new file mode 100644 index 0000000000..bad77043cd --- /dev/null +++ b/package/ctcgfw/iptvhelper/files/etc/config/iptvhelper @@ -0,0 +1,8 @@ +config tvbox 'default' + option disabled '1' + option respawn '1' + option mac '00:00:00:00:00:00' + option ipset '1' + option dns_redir '1' + + diff --git a/package/ctcgfw/iptvhelper/files/etc/firewall.iptvhelper b/package/ctcgfw/iptvhelper/files/etc/firewall.iptvhelper new file mode 100755 index 0000000000..edf6ad7f6c --- /dev/null +++ b/package/ctcgfw/iptvhelper/files/etc/firewall.iptvhelper @@ -0,0 +1,2 @@ +#!/bin/sh +test -s "/etc/init.d/iptvhelper" && /etc/init.d/iptvhelper reload \ No newline at end of file diff --git a/package/ctcgfw/iptvhelper/files/etc/init.d/iptvhelper b/package/ctcgfw/iptvhelper/files/etc/init.d/iptvhelper new file mode 100755 index 0000000000..e189cda15d --- /dev/null +++ b/package/ctcgfw/iptvhelper/files/etc/init.d/iptvhelper @@ -0,0 +1,127 @@ +#!/bin/sh /etc/rc.common +# Copyright 2019 Shun Li +# Licensed to the public under the GNU General Public License v3. + +START=95 +USE_PROCD=1 + +_ipt() { + cmd="$(echo "$@" | sed 's|-A|-D|g;s|-I|-D|g')" + while iptables $cmd &>/dev/null; do + : + done + iptables $@ +} + +destroy_iptv_ipset() { + for ip_set in $(ipset list | awk '/iptvhelper/ {print $2}'); do ipset destroy $ip_set; done +} + +clear_iptv_rules() { + iptables-save --counters | grep -v "iptvhelper-rule" | iptables-restore --counters +} + +append_arg() { + local cfg="$1" + local var="$2" + local opt="$3" + local def="$4" + local val + + config_get val "$cfg" "$var" + [ -n "$val" -o -n "$def" ] && procd_append_param command $opt "${val:-$def}" +} + +append_bool() { + local cfg="$1" + local var="$2" + local opt="$3" + local def="$4" + local val + + config_get_bool val "$cfg" "$var" "$def" + [ "$val" = 1 ] && procd_append_param command "$opt" +} + +start_instance() { + local cfg="$1" + local aux + + config_get_bool aux "$cfg" 'disabled' '0' + [ "$aux" = 1 ] && return 1 + + logger "iptvhelper.$cfg: instance starting" + + local IPTV_MAC + local IPTV_DNS_REDIR + local IPTV_IPSET + + config_get IPTV_MAC $cfg mac + config_get IPTV_DNS_REDIR $cfg dns_redir + config_get IPTV_IPSET $cfg ipset + logger "iptvhelper.$cfg: topbox mac=$IPTV_MAC" + + if [[ $IPTV_DNS_REDIR == '1' ]]; then + logger "iptvhelper.$cfg: topbox DNS redierct enabled" + _ipt -t nat -A PREROUTING -m mac --mac-source $IPTV_MAC -m comment --comment "iptvhelper-rule" -p udp --dport 53 -j REDIRECT --to-ports 53 + fi + + if [[ $IPTV_IPSET='1' ]]; then + logger "iptvhelper.$cfg: topbox ipset enabled" + if ! ipset -q list iptvhelper_$cfg >/dev/null; then + ipset create iptvhelper_$cfg nethash + fi + _ipt -t nat -I PREROUTING -m mac --mac-source $IPTV_MAC -m comment --comment "iptvhelper-rule" -m set ! --match-set iptvhelper_$cfg dst -m conntrack --ctstate NEW -j LOG --log-prefix "iptvhelper.$cfg:" + procd_open_instance + procd_set_param command /usr/sbin/iptvhelper.sh $cfg + config_get_bool aux "$cfg" 'respawn' '0' + [ "$aux" = 1 ] && procd_set_param respawn + procd_set_param pidfile /var/run/iptvhelper_$cfg.pid + procd_close_instance + fi +} + +service_triggers() { + procd_add_reload_trigger "iptvhelper" +} + +start_service() { + logger "iptvhelper: starting" + echo "iptvhelper: starting" + config_load iptvhelper + config_foreach start_instance tvbox + if uci -q show firewall >/dev/null; then + if ! uci -q get firewall.iptvhelper >/dev/null; then + uci -q batch <<-EOF >/dev/null + set firewall.iptvhelper=include + set firewall.iptvhelper.type='script' + set firewall.iptvhelper.path='/etc/firewall.iptvhelper' + set firewall.iptvhelper.family='any' + set firewall.iptvhelper.reload='1' + commit firewall + EOF + fi + fi +} + +stop_service() { + if uci -q show firewall >/dev/null; then + if uci -q get firewall.iptvhelper >/dev/null; then + uci delete firewall.iptvhelper + uci commit firewall + fi + fi + for pid in $(ps | grep -v awk | awk '/iptvhelper.sh/ {print $1}'); do kill -9 $pid; done + for pid in $(ps | grep -v awk | awk '/logread -e iptvhelper/ {print $1}'); do kill -9 $pid; done + clear_iptv_rules + destroy_iptv_ipset + logger "iptvhelper: stopped" + echo "iptvhelper: stopped" +} + +reload_service() { + logger "iptvhelper: reloading" + echo "iptvhelper: reloading" + stop + start +} diff --git a/package/ctcgfw/iptvhelper/files/usr/sbin/iptvhelper.sh b/package/ctcgfw/iptvhelper/files/usr/sbin/iptvhelper.sh new file mode 100755 index 0000000000..ca746b63cb --- /dev/null +++ b/package/ctcgfw/iptvhelper/files/usr/sbin/iptvhelper.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +# Copyright 2019 Shun Li +# Licensed to the public under the GNU General Public License v3. + +add_to_set() { + local ip=$1 + local cfg=$2 + local subnet=$ip/24 + ping -W1 -c1 $ip &>/dev/null && return + if ! ipset -q test iptvhelper_$cfg $subnet; then + ipset add iptvhelper_$cfg $subnet + echo added $subnet to set iptvhelper_$cfg + fi +} + +echo $1 + +logread -e "iptvhelper\.$1" -f | + while read line; do + ip=$(echo "$line" | sed -r 's|.*DST=([0-9.]+).*|\1|') + echo requested $ip + add_to_set $ip $1 & + done diff --git a/package/ctcgfw/luci-app-adguardhome/Makefile b/package/ctcgfw/luci-app-adguardhome/Makefile new file mode 100644 index 0000000000..f3b3c35589 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/Makefile @@ -0,0 +1,75 @@ +# Copyright (C) 2018-2019 Lienol +# +# This is free software, licensed under the Apache License, Version 2.0 . +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=luci-app-adguardhome +PKG_VERSION:=1.8 +PKG_RELEASE:=11 + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) + +include $(INCLUDE_DIR)/package.mk + +define Package/luci-app-adguardhome + SECTION:=luci + CATEGORY:=LuCI + SUBMENU:=3. Applications + TITLE:=LuCI app for adguardhome + PKG_MAINTAINER:= + PKGARCH:=all + DEPENDS:=+!wget&&!curl:wget +endef + +define Package/luci-app-adguardhome/description + LuCI support for adguardhome +endef + +define Build/Prepare +endef + +define Build/Compile +endef + +define Package/luci-app-adguardhome/conffiles +/usr/share/AdGuardHome/links.txt +/etc/config/AdGuardHome +endef + +define Package/luci-app-adguardhome/install + $(INSTALL_DIR) $(1)/usr/lib/lua/luci + cp -pR ./luasrc/* $(1)/usr/lib/lua/luci + $(INSTALL_DIR) $(1)/ + cp -pR ./root/* $(1)/ + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/i18n + po2lmo ./po/zh-cn/AdGuardHome.po $(1)/usr/lib/lua/luci/i18n/AdGuardHome.zh-cn.lmo +endef + +define Package/luci-app-adguardhome/postinst +#!/bin/sh + /etc/init.d/AdGuardHome enable >/dev/null 2>&1 + enable=$(uci get AdGuardHome.AdGuardHome.enabled 2>/dev/null) + if [ "$enable" == "1" ]; then + /etc/init.d/AdGuardHome reload + fi + rm -f /tmp/luci-indexcache + rm -f /tmp/luci-modulecache/* +exit 0 +endef + +define Package/luci-app-adguardhome/prerm +#!/bin/sh +if [ -z "$${IPKG_INSTROOT}" ]; then + /etc/init.d/AdGuardHome disable + /etc/init.d/AdGuardHome stop +uci -q batch <<-EOF >/dev/null 2>&1 + delete ucitrack.@AdGuardHome[-1] + commit ucitrack +EOF +fi +exit 0 +endef + +$(eval $(call BuildPackage,luci-app-adguardhome)) diff --git a/package/ctcgfw/luci-app-adguardhome/luasrc/controller/AdGuardHome.lua b/package/ctcgfw/luci-app-adguardhome/luasrc/controller/AdGuardHome.lua new file mode 100644 index 0000000000..96da08a953 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/luasrc/controller/AdGuardHome.lua @@ -0,0 +1,127 @@ +module("luci.controller.AdGuardHome",package.seeall) +local fs=require"nixio.fs" +local http=require"luci.http" +local uci=require"luci.model.uci".cursor() +function index() +entry({"admin", "services", "AdGuardHome"},alias("admin", "services", "AdGuardHome", "base"),_("AdGuard Home"), 10).dependent = true +entry({"admin","services","AdGuardHome","base"},cbi("AdGuardHome/base"),_("Base Setting"),1).leaf = true +entry({"admin","services","AdGuardHome","log"},form("AdGuardHome/log"),_("Log"),2).leaf = true +entry({"admin","services","AdGuardHome","manual"},cbi("AdGuardHome/manual"),_("Manual Config"),3).leaf = true +entry({"admin","services","AdGuardHome","status"},call("act_status")).leaf=true +entry({"admin", "services", "AdGuardHome", "check"}, call("check_update")) +entry({"admin", "services", "AdGuardHome", "doupdate"}, call("do_update")) +entry({"admin", "services", "AdGuardHome", "getlog"}, call("get_log")) +entry({"admin", "services", "AdGuardHome", "dodellog"}, call("do_dellog")) +entry({"admin", "services", "AdGuardHome", "reloadconfig"}, call("reload_config")) +entry({"admin", "services", "AdGuardHome", "gettemplateconfig"}, call("get_template_config")) +end +function get_template_config() + local b + local d="" + for cnt in io.lines("/tmp/resolv.conf.auto") do + b=string.match (cnt,"^[^#]*nameserver%s+([^%s]+)$") + if (b~=nil) then + d=d.." - "..b.."\n" + end + end + local f=io.open("/usr/share/AdGuardHome/AdGuardHome_template.yaml", "r+") + local tbl = {} + local a="" + while (1) do + a=f:read("*l") + if (a=="#bootstrap_dns") then + a=d + elseif (a=="#upstream_dns") then + a=d + elseif (a==nil) then + break + end + table.insert(tbl, a) + end + f:close() + http.prepare_content("text/plain; charset=utf-8") + http.write(table.concat(tbl, "\n")) +end +function reload_config() + fs.remove("/tmp/AdGuardHometmpconfig.yaml") + http.prepare_content("application/json") + http.write('') +end +function act_status() + local e={} + local binpath=uci:get("AdGuardHome","AdGuardHome","binpath") + e.running=luci.sys.call("pgrep "..binpath.." >/dev/null")==0 + e.redirect=(fs.readfile("/var/run/AdGredir")=="1") + http.prepare_content("application/json") + http.write_json(e) +end +function do_update() + fs.writefile("/var/run/lucilogpos","0") + http.prepare_content("application/json") + http.write('') + local arg + if luci.http.formvalue("force") == "1" then + arg="force" + else + arg="" + end + if fs.access("/var/run/update_core") then + if arg=="force" then + luci.sys.exec("kill $(pgrep /usr/share/AdGuardHome/update_core.sh) ; sh /usr/share/AdGuardHome/update_core.sh "..arg.." >/tmp/AdGuardHome_update.log 2>&1 &") + end + else + luci.sys.exec("sh /usr/share/AdGuardHome/update_core.sh "..arg.." >/tmp/AdGuardHome_update.log 2>&1 &") + end +end +function get_log() + local logfile=uci:get("AdGuardHome","AdGuardHome","logfile") + if (logfile==nil) then + http.write("no log available\n") + return + elseif (logfile=="syslog") then + if not fs.access("/var/run/AdGuardHomesyslog") then + luci.sys.exec("(/usr/share/AdGuardHome/getsyslog.sh &); sleep 1;") + end + logfile="/tmp/AdGuardHometmp.log" + fs.writefile("/var/run/AdGuardHomesyslog","1") + elseif not fs.access(logfile) then + http.write("") + return + end + http.prepare_content("text/plain; charset=utf-8") + local fdp + if fs.access("/var/run/lucilogreload") then + fdp=0 + fs.remove("/var/run/lucilogreload") + else + fdp=tonumber(fs.readfile("/var/run/lucilogpos")) or 0 + end + local f=io.open(logfile, "r+") + f:seek("set",fdp) + local a=f:read(2048000) or "" + fdp=f:seek() + fs.writefile("/var/run/lucilogpos",tostring(fdp)) + f:close() + http.write(a) +end +function do_dellog() + local logfile=uci:get("AdGuardHome","AdGuardHome","logfile") + fs.writefile(logfile,"") + http.prepare_content("application/json") + http.write('') +end +function check_update() + http.prepare_content("text/plain; charset=utf-8") + local fdp=tonumber(fs.readfile("/var/run/lucilogpos")) or 0 + local f=io.open("/tmp/AdGuardHome_update.log", "r+") + f:seek("set",fdp) + local a=f:read(2048000) or "" + fdp=f:seek() + fs.writefile("/var/run/lucilogpos",tostring(fdp)) + f:close() +if fs.access("/var/run/update_core") then + http.write(a) +else + http.write(a.."\0") +end +end diff --git a/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/base.lua b/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/base.lua new file mode 100644 index 0000000000..9e53163fb3 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/base.lua @@ -0,0 +1,304 @@ +require("luci.sys") +require("luci.util") +require("io") +local m,s,o,o1 +local fs=require"nixio.fs" +local uci=require"luci.model.uci".cursor() +local configpath=uci:get("AdGuardHome","AdGuardHome","configpath") or "/etc/AdGuardHome.yaml" +local binpath=uci:get("AdGuardHome","AdGuardHome","binpath") or "/usr/bin/AdGuardHome/AdGuardHome" +httpport=uci:get("AdGuardHome","AdGuardHome","httpport") or "3000" +m = Map("AdGuardHome", "AdGuard Home") +m.description = translate("Free and open source, powerful network-wide ads & trackers blocking DNS server.") +m:section(SimpleSection).template = "AdGuardHome/AdGuardHome_status" + +s = m:section(TypedSection, "AdGuardHome") +s.anonymous=true +s.addremove=false +---- enable +o = s:option(Flag, "enabled", translate("Enable")) +o.default = 0 +o.optional = false +---- httpport +o =s:option(Value,"httpport",translate("Browser management port")) +o.placeholder=3000 +o.default=3000 +o.datatype="port" +o.optional = false +o.description = translate("") +---- update warning not safe +local binmtime=uci:get("AdGuardHome","AdGuardHome","binmtime") or "0" +local e="" +if not fs.access(configpath) then + e=e.." "..translate("no config") +end +if not fs.access(binpath) then + e=e.." "..translate("no core") +else + local version=uci:get("AdGuardHome","AdGuardHome","version") + local testtime=fs.stat(binpath,"mtime") + if testtime~=tonumber(binmtime) or version==nil then + local tmp=luci.sys.exec(binpath.." -c /dev/null --check-config 2>&1| grep -m 1 -E 'v[0-9.]+' -o") + version=string.sub(tmp, 1, -2) + if version=="" then version="core error" end + uci:set("AdGuardHome","AdGuardHome","version",version) + uci:set("AdGuardHome","AdGuardHome","binmtime",testtime) + uci:save("AdGuardHome") + end + e=version..e +end +o=s:option(Button,"restart",translate("Update")) +o.inputtitle=translate("Update core version") +o.template = "AdGuardHome/AdGuardHome_check" +o.showfastconfig=(not fs.access(configpath)) +o.description=string.format(translate("core version:").."%s ",e) +---- port warning not safe +local port=luci.sys.exec("awk '/ port:/{printf($2);exit;}' "..configpath.." 2>nul") +if (port=="") then port="?" end +---- Redirect +o = s:option(ListValue, "redirect", port..translate("Redirect"), translate("AdGuardHome redirect mode")) +o.placeholder = "none" +o:value("none", translate("none")) +o:value("dnsmasq-upstream", translate("Run as dnsmasq upstream server")) +o:value("redirect", translate("Redirect 53 port to AdGuardHome")) +o:value("exchange", translate("Use port 53 replace dnsmasq")) +o.default = "none" +o.optional = true +---- bin path +o = s:option(Value, "binpath", translate("Bin Path"), translate("AdGuardHome Bin path if no bin will auto download")) +o.default = "/usr/bin/AdGuardHome/AdGuardHome" +o.datatype = "string" +o.optional = false +o.rmempty=false +o.validate=function(self, value) +if value=="" then return nil end +if fs.stat(value,"type")=="dir" then + fs.rmdir(value) +end +if fs.stat(value,"type")=="dir" then + if (m.message) then + m.message =m.message.."\nerror!bin path is a dir" + else + m.message ="error!bin path is a dir" + end + return nil +end +return value +end +--- upx +o = s:option(ListValue, "upxflag", translate("use upx to compress bin after download")) +o:value("", translate("none")) +o:value("-1", translate("compress faster")) +o:value("-9", translate("compress better")) +o:value("--best", translate("compress best(can be slow for big files)")) +o:value("--brute", translate("try all available compression methods & filters [slow]")) +o:value("--ultra-brute", translate("try even more compression variants [very slow]")) +o.default = "" +o.description=translate("bin use less space,but may have compatibility issues") +o.rmempty = true +---- config path +o = s:option(Value, "configpath", translate("Config Path"), translate("AdGuardHome config path")) +o.default = "/etc/AdGuardHome.yaml" +o.datatype = "string" +o.optional = false +o.rmempty=false +o.validate=function(self, value) +if value==nil then return nil end +if fs.stat(value,"type")=="dir" then + fs.rmdir(value) +end +if fs.stat(value,"type")=="dir" then + if m.message then + m.message =m.message.."\nerror!config path is a dir" + else + m.message ="error!config path is a dir" + end + return nil +end +return value +end +---- work dir +o = s:option(Value, "workdir", translate("Work dir"), translate("AdGuardHome work dir include rules,audit log and database")) +o.default = "/usr/bin/AdGuardHome" +o.datatype = "string" +o.optional = false +o.rmempty=false +o.validate=function(self, value) +if value=="" then return nil end +if fs.stat(value,"type")=="reg" then + if m.message then + m.message =m.message.."\nerror!work dir is a file" + else + m.message ="error!work dir is a file" + end + return nil +end +if string.sub(value, -1)=="/" then + return string.sub(value, 1, -2) +else + return value +end +end +---- log file +o = s:option(Value, "logfile", translate("Runtime log file"), translate("AdGuardHome runtime Log file if 'syslog': write to system log;if empty no log")) +o.datatype = "string" +o.rmempty = true +o.validate=function(self, value) +if fs.stat(value,"type")=="dir" then + fs.rmdir(value) +end +if fs.stat(value,"type")=="dir" then + if m.message then + m.message =m.message.."\nerror!log file is a dir" + else + m.message ="error!log file is a dir" + end + return nil +end +return value +end +---- debug +o = s:option(Flag, "verbose", translate("Verbose log")) +o.default = 0 +o.optional = true +---- gfwlist +local a=luci.sys.call("grep -m 1 -q programadd "..configpath) +if (a==0) then +a="Added" +else +a="Not added" +end +o=s:option(Button,"gfwdel",translate("Del gfwlist"),translate(a)) +o.optional = true +o.inputtitle=translate("Del") +o.write=function() + luci.sys.exec("sh /usr/share/AdGuardHome/gfw2adg.sh del 2>&1") + luci.http.redirect(luci.dispatcher.build_url("admin","services","AdGuardHome")) +end +o=s:option(Button,"gfwadd",translate("Add gfwlist"),translate(a)) +o.optional = true +o.inputtitle=translate("Add") +o.write=function() + luci.sys.exec("sh /usr/share/AdGuardHome/gfw2adg.sh 2>&1") + luci.http.redirect(luci.dispatcher.build_url("admin","services","AdGuardHome")) +end +o = s:option(Value, "gfwupstream", translate("Gfwlist upstream dns server"), translate("Gfwlist domain upstream dns service")..translate(a)) +o.default = "tcp://208.67.220.220:5353" +o.datatype = "string" +o.optional = true +---- chpass +o = s:option(Value, "hashpass", translate("Change browser management password"), translate("Press load culculate model and culculate finally save/apply")) +o.default = "" +o.datatype = "string" +o.template = "AdGuardHome/AdGuardHome_chpass" +o.optional = true +---- upgrade protect +o = s:option(MultiValue, "upprotect", translate("Keep files when system upgrade")) +o:value("$binpath",translate("core bin")) +o:value("$configpath",translate("config file")) +o:value("$logfile",translate("log file")) +o:value("$workdir/data/sessions.db",translate("sessions.db")) +o:value("$workdir/data/stats.db",translate("stats.db")) +o:value("$workdir/data/querylog.json",translate("querylog.json")) +o:value("$workdir/data/filters",translate("filters")) +o.widget = "checkbox" +o.default = nil +o.optional=true +---- wait net on boot +o = s:option(Flag, "waitonboot", translate("On boot when network ok restart")) +o.default = 1 +o.optional = true +---- backup workdir on shutdown +local workdir=uci:get("AdGuardHome","AdGuardHome","workdir") or "/usr/bin/AdGuardHome" +o = s:option(MultiValue, "backupfile", translate("Backup workdir files when shutdown")) +o1 = s:option(Value, "backupwdpath", translate("Backup workdir path")) +local name +o:value("filters","filters") +o:value("stats.db","stats.db") +o:value("querylog.json","querylog.json") +o:value("sessions.db","sessions.db") +o1:depends ("backupfile", "filters") +o1:depends ("backupfile", "stats.db") +o1:depends ("backupfile", "querylog.json") +o1:depends ("backupfile", "sessions.db") +for name in fs.glob(workdir.."/data/*") +do + name=fs.basename (name) + if name~="filters" and name~="stats.db" and name~="querylog.json" and name~="sessions.db" then + o:value(name,name) + o1:depends ("backupfile", name) + end +end +o.widget = "checkbox" +o.default = nil +o.optional=false +o.description=translate("Will be restore when workdir/data is empty") +----backup workdir path + +o1.default = "/usr/bin/AdGuardHome" +o1.datatype = "string" +o1.optional = false +o1.validate=function(self, value) +if fs.stat(value,"type")=="reg" then + if m.message then + m.message =m.message.."\nerror!backup dir is a file" + else + m.message ="error!backup dir is a file" + end + return nil +end +if string.sub(value,-1)=="/" then + return string.sub(value, 1, -2) +else + return value +end +end + +----Crontab +o = s:option(MultiValue, "crontab", translate("Crontab task"),translate("Please change time and args in crontab")) +o:value("autoupdate",translate("Auto update core")) +o:value("cutquerylog",translate("Auto tail querylog")) +o:value("cutruntimelog",translate("Auto tail runtime log")) +o:value("autohost",translate("Auto update ipv6 hosts and restart adh")) +o:value("autogfw",translate("Auto update gfwlist and restart adh")) +o.widget = "checkbox" +o.default = nil +o.optional=true + +----downloadpath +o = s:option(TextValue, "downloadlinks",translate("Download links for update")) +o.optional = false +o.rows = 4 +o.wrap = "soft" +o.cfgvalue = function(self, section) + return fs.readfile("/usr/share/AdGuardHome/links.txt") +end +o.write = function(self, section, value) + fs.writefile("/usr/share/AdGuardHome/links.txt", value:gsub("\r\n", "\n")) +end +fs.writefile("/var/run/lucilogpos","0") +function m.on_commit(map) + if (fs.access("/var/run/AdGserverdis")) then + io.popen("/etc/init.d/AdGuardHome reload &") + return + end + local ucitracktest=uci:get("AdGuardHome","AdGuardHome","ucitracktest") + if ucitracktest=="1" then + return + elseif ucitracktest=="0" then + io.popen("/etc/init.d/AdGuardHome reload &") + else + if (fs.access("/var/run/AdGlucitest")) then + uci:set("AdGuardHome","AdGuardHome","ucitracktest","0") + io.popen("/etc/init.d/AdGuardHome reload &") + else + fs.writefile("/var/run/AdGlucitest","") + if (ucitracktest=="2") then + uci:set("AdGuardHome","AdGuardHome","ucitracktest","1") + else + uci:set("AdGuardHome","AdGuardHome","ucitracktest","2") + end + end + uci:save("AdGuardHome") + end +end +return m \ No newline at end of file diff --git a/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/log.lua b/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/log.lua new file mode 100644 index 0000000000..5d18a88db4 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/log.lua @@ -0,0 +1,16 @@ +local fs=require"nixio.fs" +local uci=require"luci.model.uci".cursor() +local f,t +f=SimpleForm("logview") +f.reset = false +f.submit = false +t=f:field(TextValue,"conf") +t.rmempty=true +t.rows=20 +t.template="AdGuardHome/log" +t.readonly="readonly" +local logfile=uci:get("AdGuardHome","AdGuardHome","logfile") or "" +t.timereplace=(logfile~="syslog" and logfile~="" ) +t.pollcheck=logfile~="" +fs.writefile("/var/run/lucilogreload","") +return f diff --git a/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/manual.lua b/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/manual.lua new file mode 100644 index 0000000000..72a2ebffde --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/manual.lua @@ -0,0 +1,97 @@ +local m, s, o +local fs = require "nixio.fs" +local uci=require"luci.model.uci".cursor() +local sys=require"luci.sys" +require("string") +require("io") +require("table") +function gen_template_config() + local b + local d="" + for cnt in io.lines("/tmp/resolv.conf.auto") do + b=string.match (cnt,"^[^#]*nameserver%s+([^%s]+)$") + if (b~=nil) then + d=d.." - "..b.."\n" + end + end + local f=io.open("/usr/share/AdGuardHome/AdGuardHome_template.yaml", "r+") + local tbl = {} + local a="" + while (1) do + a=f:read("*l") + if (a=="#bootstrap_dns") then + a=d + elseif (a=="#upstream_dns") then + a=d + elseif (a==nil) then + break + end + table.insert(tbl, a) + end + f:close() + return table.concat(tbl, "\n") +end +m = Map("AdGuardHome") +local configpath = uci:get("AdGuardHome","AdGuardHome","configpath") +local binpath = uci:get("AdGuardHome","AdGuardHome","binpath") +s = m:section(TypedSection, "AdGuardHome") +s.anonymous=true +s.addremove=false +--- config +o = s:option(TextValue, "escconf") +o.rows = 66 +o.wrap = "off" +o.rmempty = true +o.cfgvalue = function(self, section) + return fs.readfile("/tmp/AdGuardHometmpconfig.yaml") or fs.readfile(configpath) or gen_template_config() or "" +end +o.validate=function(self, value) + fs.writefile("/tmp/AdGuardHometmpconfig.yaml", value:gsub("\r\n", "\n")) + if fs.access(binpath) then + if (sys.call(binpath.." -c /tmp/AdGuardHometmpconfig.yaml --check-config 2> /tmp/AdGuardHometest.log")==0) then + return value + end + else + return value + end + luci.http.redirect(luci.dispatcher.build_url("admin","services","AdGuardHome","manual")) + return nil +end +o.write = function(self, section, value) + fs.move("/tmp/AdGuardHometmpconfig.yaml",configpath) +end +o.remove = function(self, section, value) + fs.writefile(configpath, "") +end +--- js and reload button +o = s:option(DummyValue, "") +o.anonymous=true +o.template = "AdGuardHome/yamleditor" +if not fs.access(binpath) then + o.description=translate("WARNING!!! no bin found apply config will not be test") +end +--- log +if (fs.access("/tmp/AdGuardHometmpconfig.yaml")) then +local c=fs.readfile("/tmp/AdGuardHometest.log") +if (c~="") then +o = s:option(TextValue, "") +o.readonly=true +o.rows = 5 +o.rmempty = true +o.name="" +o.cfgvalue = function(self, section) + return fs.readfile("/tmp/AdGuardHometest.log") +end +end +end +function m.on_commit(map) + local ucitracktest=uci:get("AdGuardHome","AdGuardHome","ucitracktest") + if ucitracktest=="1" then + return + elseif ucitracktest=="0" then + io.popen("/etc/init.d/AdGuardHome reload &") + else + fs.writefile("/var/run/AdGlucitest","") + end +end +return m \ No newline at end of file diff --git a/package/ctcgfw/luci-app-adguardhome/luasrc/view/AdGuardHome/AdGuardHome_check.htm b/package/ctcgfw/luci-app-adguardhome/luasrc/view/AdGuardHome/AdGuardHome_check.htm new file mode 100644 index 0000000000..52315ef7e4 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/luasrc/view/AdGuardHome/AdGuardHome_check.htm @@ -0,0 +1,78 @@ +<%+cbi/valueheader%> +<%local fs=require"nixio.fs"%> + + +<% if self.showfastconfig then %> + +<%end%> + + +<%+cbi/valuefooter%> \ No newline at end of file diff --git a/package/ctcgfw/luci-app-adguardhome/luasrc/view/AdGuardHome/AdGuardHome_chpass.htm b/package/ctcgfw/luci-app-adguardhome/luasrc/view/AdGuardHome/AdGuardHome_chpass.htm new file mode 100644 index 0000000000..440eafd970 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/luasrc/view/AdGuardHome/AdGuardHome_chpass.htm @@ -0,0 +1,49 @@ +<%+cbi/valueheader%> + + 0, "data-choices", { self.keylist, self.vallist }) + %> /> + <% if self.password then %><% end %> + +<%+cbi/valuefooter%> \ No newline at end of file diff --git a/package/ctcgfw/luci-app-adguardhome/luasrc/view/AdGuardHome/AdGuardHome_status.htm b/package/ctcgfw/luci-app-adguardhome/luasrc/view/AdGuardHome/AdGuardHome_status.htm new file mode 100644 index 0000000000..7e924d1195 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/luasrc/view/AdGuardHome/AdGuardHome_status.htm @@ -0,0 +1,27 @@ + + +
+

+ <%:Collecting data...%> +

+
\ No newline at end of file diff --git a/package/ctcgfw/luci-app-adguardhome/luasrc/view/AdGuardHome/log.htm b/package/ctcgfw/luci-app-adguardhome/luasrc/view/AdGuardHome/log.htm new file mode 100644 index 0000000000..44b3da0b1f --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/luasrc/view/AdGuardHome/log.htm @@ -0,0 +1,110 @@ +<%+cbi/valueheader%> +<%:reverse%> +<%if self.timereplace then%> +<%:localtime%>
+<%end%> + + + + +<%+cbi/valuefooter%> \ No newline at end of file diff --git a/package/ctcgfw/luci-app-adguardhome/luasrc/view/AdGuardHome/yamleditor.htm b/package/ctcgfw/luci-app-adguardhome/luasrc/view/AdGuardHome/yamleditor.htm new file mode 100644 index 0000000000..639cb99888 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/luasrc/view/AdGuardHome/yamleditor.htm @@ -0,0 +1,39 @@ +<%+cbi/valueheader%> + + + + + + + + + +<%fs=require"nixio.fs"%> +<%if fs.access("/tmp/AdGuardHometmpconfig.yaml") then%> + +<%end%> + +<%+cbi/valuefooter%> \ No newline at end of file diff --git a/package/ctcgfw/luci-app-adguardhome/po/zh-cn/AdGuardHome.po b/package/ctcgfw/luci-app-adguardhome/po/zh-cn/AdGuardHome.po new file mode 100644 index 0000000000..b0abca72a2 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/po/zh-cn/AdGuardHome.po @@ -0,0 +1,266 @@ +#/cgi-bin/luci/admin/services/AdGuardHome +msgid "Base Setting" +msgstr "基础设置" + +msgid "Log" +msgstr "日志" + +msgid "Manual Config" +msgstr "手动设置" + +msgid "Free and open source, powerful network-wide ads & trackers blocking DNS server." +msgstr "免费开源,功能强大的全网络广告和跟踪程序拦截DNS服务器" + +msgid "RUNNING" +msgstr "运行中" + +msgid "NOT RUNNING" +msgstr "未运行" + +msgid "Redirected" +msgstr "已重定向" + +msgid "Not redirect" +msgstr "未重定向" + +msgid "Collecting data..." +msgstr "获取数据中..." + +msgid "Enable" +msgstr "启用" + +msgid "Browser management port" +msgstr "网页管理端口" + +msgid "Update" +msgstr "更新" +#button change +msgid "Update core version" +msgstr "更新核心版本" + +msgid "Check..." +msgstr "检查中..." + +msgid "Updated" +msgstr "已更新" + +#button hide +msgid "Force update" +msgstr "强制更新" + +msgid "Fast config" +msgstr "快速配置" +# +msgid "core version:" +msgstr "核心版本:" +#description change +msgid "no config" +msgstr "没有配置文件" +msgid "no core" +msgstr "没有核心" +# +msgid "Redirect" +msgstr "重定向" +#inlist +msgid "none" +msgstr "无" + +msgid "Run as dnsmasq upstream server" +msgstr "作为dnsmasq的上游服务器" + +msgid "Redirect 53 port to AdGuardHome" +msgstr "重定向53端口到AdGuardHome" + +msgid "Use port 53 replace dnsmasq" +msgstr "使用53端口替换dnsmasq" +# +msgid "AdGuardHome redirect mode" +msgstr "AdGuardHome重定向模式" + +msgid "Bin Path" +msgstr "执行文件路径" + +msgid "AdGuardHome Bin path if no bin will auto download" +msgstr "AdGuardHome 执行文件路径 如果没有执行文件将自动下载" + +msgid "use upx to compress bin after download" +msgstr "下载后使用upx压缩执行文件" +#inlist +msgid "compress faster" +msgstr "快速压缩" + +msgid "compress better" +msgstr "更好的压缩" + +msgid "compress best(can be slow for big files)" +msgstr "最好的压缩(大文件可能慢)" + +msgid "try all available compression methods & filters [slow]" +msgstr "尝试所有可能的压缩方法和过滤器[慢]" + +msgid "try even more compression variants [very slow]" +msgstr "尝试更多变体压缩手段[很慢]" + +msgid "bin use less space,but may have compatibility issues" +msgstr "减小执行文件空间占用,但是可能压缩后有兼容性问题" +# +msgid "Config Path" +msgstr "配置文件路径" + +msgid "AdGuardHome config path" +msgstr "AdGuardHome 配置文件路径" + +msgid "Work dir" +msgstr "工作目录" + +msgid "AdGuardHome work dir include rules,audit log and database" +msgstr "AdGuardHome 工作目录包含规则,审计日志和数据库" + +msgid "Runtime log file" +msgstr "运行日志" + +msgid "AdGuardHome runtime Log file if 'syslog': write to system log;if empty no log" +msgstr "AdGuardHome 运行日志 如果填syslog将写入系统日志;如果空则不记录日志" + +msgid "Verbose log" +msgstr "详细日志" +#hide div +msgid "Add gfwlist" +msgstr "加入gfw列表" + +msgid "Add" +msgstr "添加" + +msgid "Added" +msgstr "已添加" + +msgid "Not added" +msgstr "未添加" +#hide div +msgid "Del gfwlist" +msgstr "删除gfw列表" + +msgid "Del" +msgstr "删除" +#hide div +msgid "Gfwlist upstream dns server" +msgstr "gfw列表上游服务器" + +msgid "Gfwlist domain upstream dns service" +msgstr "gfw列表域名上游服务器" +#hide div +msgid "Change browser management password" +msgstr "改变网页登录密码" + +msgid "Culculate" +msgstr "计算" +##button change +msgid "Load culculate model" +msgstr "载入计算模块" + +msgid "loading..." +msgstr "载入中" + +msgid "Please save/apply" +msgstr "请提交" + +msgid "is empty" +msgstr "为空" + +msgid "Press load culculate model and culculate finally save/apply" +msgstr "按载入计算模块 然后计算 最后保存/提交" +# +msgid "Keep files when system upgrade" +msgstr "系统升级时保留文件" +#checkbox +msgid "core bin" +msgstr "核心执行文件" + +msgid "config file" +msgstr "配置文件" + +msgid "log file" +msgstr "日志文件" + +msgid "querylog.json" +msgstr "审计日志.json" +# +msgid "On boot when network ok restart" +msgstr "开机后网络准备好时重启" + +msgid "Backup workdir files when shutdown" +msgstr "在关机时备份工作目录文件" + +msgid "Will be restore when workdir/data is empty" +msgstr "在工作目录/data为空的时候恢复" + +msgid "Backup workdir path" +msgstr "工作目录备份路径" + +msgid "Crontab task" +msgstr "计划任务" + +msgid "Auto update core" +msgstr "自动升级核心" + +msgid "Auto tail querylog" +msgstr "自动截短查询日志" + +msgid "Auto tail runtime log" +msgstr "自动截短运行日志" + +msgid "Auto update ipv6 hosts and restart adh" +msgstr "自动更新ipv6主机并重启adh" + +msgid "Auto update gfwlist and restart adh" +msgstr "自动更新gfw列表并重启adh" + +msgid "Please change time and args in crontab" +msgstr "请在计划任务中修改时间和参数" + +msgid "Download links for update" +msgstr "升级用的下载链接" + +#/cgi-bin/luci/admin/services/AdGuardHome/log/ +msgid "reverse" +msgstr "逆序" + +msgid "localtime" +msgstr "本地时间" + +msgid "Please add log path in config to enable log" +msgstr "请在设置里填写日志路径以启用日志" + +msgid "dellog" +msgstr "删除日志" + +msgid "download log" +msgstr "下载日志" + +#/cgi-bin/luci//admin/services/AdGuardHome/manual/ +msgid "Use template" +msgstr "使用模板" +#hide button +msgid "Reload Config" +msgstr "重新载入配置" + +msgid "WARNING!!! no bin found apply config will not be test" +msgstr "警告!!!未找到执行文件,提交配置将不会进行校验" +#unused +msgid "Change browser management username" +msgstr "改变网页登录用户名" + +msgid "Username" +msgstr "用户名" + +msgid "Check Config" +msgstr "检查配置" + +msgid "unknown" +msgstr "未知" + +msgid "Keep database when system upgrade" +msgstr "系统升级时保留数据" + +msgid "Boot delay until network ok" +msgstr "开机时直到网络准备好再启动" \ No newline at end of file diff --git a/package/ctcgfw/luci-app-adguardhome/root/etc/config/AdGuardHome b/package/ctcgfw/luci-app-adguardhome/root/etc/config/AdGuardHome new file mode 100644 index 0000000000..cd0c543215 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/root/etc/config/AdGuardHome @@ -0,0 +1,11 @@ +config AdGuardHome 'AdGuardHome' + option enabled '0' + option httpport '3000' + option redirect 'none' + option configpath '/etc/AdGuardHome.yaml' + option workdir '/usr/bin/AdGuardHome' + option logfile '/tmp/AdGuardHome.log' + option verbose '0' + option binpath '/usr/bin/AdGuardHome/AdGuardHome' + option upxflag '' + diff --git a/package/ctcgfw/luci-app-adguardhome/root/etc/init.d/AdGuardHome b/package/ctcgfw/luci-app-adguardhome/root/etc/init.d/AdGuardHome new file mode 100755 index 0000000000..5018a85d74 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/root/etc/init.d/AdGuardHome @@ -0,0 +1,618 @@ +#!/bin/sh /etc/rc.common + +USE_PROCD=1 + +START=95 +STOP=01 + +CONFIGURATION=AdGuardHome +CRON_FILE=/etc/crontabs/root +EXTRA_COMMANDS="do_redirect testbackup test_crontab force_reload isrunning" +EXTRA_HELP=" do_redirect 0 or 1\ + testbackup backup or restore\ + test_crontab + force_reload + isrunning" +set_forward_dnsmasq() +{ + local PORT="$1" + addr="127.0.0.1#$PORT" + OLD_SERVER="`uci get dhcp.@dnsmasq[0].server 2>/dev/null`" + echo $OLD_SERVER | grep "^$addr" >/dev/null 2>&1 + if [ $? -eq 0 ]; then + return + fi + uci delete dhcp.@dnsmasq[0].server 2>/dev/null + uci add_list dhcp.@dnsmasq[0].server=$addr + for server in $OLD_SERVER; do + if [ "$server" = "$addr" ]; then + continue + fi + uci add_list dhcp.@dnsmasq[0].server=$server + done + uci delete dhcp.@dnsmasq[0].resolvfile 2>/dev/null + uci set dhcp.@dnsmasq[0].noresolv=1 + uci commit dhcp + /etc/init.d/dnsmasq restart +} + +stop_forward_dnsmasq() +{ + local OLD_PORT="$1" + addr="127.0.0.1#$OLD_PORT" + OLD_SERVER="`uci get dhcp.@dnsmasq[0].server 2>/dev/null`" + echo $OLD_SERVER | grep "^$addr" >/dev/null 2>&1 + if [ $? -ne 0 ]; then + return + fi + + uci del_list dhcp.@dnsmasq[0].server=$addr 2>/dev/null + addrlist="`uci get dhcp.@dnsmasq[0].server 2>/dev/null`" + if [ -z "$addrlist" ] ; then + uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.auto 2>/dev/null + uci delete dhcp.@dnsmasq[0].noresolv 2>/dev/null + fi + uci commit dhcp + /etc/init.d/dnsmasq restart +} + +set_iptable() +{ + local ipv6_server=$1 + local tcp_server=$2 + uci -q batch <<-EOF >/dev/null 2>&1 + delete firewall.AdGuardHome + set firewall.AdGuardHome=include + set firewall.AdGuardHome.type=script + set firewall.AdGuardHome.path=/usr/share/AdGuardHome/firewall.start + set firewall.AdGuardHome.reload=1 + commit firewall +EOF + + IPS="`ifconfig | grep "inet addr" | grep -v ":127" | grep "Bcast" | awk '{print $2}' | awk -F : '{print $2}'`" + for IP in $IPS + do + if [ "$tcp_server" == "1" ]; then + iptables -t nat -A PREROUTING -p tcp -d $IP --dport 53 -j REDIRECT --to-ports $AdGuardHome_PORT >/dev/null 2>&1 + fi + iptables -t nat -A PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $AdGuardHome_PORT >/dev/null 2>&1 + done + + if [ "$ipv6_server" == 0 ]; then + return + fi + + IPS="`ifconfig | grep "inet6 addr" | grep -v " fe80::" | grep -v " ::1" | grep "Global" | awk '{print $3}'`" + for IP in $IPS + do + if [ "$tcp_server" == "1" ]; then + ip6tables -t nat -A PREROUTING -p tcp -d $IP --dport 53 -j REDIRECT --to-ports $AdGuardHome_PORT >/dev/null 2>&1 + fi + ip6tables -t nat -A PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $AdGuardHome_PORT >/dev/null 2>&1 + done + +} + +clear_iptable() +{ + uci -q batch <<-EOF >/dev/null 2>&1 + delete firewall.AdGuardHome + commit firewall +EOF + local OLD_PORT="$1" + local ipv6_server=$2 + IPS="`ifconfig | grep "inet addr" | grep -v ":127" | grep "Bcast" | awk '{print $2}' | awk -F : '{print $2}'`" + for IP in $IPS + do + iptables -t nat -D PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $OLD_PORT >/dev/null 2>&1 + iptables -t nat -D PREROUTING -p tcp -d $IP --dport 53 -j REDIRECT --to-ports $OLD_PORT >/dev/null 2>&1 + done + + if [ "$ipv6_server" == 0 ]; then + return + fi + echo "warn ip6tables nat mod is needed" + IPS="`ifconfig | grep "inet6 addr" | grep -v " fe80::" | grep -v " ::1" | grep "Global" | awk '{print $3}'`" + for IP in $IPS + do + ip6tables -t nat -D PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $OLD_PORT >/dev/null 2>&1 + ip6tables -t nat -D PREROUTING -p tcp -d $IP --dport 53 -j REDIRECT --to-ports $OLD_PORT >/dev/null 2>&1 + done + +} + +service_triggers() { + procd_add_reload_trigger "$CONFIGURATION" + [ "$(uci get AdGuardHome.AdGuardHome.redirect)" == "redirect" ] && procd_add_reload_trigger firewall +} +isrunning(){ +config_load "${CONFIGURATION}" +_isrunning +local r=$? +([ "$r" == "0" ] && echo "running") || ([ "$r" == "1" ] && echo "not run" ) || echo "no bin" +return $r +} +_isrunning(){ + config_get binpath $CONFIGURATION binpath "/usr/bin/AdGuardHome/AdGuardHome" + [ ! -f "$binpath" ] && return 2 + pgrep $binpath 2>&1 >/dev/null && return 0 + return 1 +} +force_reload(){ + config_load "${CONFIGURATION}" + _isrunning && procd_send_signal "$CONFIGURATION" || start +} +get_tz() +{ + SET_TZ="" + + if [ -e "/etc/localtime" ]; then + return + fi + + for tzfile in /etc/TZ /var/etc/TZ + do + if [ ! -e "$tzfile" ]; then + continue + fi + + tz="`cat $tzfile 2>/dev/null`" + done + + if [ -z "$tz" ]; then + return + fi + + SET_TZ=$tz +} + +rm_port53() +{ + local AdGuardHome_PORT=$(config_editor "dns.port" "" "$configpath" "1") + dnsmasq_port=$(uci get dhcp.@dnsmasq[0].port 2>/dev/null) + if [ -z "$dnsmasq_port" ]; then + dnsmasq_port="53" + fi + if [ "$dnsmasq_port" == "$AdGuardHome_PORT" ]; then + if [ "$dnsmasq_port" == "53" ]; then + dnsmasq_port="1745" + fi + elif [ "$dnsmasq_port" == "53" ]; then + return + fi + config_editor "dns.port" "$dnsmasq_port" "$configpath" + uci set dhcp.@dnsmasq[0].port="53" + uci commit dhcp + /etc/init.d/dnsmasq reload +} + +use_port53() +{ + local AdGuardHome_PORT=$(config_editor "dns.port" "" "$configpath" "1") + dnsmasq_port=$(uci get dhcp.@dnsmasq[0].port 2>/dev/null) + if [ -z "$dnsmasq_port" ]; then + dnsmasq_port="53" + fi + if [ "$dnsmasq_port" == "$AdGuardHome_PORT" ]; then + if [ "$dnsmasq_port" == "53" ]; then + AdGuardHome_PORT="1745" + fi + elif [ "$AdGuardHome_PORT" == "53" ]; then + return + fi + config_editor "dns.port" "53" "$configpath" + uci set dhcp.@dnsmasq[0].port="$AdGuardHome_PORT" + uci commit dhcp + /etc/init.d/dnsmasq reload +} +do_redirect() +{ + config_load "${CONFIGURATION}" + _do_redirect $1 +} +_do_redirect() +{ + local section="$CONFIGURATION" + args="" + ipv6_server=1 + tcp_server=0 + enabled=$1 + if [ "$enabled" == "1" ]; then + echo -n "1">/var/run/AdGredir + else + echo -n "0">/var/run/AdGredir + fi + config_get configpath $CONFIGURATION configpath "/etc/AdGuardHome.yaml" + AdGuardHome_PORT=$(config_editor "dns.port" "" "$configpath" "1") + if [ -z "$AdGuardHome_PORT" ]; then + AdGuardHome_PORT="0" + fi + config_get "redirect" "$section" "redirect" "none" + config_get "old_redirect" "$section" "old_redirect" "none" + config_get "old_port" "$section" "old_port" "0" + config_get "old_enabled" "$section" "old_enabled" "0" + uci get dhcp.@dnsmasq[0].port >/dev/null 2>&1 || uci set dhcp.@dnsmasq[0].port="53" >/dev/null 2>&1 + if [ "$old_enabled" = "1" -a "$old_redirect" == "exchange" ]; then + AdGuardHome_PORT=$(uci get dhcp.@dnsmasq[0].port 2>/dev/null) + fi + + if [ "$old_redirect" != "$redirect" ] || [ "$old_port" != "$AdGuardHome_PORT" ] || [ "$old_enabled" = "1" -a "$enabled" = "0" ]; then + if [ "$old_redirect" != "none" ]; then + if [ "$old_redirect" == "redirect" -a "$old_port" != "0" ]; then + clear_iptable "$old_port" "$ipv6_server" + elif [ "$old_redirect" == "dnsmasq-upstream" ]; then + stop_forward_dnsmasq "$old_port" + elif [ "$old_redirect" == "exchange" ]; then + rm_port53 + fi + fi + elif [ "$old_enabled" = "1" -a "$enabled" = "1" ]; then + if [ "$old_redirect" == "redirect" -a "$old_port" != "0" ]; then + clear_iptable "$old_port" "$ipv6_server" + fi + fi + uci delete AdGuardHome.@AdGuardHome[0].old_redirect 2>/dev/null + uci delete AdGuardHome.@AdGuardHome[0].old_port 2>/dev/null + uci delete AdGuardHome.@AdGuardHome[0].old_enabled 2>/dev/null + uci add_list AdGuardHome.@AdGuardHome[0].old_redirect="$redirect" 2>/dev/null + uci add_list AdGuardHome.@AdGuardHome[0].old_port="$AdGuardHome_PORT" 2>/dev/null + uci add_list AdGuardHome.@AdGuardHome[0].old_enabled="$enabled" 2>/dev/null + uci commit AdGuardHome + [ "$enabled" == "0" ] && return 1 + if [ "$AdGuardHome_PORT" == "0" ]; then + return 1 + fi + if [ "$redirect" = "redirect" ]; then + set_iptable $ipv6_server $tcp_server + elif [ "$redirect" = "dnsmasq-upstream" ]; then + set_forward_dnsmasq "$AdGuardHome_PORT" + elif [ "$redirect" == "exchange" -a "$(uci get dhcp.@dnsmasq[0].port 2>/dev/null)" == "53" ]; then + use_port53 + fi +} +get_filesystem() +{ +# print out path filesystem + echo $1 | awk ' + BEGIN{ + while (("mount"| getline ret) > 0) + { + split(ret,d); + fs[d[3]]=d[5]; + m=index(d[1],":") + if (m==0) + { + pt[d[3]]=d[1] + }else{ + pt[d[3]]=substr(d[1],m+1) + }}}{ + split($0,d,"/"); + if ("/" in fs) + { + result1=fs["/"]; + } + if ("/" in pt) + { + result2=pt["/"]; + } + for (i=2;i<=length(d);i++) + { + p[i]=p[i-1]"/"d[i]; + if (p[i] in fs) + { + result1=fs[p[i]]; + result2=pt[p[i]]; + } + } + if (result2 in fs){ + result=fs[result2]} + else{ + result=result1} + print(result);}' +} + +config_editor() +{ + awk -v yaml="$1" -v value="$2" -v file="$3" -v ro="$4" ' + BEGIN{split(yaml,part,"\.");s="";i=1;l=length(part);} + { + if (match($0,s""part[i]":")) + { + if (i==l) + { + split($0,t,": "); + if (ro==""){ + system("sed -i '\''"FNR"c \\"t[1]": "value"'\'' "file); + }else{ + print(t[2]); + } + exit; + } + s=s"[- ]{2}"; + i++; + } + }' $3 +} + +boot_service() { + rm /var/run/AdGserverdis >/dev/null 2>&1 + config_load "${CONFIGURATION}" + config_get waitonboot $CONFIGURATION waitonboot "0" + config_get_bool enabled $CONFIGURATION enabled 0 + config_get binpath $CONFIGURATION binpath "/usr/bin/AdGuardHome/AdGuardHome" + [ -f "$binpath" ] && start_service + if [ "$enabled" == "1" ] && [ "$waitonboot" == "1" ]; then + procd_open_instance "waitnet" + procd_set_param command "/usr/share/AdGuardHome/waitnet.sh" + procd_close_instance + echo "no net start pinging" + fi +} + +testbackup(){ + config_load "${CONFIGURATION}" + if [ "$1" == "backup" ]; then + backup + elif [ "$1" == "restore" ]; then + restore + fi +} +restore() +{ + config_get workdir $CONFIGURATION workdir "/usr/bin/AdGuardHome" + config_get backupwdpath $CONFIGURATION backupwdpath "/usr/bin/AdGuardHome" + cp -u -r -f $backupwdpath/data $workdir +} +backup() { + config_get backupwdpath $CONFIGURATION backupwdpath "/usr/bin/AdGuardHome" + mkdir -p $backupwdpath/data + config_get workdir $CONFIGURATION workdir "/usr/bin/AdGuardHome" + config_get backupfile $CONFIGURATION backupfile "" + for one in $backupfile; + do + while : + do + if [ -d "$backupwdpath/data/$one" ]; then + cpret=$(cp -u -r -f $workdir/data/$one $backupwdpath/data 2>&1) + else + cpret=$(cp -u -r -f $workdir/data/$one $backupwdpath/data/$one 2>&1) + fi + echo "$cpret" + echo "$cpret" | grep "no space left on device" + if [ "$?" == "0" ]; then + echo "磁盘已满,删除log重试中" + del_querylog && continue + rm -f -r $backupwdpath/data/filters + rm -f -r $workdir/data/filters && continue + echo "backup failed" + fi + break + done + done +} +start_service() { + # Reading config + rm /var/run/AdGserverdis >/dev/null 2>&1 + config_load "${CONFIGURATION}" + # update password + config_get hashpass $CONFIGURATION hashpass "" + config_get configpath $CONFIGURATION configpath "/etc/AdGuardHome.yaml" + if [ -n "$hashpass" ]; then + config_editor "users.password" "$hashpass" "$configpath" + uci set $CONFIGURATION.$CONFIGURATION.hashpass="" + fi + local enabled + config_get_bool enabled $CONFIGURATION enabled 0 + # update crontab + do_crontab + if [ "$enabled" == "0" ]; then + _do_redirect 0 + return + fi + #what need to do before reload + config_get workdir $CONFIGURATION workdir "/usr/bin/AdGuardHome" + + config_get backupfile $CONFIGURATION backupfile "" + mkdir -p $workdir/data + if [ -n "$backupfile" ] && [ ! -d "$workdir/data" ]; then + restore + fi + # for overlay data-stk-oo not suppport + local cwdfs=$(get_filesystem $workdir) + echo "workdir is a $cwdfs filesystem" + if [ "$cwdfs" == "jffs2" ]; then + echo "fs error ln db to tmp $workdir $cwdfs" + logger "AdGuardHome" "warning db redirect to tmp" + touch $workdir/data/stats.db + if [ ! -L $workdir/data/stats.db ]; then + mv -f $workdir/data/stats.db /tmp/stats.db 2>/dev/null + ln -s /tmp/stats.db $workdir/data/stats.db 2>/dev/null + fi + touch $workdir/data/sessions.db + if [ ! -L $workdir/data/sessions.db ]; then + mv -f $workdir/data/sessions.db /tmp/sessions.db 2>/dev/null + ln -s /tmp/sessions.db $workdir/data/sessions.db 2>/dev/null + fi + fi + local ADDITIONAL_ARGS="" + config_get binpath $CONFIGURATION binpath "/usr/bin/AdGuardHome/AdGuardHome" + + mkdir -p ${binpath%/*} + ADDITIONAL_ARGS="$ADDITIONAL_ARGS -c $configpath" + ADDITIONAL_ARGS="$ADDITIONAL_ARGS -w $workdir" + config_get httpport $CONFIGURATION httpport 3000 + ADDITIONAL_ARGS="$ADDITIONAL_ARGS -p $httpport" + + # hack to save config file when upgrade system + config_get upprotect $CONFIGURATION upprotect "" + eval upprotect=${upprotect// /\\\\n} + echo -e "$upprotect">/lib/upgrade/keep.d/luci-app-adguardhome + + config_get logfile $CONFIGURATION logfile "" + if [ -n "$logfile" ]; then + ADDITIONAL_ARGS="$ADDITIONAL_ARGS -l $logfile" + fi + + if [ ! -f "$binpath" ]; then + _do_redirect 0 + /usr/share/AdGuardHome/update_core.sh 2>&1 >/tmp/AdGuardHome_update.log & + exit 0 + fi + + config_get_bool verbose $CONFIGURATION verbose 0 + if [ "$verbose" -eq 1 ]; then + ADDITIONAL_ARGS="$ADDITIONAL_ARGS -v" + fi + + procd_open_instance + get_tz + if [ -n "$SET_TZ" ]; then + procd_set_param env TZ="$SET_TZ" + fi + procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5} + procd_set_param limits core="unlimited" nofile="65535 65535" + procd_set_param stderr 1 + procd_set_param command $binpath $ADDITIONAL_ARGS + procd_set_param file "$configpath" "/etc/hosts" "/etc/config/AdGuardHome" + procd_close_instance + if [ -f "$configpath" ]; then + _do_redirect 1 + else + _do_redirect 0 + config_get "redirect" "AdGuardHome" "redirect" "none" + if [ "$redirect" != "none" ]; then + procd_open_instance "waitconfig" + procd_set_param command "/usr/share/AdGuardHome/watchconfig.sh" + procd_close_instance + echo "no config start watching" + fi + fi + echo "AdGuardHome service enabled" + echo "luci enable switch=$enabled" + (sleep 10 && [ -z "$(pgrep $binpath)" ] && logger "AdGuardHome" "no process in 10s cancel redirect" && _do_redirect 0 )& +} +reload_service() +{ + rm /var/run/AdGlucitest >/dev/null 2>&1 + echo "AdGuardHome reloading" + start +} + +del_querylog(){ +local btarget=$(ls $backupwdpath/data | grep -F "querylog.json" | sort -r | head -n 1) +local wtarget=$(ls $workdir/data | grep -F "querylog.json" | sort -r | head -n 1) +if [ "$btarget"x == "$wtarget"x ]; then + [ -z "$btarget" ] && return 1 + rm -f $workdir/data/$wtarget + rm -f $backupwdpath/data/$btarget + return 0 +fi +if [ "$btarget" \> "$wtarget" ]; then + rm -f $backupwdpath/data/$btarget + return 0 +else + rm -f $workdir/data/$wtarget + return 0 +fi +} +stop_service() +{ + config_load "${CONFIGURATION}" + _do_redirect 0 + do_crontab + if [ "$1" != "nobackup" ]; then + config_get backupfile $CONFIGURATION backupfile "0" + if [ -n "$backupfile" ]; then + backup + fi + fi + echo "AdGuardHome service disabled" + touch /var/run/AdGserverdis +} +boot() { + rc_procd boot_service "$@" + if eval "type service_started" 2>/dev/null >/dev/null; then + service_started + fi +} +test_crontab(){ +config_load "${CONFIGURATION}" +do_crontab +} +do_crontab(){ + config_get_bool enabled $CONFIGURATION enabled 0 + config_get crontab $CONFIGURATION crontab "" + local findstr default cronenable replace commit + local cronreload=0 + local commit=0 + findstr="/usr/share/AdGuardHome/update_core.sh" + default="30 3 * * * /usr/share/AdGuardHome/update_core.sh 2>&1" + [ "$enabled" == "0" ] || [ "${crontab//autoupdate/}" == "$crontab" ] && cronenable=0 || cronenable=1 + crontab_editor + + config_get workdir $CONFIGURATION workdir "/usr/bin/AdGuardHome" + config_get lastworkdir $CONFIGURATION lastworkdir "/usr/bin/AdGuardHome" + findstr="/usr/share/AdGuardHome/tailto.sh [0-9]* \$(uci get AdGuardHome.AdGuardHome.workdir)/data/querylog.json" + #[ -n "$lastworkdir" ] && findstr="/usr/share/AdGuardHome/tailto.sh [0-9]* $lastworkdir/data/querylog.json" && [ "$lastworkdir" != "$workdir" ] && replace="${lastworkdir//\//\\/}/${workdir//\//\\/}" + default="0 * * * * /usr/share/AdGuardHome/tailto.sh 2000 \$(uci get AdGuardHome.AdGuardHome.workdir)/data/querylog.json" + [ "$enabled" == "0" ] || [ "${crontab//cutquerylog/}" == "$crontab" ] && cronenable=0 || cronenable=1 + crontab_editor + #[ "$lastworkdir" != "$workdir" ] && uci set AdGuardHome.AdGuardHome.lastworkdir="$workdir" && commit=1 + + config_get logfile $CONFIGURATION logfile "" + config_get lastlogfile $CONFIGURATION lastlogfile "" + findstr="/usr/share/AdGuardHome/tailto.sh [0-9]* \$(uci get AdGuardHome.AdGuardHome.logfile)" + default="30 3 * * * /usr/share/AdGuardHome/tailto.sh 2000 \$(uci get AdGuardHome.AdGuardHome.logfile)" + #[ -n "$lastlogfile" ] && findstr="/usr/share/AdGuardHome/tailto.sh [0-9]* $lastlogfile" && [ -n "$logfile" ] && [ "$lastlogfile" != "$logfile" ] && replace="${lastlogfile//\//\\/}/${logfile//\//\\/}" + [ "$logfile" == "syslog" ] || [ "$logfile" == "" ] || [ "$enabled" == "0" ] || [ "${crontab//cutruntimelog/}" == "$crontab" ] && cronenable=0 || cronenable=1 + crontab_editor + #[ -n "$logfile" ] && [ "$lastlogfile" != "$logfile" ] && uci set AdGuardHome.AdGuardHome.lastlogfile="$logfile" && commit=1 + + findstr="/usr/share/AdGuardHome/addhost.sh" + default="0 * * * * /usr/share/AdGuardHome/addhost.sh" + [ "$enabled" == "0" ] || [ "${crontab//autohost/}" == "$crontab" ] && cronenable=0 || cronenable=1 + crontab_editor + [ "$cronenable" == "0" ] && /usr/share/AdGuardHome/addhost.sh "del" "noreload" || /usr/share/AdGuardHome/addhost.sh "" "noreload" + + findstr="/usr/share/AdGuardHome/gfw2adg.sh" + default="30 3 * * * /usr/share/AdGuardHome/gfw2adg.sh" + [ "$enabled" == "0" ] || [ "${crontab//autogfw/}" == "$crontab" ] && cronenable=0 || cronenable=1 + crontab_editor + [ "$cronreload" -gt 0 ] && /etc/init.d/cron restart + #[ "$commit" -gt 0 ] && uci commit AdGuardHome +} +crontab_editor(){ + #usage input: + #findstr= + #default= + #cronenable= + #replace="${last//\//\\/}/${now//\//\\/}" + #output:cronreload:if >1 please /etc/init.d/cron restart manual + local testline reload + local line="$(grep "$findstr" $CRON_FILE)" + [ -n "$replace" ] && [ -n "$line" ] && eval testline="\${line//$replace}" && [ "$testline" != "$line" ] && line="$testline" && reload="1" && replace="" + if [ "${line:0:1}" != "#" ]; then + if [ $cronenable -eq 1 ]; then + [ -z "$line" ] && line="$default" && reload="1" + if [ -n "$reload" ]; then + sed -i "\,$findstr,d" $CRON_FILE + echo "$line" >> $CRON_FILE + cronreload=$((cronreload+1)) + fi + elif [ -n "$line" ]; then + sed -i "\,$findstr,d" $CRON_FILE + echo "#$line" >> $CRON_FILE + cronreload=$((cronreload+1)) + fi + else + if [ $cronenable -eq 1 ]; then + sed -i "\,$findstr,d" $CRON_FILE + echo "${line:1}" >> $CRON_FILE + cronreload=$((cronreload+1)) + elif [ -z "$reload" ]; then + sed -i "\,$findstr,d" $CRON_FILE + echo "$line" >> $CRON_FILE + fi + fi + +} diff --git a/package/ctcgfw/luci-app-adguardhome/root/etc/uci-defaults/40_luci-AdGuardHome b/package/ctcgfw/luci-app-adguardhome/root/etc/uci-defaults/40_luci-AdGuardHome new file mode 100755 index 0000000000..2d467df980 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/root/etc/uci-defaults/40_luci-AdGuardHome @@ -0,0 +1,12 @@ +#!/bin/sh + +uci -q batch <<-EOF >/dev/null 2>&1 + delete ucitrack.@AdGuardHome[-1] + add ucitrack AdGuardHome + set ucitrack.@AdGuardHome[-1].init=AdGuardHome + commit ucitrack + delete AdGuardHome.AdGuardHome.ucitracktest +EOF + +rm -f /tmp/luci-indexcache +exit 0 diff --git a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/AdGuardHome_template.yaml b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/AdGuardHome_template.yaml new file mode 100644 index 0000000000..7e6a66abc7 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/AdGuardHome_template.yaml @@ -0,0 +1,109 @@ +#提交就可以直接用的配置模板文件 +#a template config can be use with a apply +bind_host: 0.0.0.0 +bind_port: 3000 +users: +- name: root + password: $2y$10$FfeQavihMUiXCuJhHuQwy.6EOXDvkXb/S50qI5fXizqarNT/ShhQm +language: "" +rlimit_nofile: 0 +dns: + bind_host: 0.0.0.0 + port: 5553 + statistics_interval: 1 + protection_enabled: true + filtering_enabled: true + filters_update_interval: 24 + blocking_mode: nxdomain + blocked_response_ttl: 10 + querylog_enabled: false + querylog_interval: 1 + ratelimit: 0 + ratelimit_whitelist: [] + refuse_any: false + bootstrap_dns: +#bootstrap_dns + all_servers: false + allowed_clients: [] + disallowed_clients: [] + blocked_hosts: [] + parental_block_host: "" + safebrowsing_block_host: "" + blocked_services: [] + cache_size: 4194304 + parental_sensitivity: 13 + parental_enabled: false + safesearch_enabled: false + safebrowsing_enabled: false + safebrowsing_cache_size: 1048576 + safesearch_cache_size: 1048576 + parental_cache_size: 1048576 + cache_time: 30 + rewrites: [] + upstream_dns: +#upstream_dns +tls: + enabled: false + server_name: "" + force_https: false + port_https: 443 + port_dns_over_tls: 853 + certificate_chain: "" + private_key: "" + certificate_path: "" + private_key_path: "" +filters: +- enabled: true + url: https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt + name: AdGuard Simplified Domain Names filter + id: 1 +- enabled: true + url: https://adaway.org/hosts.txt + name: AdAway + id: 2 +- enabled: false + url: https://hosts-file.net/ad_servers.txt + name: hpHosts - Ad and Tracking servers only + id: 3 +- enabled: true + url: https://www.malwaredomainlist.com/hostslist/hosts.txt + name: MalwareDomainList.com Hosts List + id: 4 +- enabled: false + url: https://raw.githubusercontent.com/vokins/yhosts/master/data/tvbox.txt + name: tvbox + id: 1575018007 +- enabled: true + url: https://hosts.nfz.moe/full/hosts + name: neoHosts full + id: 1575618240 +- enabled: false + url: https://hosts.nfz.moe/basic/hosts + name: neoHosts basic + id: 1575618241 +- enabled: false + url: http://sbc.io/hosts/hosts + name: StevenBlack host basic + id: 1575618242 +- enabled: false + url: http://sbc.io/hosts/alternates/fakenews-gambling-porn-social/hosts + name: StevenBlack host+fakenews + gambling + porn + social + id: 1575618243 +- enabled: false + url: https://cdn.jsdelivr.net/gh/privacy-protection-tools/anti-AD/anti-ad-easylist.txt + name: anti-AD(Adblock+neohosts+yhosts+cjxlist+adhlist) + id: 1577113202 +user_rules: [] +dhcp: + enabled: false + interface_name: "" + gateway_ip: "" + subnet_mask: "" + range_start: "" + range_end: "" + lease_duration: 86400 + icmp_timeout_msec: 1000 +clients: [] +log_file: "" +verbose: false +schema_version: 5 \ No newline at end of file diff --git a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/addhost.sh b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/addhost.sh new file mode 100755 index 0000000000..2461b74dd2 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/addhost.sh @@ -0,0 +1,33 @@ +#!/bin/sh +checkmd5(){ +local nowmd5=$(md5sum /etc/hosts) +nowmd5=${nowmd5%% *} +local lastmd5=$(uci get AdGuardHome.AdGuardHome.hostsmd5 2>/dev/null) +if [ "$nowmd5" != "$lastmd5" ]; then + uci set AdGuardHome.AdGuardHome.hostsmd5="$nowmd5" + uci commit AdGuardHome + [ "$1" == "noreload" ] || /etc/init.d/AdGuardHome reload +fi +} +[ "$1" == "del" ] && sed -i '/programaddstart/,/programaddend/d' /etc/hosts && checkmd5 "$2" && exit 0 +/usr/bin/awk 'BEGIN{ +while ((getline < "/tmp/dhcp.leases") > 0) +{ + a[$2]=$4; +} +while (("ip -6 neighbor show | grep -v fe80" | getline) > 0) +{ + if (a[$5]) {print $1" "a[$5] >"/tmp/tmphost"; } +} +print "#programaddend" >"/tmp/tmphost"; +}' +grep programaddstart /etc/hosts >/dev/null 2>&1 +if [ "$?" == "0" ]; then + sed -i '/programaddstart/,/programaddend/c\#programaddstart' /etc/hosts + sed -i '/programaddstart/'r/tmp/tmphost /etc/hosts +else + echo "#programaddstart" >>/etc/hosts + cat /tmp/tmphost >> /etc/hosts +fi +rm /tmp/tmphost +checkmd5 "$2" \ No newline at end of file diff --git a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/firewall.start b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/firewall.start new file mode 100755 index 0000000000..562117e52e --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/firewall.start @@ -0,0 +1,8 @@ +#!/bin/sh + +AdGuardHome_enable=$(uci get AdGuardHome.AdGuardHome.enabled) +redirect=$(uci get AdGuardHome.AdGuardHome.redirect) + +if [ $AdGuardHome_enable -eq 1 -a "$redirect" == "redirect" ]; then + /etc/init.d/AdGuardHome do_redirect 1 +fi diff --git a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/getsyslog.sh b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/getsyslog.sh new file mode 100755 index 0000000000..c95cc077b3 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/getsyslog.sh @@ -0,0 +1,19 @@ +#!/bin/sh +PATH="/usr/sbin:/usr/bin:/sbin:/bin" +logread -e AdGuardHome > /tmp/AdGuardHometmp.log +logread -e AdGuardHome -f >> /tmp/AdGuardHometmp.log & +pid=$! +echo "1">/var/run/AdGuardHomesyslog +while true +do + sleep 12 + watchdog=$(cat /var/run/AdGuardHomesyslog) + if [ "$watchdog"x == "0"x ]; then + kill $pid + rm /tmp/AdGuardHometmp.log + rm /var/run/AdGuardHomesyslog + exit 0 + else + echo "0">/var/run/AdGuardHomesyslog + fi +done \ No newline at end of file diff --git a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/gfw2adg.sh b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/gfw2adg.sh new file mode 100755 index 0000000000..386d4307a8 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/gfw2adg.sh @@ -0,0 +1,86 @@ +#!/bin/sh +PATH="/usr/sbin:/usr/bin:/sbin:/bin" +checkmd5(){ +local nowmd5=$(md5sum /tmp/adguard.list 2>/dev/null) +nowmd5=${nowmd5%% *} +local lastmd5=$(uci get AdGuardHome.AdGuardHome.gfwlistmd5 2>/dev/null) +if [ "$nowmd5" != "$lastmd5" ]; then + uci set AdGuardHome.AdGuardHome.gfwlistmd5="$nowmd5" + uci commit AdGuardHome + [ "$1" == "noreload" ] || /etc/init.d/AdGuardHome reload +fi +} +configpath=$(uci get AdGuardHome.AdGuardHome.configpath 2>/dev/null) +[ "$1" == "del" ] && sed -i '/programaddstart/,/programaddend/d' $configpath && checkmd5 "$2" && exit 0 +gfwupstream=$(uci get AdGuardHome.AdGuardHome.gfwupstream 2>/dev/null) +if [ -z $gfwupstream ]; then +gfwupstream="tcp://208.67.220.220:5353" +fi +if [ ! -f "$configpath" ]; then + echo "please make a config first" + exit 1 +fi +wget-ssl --no-check-certificate https://cdn.jsdelivr.net/gh/gfwlist/gfwlist/gfwlist.txt -O- | base64 -d > /tmp/gfwlist.txt +cat /tmp/gfwlist.txt | awk -v upst="$gfwupstream" 'BEGIN{getline;}{ +s1=substr($0,1,1); +if (s1=="!") +{next;} +if (s1=="@"){ + $0=substr($0,3); + s1=substr($0,1,1); + white=1;} +else{ + white=0; +} + +if (s1=="|") + {s2=substr($0,2,1); + if (s2=="|") + { + $0=substr($0,3); + split($0,d,"/"); + $0=d[1]; + }else{ + split($0,d,"/"); + $0=d[3]; + }} +else{ + split($0,d,"/"); + $0=d[1]; +} +star=index($0,"*"); +if (star!=0) +{ + $0=substr($0,star+1); + dot=index($0,"."); + if (dot!=0) + $0=substr($0,dot+1); + else + next; + s1=substr($0,1,1); +} +if (s1==".") +{fin=substr($0,2);} +else{fin=$0;} +if (index(fin,".")==0) next; +if (index(fin,"%")!=0) next; +if (index(fin,":")!=0) next; +match(fin,"^[0-9\.]+") +if (RSTART==1 && RLENGTH==length(fin)) {print "ipset add gfwlist "fin>"/tmp/doipset.sh";next;} +if (fin=="" || finl==fin) next; +finl=fin; +if (white==0) + {print(" - '\''[/"fin"/]"upst"'\''");} +else{ + print(" - '\''[/"fin"/]#'\''");} +}END{print(" - '\''[/programaddend/]#'\''")}' > /tmp/adguard.list +grep programaddstart $configpath +if [ "$?" == "0" ]; then + sed -i '/programaddstart/,/programaddend/c\ - '\''\[\/programaddstart\/\]#'\''' $configpath + sed -i '/programaddstart/'r/tmp/adguard.list $configpath +else + sed -i '1i\ - '\''[/programaddstart/]#'\''' /tmp/adguard.list + sed -i '/upstream_dns:/'r/tmp/adguard.list $configpath +fi +checkmd5 "$2" +rm -f /tmp/gfwlist.txt /tmp/adguard.list \ No newline at end of file diff --git a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/links.txt b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/links.txt new file mode 100644 index 0000000000..1059be5512 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/links.txt @@ -0,0 +1,3 @@ +https://github.com/AdguardTeam/AdGuardHome/releases/download/${latest_ver}/AdGuardHome_linux_${Arch}.tar.gz +https://static.adguard.com/adguardhome/release/AdGuardHome_linux_${Arch}.tar.gz +#https://static.adguard.com/adguardhome/beta/AdGuardHome_linux_${Arch}.tar.gz \ No newline at end of file diff --git a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/tailto.sh b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/tailto.sh new file mode 100755 index 0000000000..ab70e3a6ef --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/tailto.sh @@ -0,0 +1,4 @@ +#!/bin/sh +tail -n $1 "$2" > /var/run/tailtmp +cat /var/run/tailtmp > "$2" +rm /var/run/tailtmp \ No newline at end of file diff --git a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/update_core.sh b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/update_core.sh new file mode 100755 index 0000000000..2469919e31 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/update_core.sh @@ -0,0 +1,231 @@ +#!/bin/bash +PATH="/usr/sbin:/usr/bin:/sbin:/bin" +binpath=$(uci get AdGuardHome.AdGuardHome.binpath) +if [ -z "$binpath" ]; then +uci set AdGuardHome.AdGuardHome.binpath="/tmp/AdGuardHome/AdGuardHome" +binpath="/tmp/AdGuardHome/AdGuardHome" +fi +mkdir -p ${binpath%/*} +upxflag=$(uci get AdGuardHome.AdGuardHome.upxflag 2>/dev/null) + +check_if_already_running(){ + running_tasks="$(ps |grep "AdGuardHome" |grep "update_core" |grep -v "grep" |awk '{print $1}' |wc -l)" + [ "${running_tasks}" -gt "2" ] && echo -e "\nA task is already running." && EXIT 2 +} + +check_wgetcurl(){ + which curl && downloader="curl -L -k --retry 2 --connect-timeout 20 -o" && return + which wget-ssl && downloader="wget-ssl --no-check-certificate -t 2 -T 20 -O" && return + [ -z "$1" ] && opkg update || (echo error opkg && EXIT 1) + [ -z "$1" ] && (opkg remove wget wget-nossl --force-depends ; opkg install wget ; check_wgetcurl 1 ;return) + [ "$1" == "1" ] && (opkg install curl ; check_wgetcurl 2 ; return) + echo error curl and wget && EXIT 1 +} +check_latest_version(){ + check_wgetcurl + latest_ver="$($downloader - https://api.github.com/repos/AdguardTeam/AdGuardHome/releases/latest 2>/dev/null|grep -E 'tag_name' |grep -E 'v[0-9.]+' -o 2>/dev/null)" + if [ -z "${latest_ver}" ]; then + echo -e "\nFailed to check latest version, please try again later." && EXIT 1 + fi + now_ver="$($binpath -c /dev/null --check-config 2>&1| grep -m 1 -E 'v[0-9.]+' -o)" + if [ "${latest_ver}"x != "${now_ver}"x ] || [ "$1" == "force" ]; then + echo -e "Local version: ${now_ver}., cloud version: ${latest_ver}." + doupdate_core + else + echo -e "\nLocal version: ${now_ver}, cloud version: ${latest_ver}." + echo -e "You're already using the latest version." + if [ ! -z "$upxflag" ]; then + filesize=$(ls -l $binpath | awk '{ print $5 }') + if [ $filesize -gt 8000000 ]; then + echo -e "start upx may take a long time" + doupx + mkdir -p "/tmp/AdGuardHomeupdate/AdGuardHome" >/dev/null 2>&1 + rm -fr /tmp/AdGuardHomeupdate/AdGuardHome/${binpath##*/} + /tmp/upx-${upx_latest_ver}-${Arch}_linux/upx $upxflag $binpath -o /tmp/AdGuardHomeupdate/AdGuardHome/${binpath##*/} + rm -rf /tmp/upx-${upx_latest_ver}-${Arch}_linux + /etc/init.d/AdGuardHome stop nobackup + rm $binpath + mv -f /tmp/AdGuardHomeupdate/AdGuardHome/${binpath##*/} $binpath + /etc/init.d/AdGuardHome start + echo -e "finished" + fi + fi + EXIT 0 + fi +} +doupx(){ + Archt="$(opkg info kernel | grep Architecture | awk -F "[ _]" '{print($2)}')" + case $Archt in + "i386") + Arch="i386" + ;; + "i686") + Arch="i386" + echo -e "i686 use $Arch may have bug" + ;; + "x86") + Arch="amd64" + ;; + "mipsel") + Arch="mipsel" + ;; + "mips64el") + Arch="mips64el" + Arch="mipsel" + echo -e "mips64el use $Arch may have bug" + ;; + "mips") + Arch="mips" + ;; + "mips64") + Arch="mips64" + Arch="mips" + echo -e "mips64 use $Arch may have bug" + ;; + "arm") + Arch="arm" + ;; + "armeb") + Arch="armeb" + ;; + "aarch64") + Arch="arm64" + ;; + "powerpc") + Arch="powerpc" + ;; + "powerpc64") + Arch="powerpc64" + ;; + *) + echo -e "error not support $Archt if you can use offical release please issue a bug" + EXIT 1 + ;; + esac + upx_latest_ver="$($downloader - https://api.github.com/repos/upx/upx/releases/latest 2>/dev/null|grep -E 'tag_name' |grep -E '[0-9.]+' -o 2>/dev/null)" + $downloader /tmp/upx-${upx_latest_ver}-${Arch}_linux.tar.xz "https://github.com/upx/upx/releases/download/v${upx_latest_ver}/upx-${upx_latest_ver}-${Arch}_linux.tar.xz" 2>&1 + #tar xvJf + which xz || (opkg list | grep ^xz || opkg update && opkg install xz) || (echo "xz download fail" && EXIT 1) + mkdir -p /tmp/upx-${upx_latest_ver}-${Arch}_linux + xz -d -c /tmp/upx-${upx_latest_ver}-${Arch}_linux.tar.xz| tar -x -C "/tmp" >/dev/null 2>&1 + if [ ! -e "/tmp/upx-${upx_latest_ver}-${Arch}_linux/upx" ]; then + echo -e "Failed to download upx." + EXIT 1 + fi + rm /tmp/upx-${upx_latest_ver}-${Arch}_linux.tar.xz +} +doupdate_core(){ + echo -e "Updating core..." + mkdir -p "/tmp/AdGuardHomeupdate" + rm -rf /tmp/AdGuardHomeupdate/* >/dev/null 2>&1 + Archt="$(opkg info kernel | grep Architecture | awk -F "[ _]" '{print($2)}')" + case $Archt in + "i386") + Arch="386" + ;; + "i686") + Arch="386" + ;; + "x86") + Arch="amd64" + ;; + "mipsel") + Arch="mipsle" + ;; + "mips64el") + Arch="mips64le" + Arch="mipsle" + echo -e "mips64el use $Arch may have bug" + ;; + "mips") + Arch="mips" + ;; + "mips64") + Arch="mips64" + Arch="mips" + echo -e "mips64 use $Arch may have bug" + ;; + "arm") + Arch="arm" + ;; + "aarch64") + Arch="arm64" + ;; + "powerpc") + Arch="ppc" + echo -e "error not support $Archt" + EXIT 1 + ;; + "powerpc64") + Arch="ppc64" + echo -e "error not support $Archt" + EXIT 1 + ;; + *) + echo -e "error not support $Archt if you can use offical release please issue a bug" + EXIT 1 + ;; + esac + echo -e "start download" + grep -v "^#" /usr/share/AdGuardHome/links.txt >/tmp/run/AdHlinks.txt + while read link + do + eval link="$link" + $downloader /tmp/AdGuardHomeupdate/${link##*/} "$link" 2>&1 + if [ "$?" != "0" ]; then + echo "download failed try another download" + rm -f /tmp/AdGuardHomeupdate/${link##*/} + else + local success="1" + break + fi + done < "/tmp/run/AdHlinks.txt" + rm /tmp/run/AdHlinks.txt + [ -z "$success" ] && echo "no download success" && EXIT 1 + if [ "${link##*.}" == "gz" ]; then + tar -zxf "/tmp/AdGuardHomeupdate/${link##*/}" -C "/tmp/AdGuardHomeupdate/" + if [ ! -e "/tmp/AdGuardHomeupdate/AdGuardHome" ]; then + echo -e "Failed to download core." + rm -rf "/tmp/AdGuardHomeupdate" >/dev/null 2>&1 + EXIT 1 + fi + downloadbin="/tmp/AdGuardHomeupdate/AdGuardHome/AdGuardHome" + else + downloadbin="/tmp/AdGuardHomeupdate/${link##*/}" + fi + chmod 755 $downloadbin + echo -e "download success start copy" + if [ -n "$upxflag" ]; then + echo -e "start upx may take a long time" + doupx + /tmp/upx-${upx_latest_ver}-${Arch}_linux/upx $upxflag $downloadbin + rm -rf /tmp/upx-${upx_latest_ver}-${Arch}_linux + fi + echo -e "start copy" + /etc/init.d/AdGuardHome stop nobackup + rm "$binpath" + mv -f "$downloadbin" "$binpath" + if [ "$?" == "1" ]; then + echo "mv failed maybe not enough space please use upx or change bin to /tmp/AdGuardHome" + EXIT 1 + fi + /etc/init.d/AdGuardHome start + rm -rf "/tmp/AdGuardHomeupdate" >/dev/null 2>&1 + echo -e "Succeeded in updating core." + echo -e "Local version: ${latest_ver}, cloud version: ${latest_ver}.\n" + EXIT 0 +} +EXIT(){ + rm /var/run/update_core 2>/dev/null + [ "$1" != "0" ] && touch /var/run/update_core_error + exit $1 +} +main(){ + + check_if_already_running + check_latest_version $1 +} + trap "EXIT 1" SIGTERM SIGINT + touch /var/run/update_core + rm /var/run/update_core_error 2>/dev/null + main $1 diff --git a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/waitnet.sh b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/waitnet.sh new file mode 100755 index 0000000000..a79a8bac87 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/waitnet.sh @@ -0,0 +1,34 @@ +#!/bin/sh +PATH="/usr/sbin:/usr/bin:/sbin:/bin" +count=0 +while : +do + ping -c 1 -W 1 -q www.baidu.com 1>/dev/null 2>&1 + if [ "$?" == "0" ]; then + /etc/init.d/AdGuardHome force_reload + break + fi + ping -c 1 -W 1 -q 202.108.22.5 1>/dev/null 2>&1 + if [ "$?" == "0" ]; then + /etc/init.d/AdGuardHome force_reload + break + fi + sleep 5 + ping -c 1 -W 1 -q www.google.com 1>/dev/null 2>&1 + if [ "$?" == "0" ]; then + /etc/init.d/AdGuardHome force_reload + break + fi + ping -c 1 -W 1 -q 8.8.8.8 1>/dev/null 2>&1 + if [ "$?" == "0" ]; then + /etc/init.d/AdGuardHome force_reload + break + fi + sleep 5 + count=$((count+1)) + if [ $count -gt 18 ]; then + /etc/init.d/AdGuardHome force_reload + break + fi +done +return 0 \ No newline at end of file diff --git a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/watchconfig.sh b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/watchconfig.sh new file mode 100755 index 0000000000..c5252250b6 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/watchconfig.sh @@ -0,0 +1,12 @@ +#!/bin/sh +PATH="/usr/sbin:/usr/bin:/sbin:/bin" +configpath=$(uci get AdGuardHome.AdGuardHome.configpath) +while : +do + sleep 10 + if [ -f "$configpath" ]; then + /etc/init.d/AdGuardHome do_redirect 1 + break + fi +done +return 0 \ No newline at end of file diff --git a/package/ctcgfw/luci-app-adguardhome/root/www/luci-static/resources/codemirror/addon/fold/foldcode.js b/package/ctcgfw/luci-app-adguardhome/root/www/luci-static/resources/codemirror/addon/fold/foldcode.js new file mode 100644 index 0000000000..f93d42b7fe --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/root/www/luci-static/resources/codemirror/addon/fold/foldcode.js @@ -0,0 +1 @@ +!function(n){"object"==typeof exports&&"object"==typeof module?n(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],n):n(CodeMirror)}(function(n){"use strict";function e(e,o,i,t){if(i&&i.call){var l=i;i=null}else l=r(e,i,"rangeFinder");"number"==typeof o&&(o=n.Pos(o,0));var f=r(e,i,"minFoldSize");function d(n){var r=l(e,o);if(!r||r.to.line-r.from.linee.firstLine();)o=n.Pos(o.line-1,0),u=d(!1);if(u&&!u.cleared&&"unfold"!==t){var a=function(n,e){var o=r(n,e,"widget");if("string"==typeof o){var i=document.createTextNode(o);(o=document.createElement("span")).appendChild(i),o.className="CodeMirror-foldmarker"}else o&&(o=o.cloneNode(!0));return o}(e,i);n.on(a,"mousedown",function(e){c.clear(),n.e_preventDefault(e)});var c=e.markText(u.from,u.to,{replacedWith:a,clearOnEnter:r(e,i,"clearOnEnter"),__isFold:!0});c.on("clear",function(o,r){n.signal(e,"unfold",e,o,r)}),n.signal(e,"fold",e,u.from,u.to)}}n.newFoldFunction=function(n,o){return function(r,i){e(r,i,{rangeFinder:n,widget:o})}},n.defineExtension("foldCode",function(n,o,r){e(this,n,o,r)}),n.defineExtension("isFolded",function(n){for(var e=this.findMarksAt(n),o=0;o=u){if(s&&f&&s.test(f.className))return;i=r(a.indicatorOpen)}}(i||f)&&t.setGutterMarker(n,a.gutter,i)})}function i(t){return new RegExp("(^|\\s)"+t+"(?:$|\\s)\\s*")}function f(t){var o=t.getViewport(),e=t.state.foldGutter;e&&(t.operation(function(){n(t,o.from,o.to)}),e.from=o.from,e.to=o.to)}function a(t,r,n){var i=t.state.foldGutter;if(i){var f=i.options;if(n==f.gutter){var a=e(t,r);a?a.clear():t.foldCode(o(r,0),f)}}}function d(t){var o=t.state.foldGutter;if(o){var e=o.options;o.from=o.to=0,clearTimeout(o.changeUpdate),o.changeUpdate=setTimeout(function(){f(t)},e.foldOnChangeTimeSpan||600)}}function u(t){var o=t.state.foldGutter;if(o){var e=o.options;clearTimeout(o.changeUpdate),o.changeUpdate=setTimeout(function(){var e=t.getViewport();o.from==o.to||e.from-o.to>20||o.from-e.to>20?f(t):t.operation(function(){e.fromo.to&&(n(t,o.to,e.to),o.to=e.to)})},e.updateViewportTimeSpan||400)}}function l(t,o){var e=t.state.foldGutter;if(e){var r=o.line;r>=e.from&&ro))break;r=l}}return r?{from:e.Pos(i.line,t.getLine(i.line).length),to:e.Pos(r,t.getLine(r).length)}:void 0}})}); \ No newline at end of file diff --git a/package/ctcgfw/luci-app-adguardhome/root/www/luci-static/resources/codemirror/lib/codemirror.css b/package/ctcgfw/luci-app-adguardhome/root/www/luci-static/resources/codemirror/lib/codemirror.css new file mode 100644 index 0000000000..43ac1a9fab --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/root/www/luci-static/resources/codemirror/lib/codemirror.css @@ -0,0 +1 @@ +.CodeMirror{font-family:monospace;height:500px;color:black;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:white}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:black}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid black;border-right:0;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0 !important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20,255,20,0.5);-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:bold}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3,.cm-s-default .cm-type{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta{color:#555}.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error{color:red}.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:white}.CodeMirror-scroll{overflow:scroll !important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:0;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none !important;border:none !important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:0}.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:0} diff --git a/package/ctcgfw/luci-app-adguardhome/root/www/luci-static/resources/codemirror/lib/codemirror.js b/package/ctcgfw/luci-app-adguardhome/root/www/luci-static/resources/codemirror/lib/codemirror.js new file mode 100644 index 0000000000..d01f072ee4 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/root/www/luci-static/resources/codemirror/lib/codemirror.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.CodeMirror=t()}(this,function(){"use strict";var e=navigator.userAgent,t=navigator.platform,r=/gecko\/\d/i.test(e),n=/MSIE \d/.test(e),i=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),o=/Edge\/(\d+)/.exec(e),l=n||i||o,s=l&&(n?document.documentMode||6:+(o||i)[1]),a=!o&&/WebKit\//.test(e),u=a&&/Qt\/\d+\.\d+/.test(e),c=!o&&/Chrome\//.test(e),h=/Opera\//.test(e),f=/Apple Computer/.test(navigator.vendor),d=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),p=/PhantomJS/.test(e),g=!o&&/AppleWebKit/.test(e)&&/Mobile\/\w+/.test(e),v=/Android/.test(e),m=g||v||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),y=g||/Mac/.test(t),b=/\bCrOS\b/.test(e),w=/win/i.test(t),x=h&&e.match(/Version\/(\d*\.\d*)/);x&&(x=Number(x[1])),x&&x>=15&&(h=!1,a=!0);var C=y&&(u||h&&(null==x||x<12.11)),S=r||l&&s>=9;function L(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}var k,T=function(e,t){var r=e.className,n=L(t).exec(r);if(n){var i=r.slice(n.index+n[0].length);e.className=r.slice(0,n.index)+(i?n[1]+i:"")}};function M(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function N(e,t){return M(e).appendChild(t)}function O(e,t,r,n){var i=document.createElement(e);if(r&&(i.className=r),n&&(i.style.cssText=n),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o=t)return l+(t-o);l+=s-o,l+=r-l%r,o=s+1}}g?P=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:l&&(P=function(e){try{e.select()}catch(e){}});var R=function(){this.id=null,this.f=null,this.time=0,this.handler=E(this.onTimeout,this)};function B(e,t){for(var r=0;r=t)return n+Math.min(l,t-i);if(i+=o-n,n=o+1,(i+=r-i%r)>=t)return n}}var Y=[""];function _(e){for(;Y.length<=e;)Y.push($(Y)+" ");return Y[e]}function $(e){return e[e.length-1]}function q(e,t){for(var r=[],n=0;n"€"&&(e.toUpperCase()!=e.toLowerCase()||J.test(e))}function te(e,t){return t?!!(t.source.indexOf("\\w")>-1&&ee(e))||t.test(e):ee(e)}function re(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var ne=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function ie(e){return e.charCodeAt(0)>=768&&ne.test(e)}function oe(e,t,r){for(;(r<0?t>0:tr?-1:1;;){if(t==r)return t;var i=(t+r)/2,o=n<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:r;e(o)?r=o:t=o+n}}var se=null;function ae(e,t,r){var n;se=null;for(var i=0;it)return i;o.to==t&&(o.from!=o.to&&"before"==r?n=i:se=i),o.from==t&&(o.from!=o.to&&"before"!=r?n=i:se=i)}return null!=n?n:se}var ue=function(){var e="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",t="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";var r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,n=/[stwN]/,i=/[LRr]/,o=/[Lb1n]/,l=/[1n]/;function s(e,t,r){this.level=e,this.from=t,this.to=r}return function(a,u){var c="ltr"==u?"L":"R";if(0==a.length||"ltr"==u&&!r.test(a))return!1;for(var h,f=a.length,d=[],p=0;p-1&&(n[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function ge(e,t){var r=de(e,t);if(r.length)for(var n=Array.prototype.slice.call(arguments,2),i=0;i0}function be(e){e.prototype.on=function(e,t){fe(this,e,t)},e.prototype.off=function(e,t){pe(this,e,t)}}function we(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function xe(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function Ce(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function Se(e){we(e),xe(e)}function Le(e){return e.target||e.srcElement}function ke(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),y&&e.ctrlKey&&1==t&&(t=3),t}var Te,Me,Ne=function(){if(l&&s<9)return!1;var e=O("div");return"draggable"in e||"dragDrop"in e}();function Oe(e){if(null==Te){var t=O("span","​");N(e,O("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(Te=t.offsetWidth<=1&&t.offsetHeight>2&&!(l&&s<8))}var r=Te?O("span","​"):O("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return r.setAttribute("cm-text",""),r}function Ae(e){if(null!=Me)return Me;var t=N(e,document.createTextNode("AخA")),r=k(t,0,1).getBoundingClientRect(),n=k(t,1,2).getBoundingClientRect();return M(e),!(!r||r.left==r.right)&&(Me=n.right-r.right<3)}var De,We=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,r=[],n=e.length;t<=n;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),l=o.indexOf("\r");-1!=l?(r.push(o.slice(0,l)),t+=l+1):(r.push(o),t=i+1)}return r}:function(e){return e.split(/\r\n?|\n/)},He=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},Fe="oncopy"in(De=O("div"))||(De.setAttribute("oncopy","return;"),"function"==typeof De.oncopy),Pe=null;var Ee={},Ie={};function ze(e){if("string"==typeof e&&Ie.hasOwnProperty(e))e=Ie[e];else if(e&&"string"==typeof e.name&&Ie.hasOwnProperty(e.name)){var t=Ie[e.name];"string"==typeof t&&(t={name:t}),(e=Q(t,e)).name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return ze("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return ze("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function Re(e,t){t=ze(t);var r=Ee[t.name];if(!r)return Re(e,"text/plain");var n=r(e,t);if(Be.hasOwnProperty(t.name)){var i=Be[t.name];for(var o in i)i.hasOwnProperty(o)&&(n.hasOwnProperty(o)&&(n["_"+o]=n[o]),n[o]=i[o])}if(n.name=t.name,t.helperType&&(n.helperType=t.helperType),t.modeProps)for(var l in t.modeProps)n[l]=t.modeProps[l];return n}var Be={};function Ge(e,t){I(t,Be.hasOwnProperty(e)?Be[e]:Be[e]={})}function Ue(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var r={};for(var n in t){var i=t[n];i instanceof Array&&(i=i.concat([])),r[n]=i}return r}function Ve(e,t){for(var r;e.innerMode&&(r=e.innerMode(t))&&r.mode!=e;)t=r.state,e=r.mode;return r||{mode:e,state:t}}function Ke(e,t,r){return!e.startState||e.startState(t,r)}var je=function(e,t,r){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=r};function Xe(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var r=e;!r.lines;)for(var n=0;;++n){var i=r.children[n],o=i.chunkSize();if(t=e.first&&tr?et(r,Xe(e,r).text.length):function(e,t){var r=e.ch;return null==r||r>t?et(e.line,t):r<0?et(e.line,0):e}(t,Xe(e,t.line).text.length)}function at(e,t){for(var r=[],n=0;n=this.string.length},je.prototype.sol=function(){return this.pos==this.lineStart},je.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},je.prototype.next=function(){if(this.post},je.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},je.prototype.skipToEnd=function(){this.pos=this.string.length},je.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},je.prototype.backUp=function(e){this.pos-=e},je.prototype.column=function(){return this.lastColumnPos0?null:(n&&!1!==t&&(this.pos+=n[0].length),n)}var i=function(e){return r?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},je.prototype.current=function(){return this.string.slice(this.start,this.pos)},je.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},je.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},je.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var ut=function(e,t){this.state=e,this.lookAhead=t},ct=function(e,t,r,n){this.state=t,this.doc=e,this.line=r,this.maxLookAhead=n||0,this.baseTokens=null,this.baseTokenPos=1};function ht(e,t,r,n){var i=[e.state.modeGen],o={};wt(e,t.text,e.doc.mode,r,function(e,t){return i.push(e,t)},o,n);for(var l=r.state,s=function(n){r.baseTokens=i;var s=e.state.overlays[n],a=1,u=0;r.state=!0,wt(e,t.text,s.mode,r,function(e,t){for(var r=a;ue&&i.splice(a,1,e,i[a+1],n),a+=2,u=Math.min(e,n)}if(t)if(s.opaque)i.splice(r,a-r,e,"overlay "+t),a=r+2;else for(;re.options.maxHighlightLength&&Ue(e.doc.mode,n.state),o=ht(e,t,n);i&&(n.state=i),t.stateAfter=n.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),r===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function dt(e,t,r){var n=e.doc,i=e.display;if(!n.mode.startState)return new ct(n,!0,t);var o=function(e,t,r){for(var n,i,o=e.doc,l=r?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;s>l;--s){if(s<=o.first)return o.first;var a=Xe(o,s-1),u=a.stateAfter;if(u&&(!r||s+(u instanceof ut?u.lookAhead:0)<=o.modeFrontier))return s;var c=z(a.text,null,e.options.tabSize);(null==i||n>c)&&(i=s-1,n=c)}return i}(e,t,r),l=o>n.first&&Xe(n,o-1).stateAfter,s=l?ct.fromSaved(n,l,o):new ct(n,Ke(n.mode),o);return n.iter(o,t,function(r){pt(e,r.text,s);var n=s.line;r.stateAfter=n==t-1||n%5==0||n>=i.viewFrom&&nt.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}ct.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},ct.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},ct.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},ct.fromSaved=function(e,t,r){return t instanceof ut?new ct(e,Ue(e.mode,t.state),r,t.lookAhead):new ct(e,Ue(e.mode,t),r)},ct.prototype.save=function(e){var t=!1!==e?Ue(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ut(t,this.maxLookAhead):t};var mt=function(e,t,r){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=r};function yt(e,t,r,n){var i,o,l=e.doc,s=l.mode,a=Xe(l,(t=st(l,t)).line),u=dt(e,t.line,r),c=new je(a.text,e.options.tabSize,u);for(n&&(o=[]);(n||c.pose.options.maxHighlightLength?(s=!1,l&&pt(e,t,n,h.pos),h.pos=t.length,a=null):a=bt(vt(r,h,n.state,f),o),f){var d=f[0].name;d&&(a="m-"+(a?d+" "+a:d))}if(!s||c!=a){for(;u=t:o.to>t);(n||(n=[])).push(new St(l,o.from,s?null:o.to))}}return n}(r,i,l),a=function(e,t,r){var n;if(e)for(var i=0;i=t:o.to>t)||o.from==t&&"bookmark"==l.type&&(!r||o.marker.insertLeft)){var s=null==o.from||(l.inclusiveLeft?o.from<=t:o.from0&&s)for(var b=0;bt)&&(!r||Wt(r,o.marker)<0)&&(r=o.marker)}return r}function It(e,t,r,n,i){var o=Xe(e,t),l=Ct&&o.markedSpans;if(l)for(var s=0;s=0&&h<=0||c<=0&&h>=0)&&(c<=0&&(a.marker.inclusiveRight&&i.inclusiveLeft?tt(u.to,r)>=0:tt(u.to,r)>0)||c>=0&&(a.marker.inclusiveRight&&i.inclusiveLeft?tt(u.from,n)<=0:tt(u.from,n)<0)))return!0}}}function zt(e){for(var t;t=Ft(e);)e=t.find(-1,!0).line;return e}function Rt(e,t){var r=Xe(e,t),n=zt(r);return r==n?t:qe(n)}function Bt(e,t){if(t>e.lastLine())return t;var r,n=Xe(e,t);if(!Gt(e,n))return t;for(;r=Pt(n);)n=r.find(1,!0).line;return qe(n)+1}function Gt(e,t){var r=Ct&&t.markedSpans;if(r)for(var n=void 0,i=0;it.maxLineLength&&(t.maxLineLength=r,t.maxLine=e)})}var Xt=function(e,t,r){this.text=e,Ot(this,t),this.height=r?r(this):1};function Yt(e){e.parent=null,Nt(e)}Xt.prototype.lineNo=function(){return qe(this)},be(Xt);var _t={},$t={};function qt(e,t){if(!e||/^\s*$/.test(e))return null;var r=t.addModeClass?$t:_t;return r[e]||(r[e]=e.replace(/\S+/g,"cm-$&"))}function Zt(e,t){var r=A("span",null,null,a?"padding-right: .1px":null),n={pre:A("pre",[r],"CodeMirror-line"),content:r,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:e.getOption("lineWrapping")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,l=void 0;n.pos=0,n.addToken=Jt,Ae(e.display.measure)&&(l=ce(o,e.doc.direction))&&(n.addToken=er(n.addToken,l)),n.map=[],rr(o,n,ft(e,o,t!=e.display.externalMeasured&&qe(o))),o.styleClasses&&(o.styleClasses.bgClass&&(n.bgClass=F(o.styleClasses.bgClass,n.bgClass||"")),o.styleClasses.textClass&&(n.textClass=F(o.styleClasses.textClass,n.textClass||""))),0==n.map.length&&n.map.push(0,0,n.content.appendChild(Oe(e.display.measure))),0==i?(t.measure.map=n.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(n.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(a){var s=n.content.lastChild;(/\bcm-tab\b/.test(s.className)||s.querySelector&&s.querySelector(".cm-tab"))&&(n.content.className="cm-tab-wrap-hack")}return ge(e,"renderLine",e,t.line,n.pre),n.pre.className&&(n.textClass=F(n.pre.className,n.textClass||"")),n}function Qt(e){var t=O("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function Jt(e,t,r,n,i,o,a){if(t){var u,c=e.splitSpaces?function(e,t){if(e.length>1&&!/ /.test(e))return e;for(var r=t,n="",i=0;iu&&h.from<=u);f++);if(h.to>=c)return e(r,n,i,o,l,s,a);e(r,n.slice(0,h.to-u),i,o,null,s,a),o=null,n=n.slice(h.to-u),u=h.to}}}function tr(e,t,r,n){var i=!n&&r.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!n&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",r.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function rr(e,t,r){var n=e.markedSpans,i=e.text,o=0;if(n)for(var l,s,a,u,c,h,f,d=i.length,p=0,g=1,v="",m=0;;){if(m==p){a=u=c=s="",f=null,h=null,m=1/0;for(var y=[],b=void 0,w=0;wp||C.collapsed&&x.to==p&&x.from==p)){if(null!=x.to&&x.to!=p&&m>x.to&&(m=x.to,u=""),C.className&&(a+=" "+C.className),C.css&&(s=(s?s+";":"")+C.css),C.startStyle&&x.from==p&&(c+=" "+C.startStyle),C.endStyle&&x.to==m&&(b||(b=[])).push(C.endStyle,x.to),C.title&&((f||(f={})).title=C.title),C.attributes)for(var S in C.attributes)(f||(f={}))[S]=C.attributes[S];C.collapsed&&(!h||Wt(h.marker,C)<0)&&(h=x)}else x.from>p&&m>x.from&&(m=x.from)}if(b)for(var L=0;L=d)break;for(var T=Math.min(d,m);;){if(v){var M=p+v.length;if(!h){var N=M>T?v.slice(0,T-p):v;t.addToken(t,N,l?l+a:a,c,p+N.length==m?u:"",s,f)}if(M>=T){v=v.slice(T-p),p=T;break}p=M,c=""}v=i.slice(o,o=r[g++]),l=qt(r[g++],t.cm.options)}}else for(var O=1;Or)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function Or(e,t,r,n){return Wr(e,Dr(e,t),r,n)}function Ar(e,t){if(t>=e.display.viewFrom&&t=r.lineN&&t2&&o.push((a.bottom+u.top)/2-r.top)}}o.push(r.bottom-r.top)}}(e,t.view,t.rect),t.hasHeights=!0),(o=function(e,t,r,n){var i,o=Pr(t.map,r,n),a=o.node,u=o.start,c=o.end,h=o.collapse;if(3==a.nodeType){for(var f=0;f<4;f++){for(;u&&ie(t.line.text.charAt(o.coverStart+u));)--u;for(;o.coverStart+c1}(e))return t;var r=screen.logicalXDPI/screen.deviceXDPI,n=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*r,right:t.right*r,top:t.top*n,bottom:t.bottom*n}}(e.display.measure,i))}else{var d;u>0&&(h=n="right"),i=e.options.lineWrapping&&(d=a.getClientRects()).length>1?d["right"==n?d.length-1:0]:a.getBoundingClientRect()}if(l&&s<9&&!u&&(!i||!i.left&&!i.right)){var p=a.parentNode.getClientRects()[0];i=p?{left:p.left,right:p.left+tn(e.display),top:p.top,bottom:p.bottom}:Fr}for(var g=i.top-t.rect.top,v=i.bottom-t.rect.top,m=(g+v)/2,y=t.view.measure.heights,b=0;bt)&&(i=(o=a-s)-1,t>=a&&(l="right")),null!=i){if(n=e[u+2],s==a&&r==(n.insertLeft?"left":"right")&&(l=r),"left"==r&&0==i)for(;u&&e[u-2]==e[u-3]&&e[u-1].insertLeft;)n=e[2+(u-=3)],l="left";if("right"==r&&i==a-s)for(;u=0&&(r=e[i]).left==r.right;i--);return r}function Ir(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t=n.text.length?(a=n.text.length,u="before"):a<=0&&(a=0,u="after"),!s)return l("before"==u?a-1:a,"before"==u);function c(e,t,r){return l(r?e-1:e,1==s[t].level!=r)}var h=ae(s,a,u),f=se,d=c(a,h,"before"==u);return null!=f&&(d.other=c(a,f,"before"!=u)),d}function Yr(e,t){var r=0;t=st(e.doc,t),e.options.lineWrapping||(r=tn(e.display)*t.ch);var n=Xe(e.doc,t.line),i=Vt(n)+Cr(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function _r(e,t,r,n,i){var o=et(e,t,r);return o.xRel=i,n&&(o.outside=n),o}function $r(e,t,r){var n=e.doc;if((r+=e.display.viewOffset)<0)return _r(n.first,0,null,-1,-1);var i=Ze(n,r),o=n.first+n.size-1;if(i>o)return _r(n.first+n.size-1,Xe(n,o).text.length,null,1,1);t<0&&(t=0);for(var l=Xe(n,i);;){var s=Jr(e,l,i,t,r),a=Et(l,s.ch+(s.xRel>0||s.outside>0?1:0));if(!a)return s;var u=a.find(1);if(u.line==i)return u;l=Xe(n,i=u.line)}}function qr(e,t,r,n){n-=Ur(t);var i=t.text.length,o=le(function(t){return Wr(e,r,t-1).bottom<=n},i,0);return{begin:o,end:i=le(function(t){return Wr(e,r,t).top>n},o,i)}}function Zr(e,t,r,n){return r||(r=Dr(e,t)),qr(e,t,r,Vr(e,t,Wr(e,r,n),"line").top)}function Qr(e,t,r,n){return!(e.bottom<=r)&&(e.top>r||(n?e.left:e.right)>t)}function Jr(e,t,r,n,i){i-=Vt(t);var o=Dr(e,t),l=Ur(t),s=0,a=t.text.length,u=!0,c=ce(t,e.doc.direction);if(c){var h=(e.options.lineWrapping?function(e,t,r,n,i,o,l){var s=qr(e,t,n,l),a=s.begin,u=s.end;/\s/.test(t.text.charAt(u-1))&&u--;for(var c=null,h=null,f=0;f=u||d.to<=a)){var p=1!=d.level,g=Wr(e,n,p?Math.min(u,d.to)-1:Math.max(a,d.from)).right,v=gv)&&(c=d,h=v)}}c||(c=i[i.length-1]);c.fromu&&(c={from:c.from,to:u,level:c.level});return c}:function(e,t,r,n,i,o,l){var s=le(function(s){var a=i[s],u=1!=a.level;return Qr(Xr(e,et(r,u?a.to:a.from,u?"before":"after"),"line",t,n),o,l,!0)},0,i.length-1),a=i[s];if(s>0){var u=1!=a.level,c=Xr(e,et(r,u?a.from:a.to,u?"after":"before"),"line",t,n);Qr(c,o,l,!0)&&c.top>l&&(a=i[s-1])}return a})(e,t,r,o,c,n,i);s=(u=1!=h.level)?h.from:h.to-1,a=u?h.to:h.from-1}var f,d,p=null,g=null,v=le(function(t){var r=Wr(e,o,t);return r.top+=l,r.bottom+=l,!!Qr(r,n,i,!1)&&(r.top<=i&&r.left<=n&&(p=t,g=r),!0)},s,a),m=!1;if(g){var y=n-g.left=w.bottom?1:0}return _r(r,v=oe(t.text,v,1),d,m,n-f)}function en(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Hr){Hr=O("pre",null,"CodeMirror-line-like");for(var t=0;t<49;++t)Hr.appendChild(document.createTextNode("x")),Hr.appendChild(O("br"));Hr.appendChild(document.createTextNode("x"))}N(e.measure,Hr);var r=Hr.offsetHeight/50;return r>3&&(e.cachedTextHeight=r),M(e.measure),r||1}function tn(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=O("span","xxxxxxxxxx"),r=O("pre",[t],"CodeMirror-line-like");N(e.measure,r);var n=t.getBoundingClientRect(),i=(n.right-n.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function rn(e){for(var t=e.display,r={},n={},i=t.gutters.clientLeft,o=t.gutters.firstChild,l=0;o;o=o.nextSibling,++l){var s=e.display.gutterSpecs[l].className;r[s]=o.offsetLeft+o.clientLeft+i,n[s]=o.clientWidth}return{fixedPos:nn(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:r,gutterWidth:n,wrapperWidth:t.wrapper.clientWidth}}function nn(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function on(e){var t=en(e.display),r=e.options.lineWrapping,n=r&&Math.max(5,e.display.scroller.clientWidth/tn(e.display)-3);return function(i){if(Gt(e.doc,i))return 0;var o=0;if(i.widgets)for(var l=0;l=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var r=e.display.view,n=0;nt)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Ct&&Rt(e.doc,t)i.viewFrom?hn(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)hn(e);else if(t<=i.viewFrom){var o=fn(e,r,r+n,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):hn(e)}else if(r>=i.viewTo){var l=fn(e,t,t,-1);l?(i.view=i.view.slice(0,l.index),i.viewTo=l.lineN):hn(e)}else{var s=fn(e,t,t,-1),a=fn(e,r,r+n,1);s&&a?(i.view=i.view.slice(0,s.index).concat(ir(e,s.lineN,a.lineN)).concat(i.view.slice(a.index)),i.viewTo+=n):hn(e)}var u=i.externalMeasured;u&&(r=i.lineN&&t=n.viewTo)){var o=n.view[an(e,t)];if(null!=o.node){var l=o.changes||(o.changes=[]);-1==B(l,r)&&l.push(r)}}}function hn(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function fn(e,t,r,n){var i,o=an(e,t),l=e.display.view;if(!Ct||r==e.doc.first+e.doc.size)return{index:o,lineN:r};for(var s=e.display.viewFrom,a=0;a0){if(o==l.length-1)return null;i=s+l[o].size-t,o++}else i=s-t;t+=i,r+=i}for(;Rt(e.doc,r)!=r;){if(o==(n<0?0:l.length-1))return null;r+=n*l[o-(n<0?1:0)].size,o+=n}return{index:o,lineN:r}}function dn(e){for(var t=e.display.view,r=0,n=0;n=e.display.viewTo||s.to().linet||t==r&&l.to==t)&&(n(Math.max(l.from,t),Math.min(l.to,r),1==l.level?"rtl":"ltr",o),i=!0)}i||n(t,r,"ltr")}(g,r||0,null==n?f:n,function(e,t,i,h){var v="ltr"==i,m=d(e,v?"left":"right"),y=d(t-1,v?"right":"left"),b=null==r&&0==e,w=null==n&&t==f,x=0==h,C=!g||h==g.length-1;if(y.top-m.top<=3){var S=(u?w:b)&&C,L=(u?b:w)&&x?s:(v?m:y).left,k=S?a:(v?y:m).right;c(L,m.top,k-L,m.bottom)}else{var T,M,N,O;v?(T=u&&b&&x?s:m.left,M=u?a:p(e,i,"before"),N=u?s:p(t,i,"after"),O=u&&w&&C?a:y.right):(T=u?p(e,i,"before"):s,M=!u&&b&&x?a:m.right,N=!u&&w&&C?s:y.left,O=u?p(t,i,"after"):a),c(T,m.top,M-T,m.bottom),m.bottom0?t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(r=!r)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function wn(e){e.state.focused||(e.display.input.focus(),Cn(e))}function xn(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,Sn(e))},100)}function Cn(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(ge(e,"focus",e,t),e.state.focused=!0,H(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),a&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),bn(e))}function Sn(e,t){e.state.delayingBlurEvent||(e.state.focused&&(ge(e,"blur",e,t),e.state.focused=!1,T(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function Ln(e){for(var t=e.display,r=t.lineDiv.offsetTop,n=0;n.005||f<-.005)&&($e(i.line,a),kn(i.line),i.rest))for(var d=0;de.display.sizerWidth){var p=Math.ceil(u/tn(e.display));p>e.display.maxLineLength&&(e.display.maxLineLength=p,e.display.maxLine=i.line,e.display.maxLineChanged=!0)}}}}function kn(e){if(e.widgets)for(var t=0;t=l&&(o=Ze(t,Vt(Xe(t,a))-e.wrapper.clientHeight),l=a)}return{from:o,to:Math.max(l,o+1)}}function Mn(e,t){var r=e.display,n=en(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:r.scroller.scrollTop,o=Mr(e),l={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+Sr(r),a=t.tops-n;if(t.topi+o){var c=Math.min(t.top,(u?s:t.bottom)-o);c!=i&&(l.scrollTop=c)}var h=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:r.scroller.scrollLeft,f=Tr(e)-(e.options.fixedGutter?r.gutters.offsetWidth:0),d=t.right-t.left>f;return d&&(t.right=t.left+f),t.left<10?l.scrollLeft=0:t.leftf+h-3&&(l.scrollLeft=t.right+(d?0:10)-f),l}function Nn(e,t){null!=t&&(Dn(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function On(e){Dn(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function An(e,t,r){null==t&&null==r||Dn(e),null!=t&&(e.curOp.scrollLeft=t),null!=r&&(e.curOp.scrollTop=r)}function Dn(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,Wn(e,Yr(e,t.from),Yr(e,t.to),t.margin))}function Wn(e,t,r,n){var i=Mn(e,{left:Math.min(t.left,r.left),top:Math.min(t.top,r.top)-n,right:Math.max(t.right,r.right),bottom:Math.max(t.bottom,r.bottom)+n});An(e,i.scrollLeft,i.scrollTop)}function Hn(e,t){Math.abs(e.doc.scrollTop-t)<2||(r||oi(e,{top:t}),Fn(e,t,!0),r&&oi(e),ei(e,100))}function Fn(e,t,r){t=Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t),(e.display.scroller.scrollTop!=t||r)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function Pn(e,t,r,n){t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),(r?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!n||(e.doc.scrollLeft=t,ai(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function En(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+Sr(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?r:0,docHeight:n,scrollHeight:n+kr(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}var In=function(e,t,r){this.cm=r;var n=this.vert=O("div",[O("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=O("div",[O("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");n.tabIndex=i.tabIndex=-1,e(n),e(i),fe(n,"scroll",function(){n.clientHeight&&t(n.scrollTop,"vertical")}),fe(i,"scroll",function(){i.clientWidth&&t(i.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,l&&s<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};In.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,n=e.nativeBarWidth;if(r){this.vert.style.display="block",this.vert.style.bottom=t?n+"px":"0";var i=e.viewHeight-(t?n:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=r?n+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(r?n:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==n&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:r?n:0,bottom:t?n:0}},In.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},In.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},In.prototype.zeroWidthHack=function(){var e=y&&!d?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new R,this.disableVert=new R},In.prototype.enableZeroWidthBar=function(e,t,r){e.style.pointerEvents="auto",t.set(1e3,function n(){var i=e.getBoundingClientRect();("vert"==r?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.pointerEvents="none":t.set(1e3,n)})},In.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var zn=function(){};function Rn(e,t){t||(t=En(e));var r=e.display.barWidth,n=e.display.barHeight;Bn(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&Ln(e),Bn(e,En(e)),r=e.display.barWidth,n=e.display.barHeight}function Bn(e,t){var r=e.display,n=r.scrollbars.update(t);r.sizer.style.paddingRight=(r.barWidth=n.right)+"px",r.sizer.style.paddingBottom=(r.barHeight=n.bottom)+"px",r.heightForcer.style.borderBottom=n.bottom+"px solid transparent",n.right&&n.bottom?(r.scrollbarFiller.style.display="block",r.scrollbarFiller.style.height=n.bottom+"px",r.scrollbarFiller.style.width=n.right+"px"):r.scrollbarFiller.style.display="",n.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(r.gutterFiller.style.display="block",r.gutterFiller.style.height=n.bottom+"px",r.gutterFiller.style.width=t.gutterWidth+"px"):r.gutterFiller.style.display=""}zn.prototype.update=function(){return{bottom:0,right:0}},zn.prototype.setScrollLeft=function(){},zn.prototype.setScrollTop=function(){},zn.prototype.clear=function(){};var Gn={native:In,null:zn};function Un(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&T(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new Gn[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),fe(t,"mousedown",function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute("cm-not-content","true")},function(t,r){"horizontal"==r?Pn(e,t):Hn(e,t)},e),e.display.scrollbars.addClass&&H(e.display.wrapper,e.display.scrollbars.addClass)}var Vn=0;function Kn(e){var t;e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Vn},t=e.curOp,or?or.ops.push(t):t.ownsGroup=or={ops:[t],delayedCallbacks:[]}}function jn(e){var t=e.curOp;t&&function(e,t){var r=e.ownsGroup;if(r)try{!function(e){var t=e.delayedCallbacks,r=0;do{for(;r=r.viewTo)||r.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new ri(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function Yn(e){var t=e.cm,r=t.display;e.updatedDisplay&&Ln(t),e.barMeasure=En(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Or(t,r.maxLine,r.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(r.scroller.clientWidth,r.sizer.offsetLeft+e.adjustWidthTo+kr(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-Tr(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection())}function _n(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!p){var o=O("div","​",null,"position: absolute;\n top: "+(t.top-r.viewOffset-Cr(e.display))+"px;\n height: "+(t.bottom-t.top+kr(e)+r.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}(t,function(e,t,r,n){var i;null==n&&(n=0),e.options.lineWrapping||t!=r||(r="before"==(t=t.ch?et(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t).sticky?et(t.line,t.ch+1,"before"):t);for(var o=0;o<5;o++){var l=!1,s=Xr(e,t),a=r&&r!=t?Xr(e,r):s,u=Mn(e,i={left:Math.min(s.left,a.left),top:Math.min(s.top,a.top)-n,right:Math.max(s.left,a.left),bottom:Math.max(s.bottom,a.bottom)+n}),c=e.doc.scrollTop,h=e.doc.scrollLeft;if(null!=u.scrollTop&&(Hn(e,u.scrollTop),Math.abs(e.doc.scrollTop-c)>1&&(l=!0)),null!=u.scrollLeft&&(Pn(e,u.scrollLeft),Math.abs(e.doc.scrollLeft-h)>1&&(l=!0)),!l)break}return i}(t,st(n,e.scrollToPos.from),st(n,e.scrollToPos.to),e.scrollToPos.margin));var i=e.maybeHiddenMarkers,o=e.maybeUnhiddenMarkers;if(i)for(var l=0;l=e.display.viewTo)){var r=+new Date+e.options.workTime,n=dt(e,t.highlightFrontier),i=[];t.iter(n.line,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(n.line>=e.display.viewFrom){var l=o.styles,s=o.text.length>e.options.maxHighlightLength?Ue(t.mode,n.state):null,a=ht(e,o,n,!0);s&&(n.state=s),o.styles=a.styles;var u=o.styleClasses,c=a.classes;c?o.styleClasses=c:u&&(o.styleClasses=null);for(var h=!l||l.length!=o.styles.length||u!=c&&(!u||!c||u.bgClass!=c.bgClass||u.textClass!=c.textClass),f=0;!h&&fr)return ei(e,e.options.workDelay),!0}),t.highlightFrontier=n.line,t.modeFrontier=Math.max(t.modeFrontier,n.line),i.length&&qn(e,function(){for(var t=0;t=r.viewFrom&&t.visible.to<=r.viewTo&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo)&&r.renderedView==r.view&&0==dn(e))return!1;ui(e)&&(hn(e),t.dims=rn(e));var i=n.first+n.size,o=Math.max(t.visible.from-e.options.viewportMargin,n.first),l=Math.min(i,t.visible.to+e.options.viewportMargin);r.viewFroml&&r.viewTo-l<20&&(l=Math.min(i,r.viewTo)),Ct&&(o=Rt(e.doc,o),l=Bt(e.doc,l));var s=o!=r.viewFrom||l!=r.viewTo||r.lastWrapHeight!=t.wrapperHeight||r.lastWrapWidth!=t.wrapperWidth;!function(e,t,r){var n=e.display;0==n.view.length||t>=n.viewTo||r<=n.viewFrom?(n.view=ir(e,t,r),n.viewFrom=t):(n.viewFrom>t?n.view=ir(e,t,n.viewFrom).concat(n.view):n.viewFromr&&(n.view=n.view.slice(0,an(e,r)))),n.viewTo=r}(e,o,l),r.viewOffset=Vt(Xe(e.doc,r.viewFrom)),e.display.mover.style.top=r.viewOffset+"px";var u=dn(e);if(!s&&0==u&&!t.force&&r.renderedView==r.view&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo))return!1;var c=function(e){if(e.hasFocus())return null;var t=W();if(!t||!D(e.display.lineDiv,t))return null;var r={activeElt:t};if(window.getSelection){var n=window.getSelection();n.anchorNode&&n.extend&&D(e.display.lineDiv,n.anchorNode)&&(r.anchorNode=n.anchorNode,r.anchorOffset=n.anchorOffset,r.focusNode=n.focusNode,r.focusOffset=n.focusOffset)}return r}(e);return u>4&&(r.lineDiv.style.display="none"),function(e,t,r){var n=e.display,i=e.options.lineNumbers,o=n.lineDiv,l=o.firstChild;function s(t){var r=t.nextSibling;return a&&y&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),r}for(var u=n.view,c=n.viewFrom,h=0;h-1&&(d=!1),ur(e,f,c,r)),d&&(M(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(Je(e.options,c)))),l=f.node.nextSibling}else{var p=vr(e,f,c,r);o.insertBefore(p,l)}c+=f.size}for(;l;)l=s(l)}(e,r.updateLineNumbers,t.dims),u>4&&(r.lineDiv.style.display=""),r.renderedView=r.view,function(e){if(e&&e.activeElt&&e.activeElt!=W()&&(e.activeElt.focus(),e.anchorNode&&D(document.body,e.anchorNode)&&D(document.body,e.focusNode))){var t=window.getSelection(),r=document.createRange();r.setEnd(e.anchorNode,e.anchorOffset),r.collapse(!1),t.removeAllRanges(),t.addRange(r),t.extend(e.focusNode,e.focusOffset)}}(c),M(r.cursorDiv),M(r.selectionDiv),r.gutters.style.height=r.sizer.style.minHeight=0,s&&(r.lastWrapHeight=t.wrapperHeight,r.lastWrapWidth=t.wrapperWidth,ei(e,400)),r.updateLineNumbers=null,!0}function ii(e,t){for(var r=t.viewport,n=!0;(n&&e.options.lineWrapping&&t.oldDisplayWidth!=Tr(e)||(r&&null!=r.top&&(r={top:Math.min(e.doc.height+Sr(e.display)-Mr(e),r.top)}),t.visible=Tn(e.display,e.doc,r),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&ni(e,t);n=!1){Ln(e);var i=En(e);pn(e),Rn(e,i),si(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function oi(e,t){var r=new ri(e,t);if(ni(e,r)){Ln(e),ii(e,r);var n=En(e);pn(e),Rn(e,n),si(e,n),r.finish()}}function li(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+"px"}function si(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+kr(e)+"px"}function ai(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=nn(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=n+"px",l=0;ls.clientWidth,c=s.scrollHeight>s.clientHeight;if(i&&u||o&&c){if(o&&y&&a)e:for(var f=t.target,d=l.view;f!=s;f=f.parentNode)for(var p=0;p=0&&tt(e,n.to())<=0)return r}return-1};var bi=function(e,t){this.anchor=e,this.head=t};function wi(e,t,r){var n=e&&e.options.selectionsMayTouch,i=t[r];t.sort(function(e,t){return tt(e.from(),t.from())}),r=B(t,i);for(var o=1;o0:a>=0){var u=ot(s.from(),l.from()),c=it(s.to(),l.to()),h=s.empty()?l.from()==l.head:s.from()==s.head;o<=r&&--r,t.splice(--o,2,new bi(h?c:u,h?u:c))}}return new yi(t,r)}function xi(e,t){return new yi([new bi(e,t||e)],0)}function Ci(e){return e.text?et(e.from.line+e.text.length-1,$(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function Si(e,t){if(tt(e,t.from)<0)return e;if(tt(e,t.to)<=0)return Ci(t);var r=e.line+t.text.length-(t.to.line-t.from.line)-1,n=e.ch;return e.line==t.to.line&&(n+=Ci(t).ch-t.to.ch),et(r,n)}function Li(e,t){for(var r=[],n=0;n1&&e.remove(s.line+1,p-1),e.insert(s.line+1,m)}sr(e,"change",e,t)}function Ai(e,t,r){!function e(n,i,o){if(n.linked)for(var l=0;ls-(e.cm?e.cm.options.historyEventDelay:500)||"*"==t.origin.charAt(0)))&&(o=function(e,t){return t?(Pi(e.done),$(e.done)):e.done.length&&!$(e.done).ranges?$(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),$(e.done)):void 0}(i,i.lastOp==n)))l=$(o.changes),0==tt(t.from,t.to)&&0==tt(t.from,l.to)?l.to=Ci(t):o.changes.push(Fi(e,t));else{var a=$(i.done);for(a&&a.ranges||zi(e.sel,i.done),o={changes:[Fi(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(r),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=n,i.lastOrigin=i.lastSelOrigin=t.origin,l||ge(e,"historyAdded")}function Ii(e,t,r,n){var i=e.history,o=n&&n.origin;r==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||function(e,t,r,n){var i=t.charAt(0);return"*"==i||"+"==i&&r.ranges.length==n.ranges.length&&r.somethingSelected()==n.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}(e,o,$(i.done),t))?i.done[i.done.length-1]=t:zi(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=r,n&&!1!==n.clearRedo&&Pi(i.undone)}function zi(e,t){var r=$(t);r&&r.ranges&&r.equals(e)||t.push(e)}function Ri(e,t,r,n){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,r),Math.min(e.first+e.size,n),function(r){r.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=r.markedSpans),++o})}function Bi(e){if(!e)return null;for(var t,r=0;r-1&&($(s)[h]=u[h],delete u[h])}}}return n}function Vi(e,t,r,n){if(n){var i=e.anchor;if(r){var o=tt(t,i)<0;o!=tt(r,i)<0?(i=t,t=r):o!=tt(t,r)<0&&(t=r)}return new bi(i,t)}return new bi(r||t,t)}function Ki(e,t,r,n,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),$i(e,new yi([Vi(e.sel.primary(),t,r,i)],0),n)}function ji(e,t,r){for(var n=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o=t.ch:s.to>t.ch))){if(i&&(ge(a,"beforeCursorEnter"),a.explicitlyCleared)){if(o.markedSpans){--l;continue}break}if(!a.atomic)continue;if(r){var h=a.find(n<0?1:-1),f=void 0;if((n<0?c:u)&&(h=ro(e,h,-n,h&&h.line==t.line?o:null)),h&&h.line==t.line&&(f=tt(h,r))&&(n<0?f<0:f>0))return eo(e,h,t,n,i)}var d=a.find(n<0?-1:1);return(n<0?u:c)&&(d=ro(e,d,n,d.line==t.line?o:null)),d?eo(e,d,t,n,i):null}}return t}function to(e,t,r,n,i){var o=n||1,l=eo(e,t,r,o,i)||!i&&eo(e,t,r,o,!0)||eo(e,t,r,-o,i)||!i&&eo(e,t,r,-o,!0);return l||(e.cantEdit=!0,et(e.first,0))}function ro(e,t,r,n){return r<0&&0==t.ch?t.line>e.first?st(e,et(t.line-1)):null:r>0&&t.ch==(n||Xe(e,t.line)).text.length?t.line0)){var c=[a,1],h=tt(u.from,s.from),f=tt(u.to,s.to);(h<0||!l.inclusiveLeft&&!h)&&c.push({from:u.from,to:s.from}),(f>0||!l.inclusiveRight&&!f)&&c.push({from:s.to,to:u.to}),i.splice.apply(i,c),a+=c.length-3}}return i}(e,t.from,t.to);if(n)for(var i=n.length-1;i>=0;--i)lo(e,{from:n[i].from,to:n[i].to,text:i?[""]:t.text,origin:t.origin});else lo(e,t)}}function lo(e,t){if(1!=t.text.length||""!=t.text[0]||0!=tt(t.from,t.to)){var r=Li(e,t);Ei(e,t,r,e.cm?e.cm.curOp.id:NaN),uo(e,t,r,Tt(e,t));var n=[];Ai(e,function(e,r){r||-1!=B(n,e.history)||(po(e.history,t),n.push(e.history)),uo(e,t,null,Tt(e,t))})}}function so(e,t,r){var n=e.cm&&e.cm.state.suppressEdits;if(!n||r){for(var i,o=e.history,l=e.sel,s="undo"==t?o.done:o.undone,a="undo"==t?o.undone:o.done,u=0;u=0;--d){var p=f(d);if(p)return p.v}}}}function ao(e,t){if(0!=t&&(e.first+=t,e.sel=new yi(q(e.sel.ranges,function(e){return new bi(et(e.anchor.line+t,e.anchor.ch),et(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){un(e.cm,e.first,e.first-t,t);for(var r=e.cm.display,n=r.viewFrom;ne.lastLine())){if(t.from.lineo&&(t={from:t.from,to:et(o,Xe(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=Ye(e,t.from,t.to),r||(r=Li(e,t)),e.cm?function(e,t,r){var n=e.doc,i=e.display,o=t.from,l=t.to,s=!1,a=o.line;e.options.lineWrapping||(a=qe(zt(Xe(n,o.line))),n.iter(a,l.line+1,function(e){if(e==i.maxLine)return s=!0,!0}));n.sel.contains(t.from,t.to)>-1&&me(e);Oi(n,t,r,on(e)),e.options.lineWrapping||(n.iter(a,o.line+t.text.length,function(e){var t=Kt(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)}),s&&(e.curOp.updateMaxLine=!0));(function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontierr;n--){var i=Xe(e,n).stateAfter;if(i&&(!(i instanceof ut)||n+i.lookAhead1||!(this.children[0]instanceof vo))){var s=[];this.collapse(s),this.children=[new vo(s)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t50){for(var l=i.lines.length%25+25,s=l;s10);e.parent.maybeSpill()}},iterN:function(e,t,r){for(var n=0;n0||0==l&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=A("span",[o.replacedWith],"CodeMirror-widget"),n.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),n.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(It(e,t.line,t,r,o)||t.line!=r.line&&It(e,r.line,t,r,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");Ct=!0}o.addToHistory&&Ei(e,{from:t,to:r,origin:"markText"},e.sel,NaN);var s,a=t.line,u=e.cm;if(e.iter(a,r.line+1,function(e){u&&o.collapsed&&!u.options.lineWrapping&&zt(e)==u.display.maxLine&&(s=!0),o.collapsed&&a!=t.line&&$e(e,0),function(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}(e,new St(o,a==t.line?t.ch:null,a==r.line?r.ch:null)),++a}),o.collapsed&&e.iter(t.line,r.line+1,function(t){Gt(e,t)&&$e(t,0)}),o.clearOnEnter&&fe(o,"beforeCursorEnter",function(){return o.clear()}),o.readOnly&&(xt=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed&&(o.id=++wo,o.atomic=!0),u){if(s&&(u.curOp.updateMaxLine=!0),o.collapsed)un(u,t.line,r.line+1);else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title)for(var c=t.line;c<=r.line;c++)cn(u,c,"text");o.atomic&&Qi(u.doc),sr(u,"markerAdded",u,o)}return o}xo.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&Kn(e),ye(this,"clear")){var r=this.find();r&&sr(this,"clear",r.from,r.to)}for(var n=null,i=null,o=0;oe.display.maxLineLength&&(e.display.maxLine=u,e.display.maxLineLength=c,e.display.maxLineChanged=!0)}null!=n&&e&&this.collapsed&&un(e,n,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&Qi(e.doc)),e&&sr(e,"markerCleared",e,this,n,i),t&&jn(e),this.parent&&this.parent.clear()}},xo.prototype.find=function(e,t){var r,n;null==e&&"bookmark"==this.type&&(e=1);for(var i=0;i=0;a--)oo(this,n[a]);s?_i(this,s):this.cm&&On(this.cm)}),undo:Jn(function(){so(this,"undo")}),redo:Jn(function(){so(this,"redo")}),undoSelection:Jn(function(){so(this,"undo",!0)}),redoSelection:Jn(function(){so(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,r=0,n=0;n=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,r){e=st(this,e),t=st(this,t);var n=[],i=e.line;return this.iter(e.line,t.line+1,function(o){var l=o.markedSpans;if(l)for(var s=0;s=a.to||null==a.from&&i!=e.line||null!=a.from&&i==t.line&&a.from>=t.ch||r&&!r(a.marker)||n.push(a.marker.parent||a.marker)}++i}),n},getAllMarks:function(){var e=[];return this.iter(function(t){var r=t.markedSpans;if(r)for(var n=0;ne)return t=e,!0;e-=o,++r}),st(this,et(r,t))},indexFromPos:function(e){var t=(e=st(this,e)).ch;if(e.linet&&(t=e.from),null!=e.to&&e.to-1)return t.state.draggingText(e),void setTimeout(function(){return t.display.input.focus()},20);try{var c=e.dataTransfer.getData("Text");if(c){var h;if(t.state.draggingText&&!t.state.draggingText.copy&&(h=t.listSelections()),qi(t.doc,xi(r,r)),h)for(var f=0;f=0;t--)co(e.doc,"",n[t].from,n[t].to,"+delete");On(e)})}function _o(e,t,r){var n=oe(e.text,t+r,r);return n<0||n>e.text.length?null:n}function $o(e,t,r){var n=_o(e,t.ch,r);return null==n?null:new et(t.line,n,r<0?"after":"before")}function qo(e,t,r,n,i){if(e){var o=ce(r,t.doc.direction);if(o){var l,s=i<0?$(o):o[0],a=i<0==(1==s.level)?"after":"before";if(s.level>0||"rtl"==t.doc.direction){var u=Dr(t,r);l=i<0?r.text.length-1:0;var c=Wr(t,u,l).top;l=le(function(e){return Wr(t,u,e).top==c},i<0==(1==s.level)?s.from:s.to-1,l),"before"==a&&(l=_o(r,l,1))}else l=i<0?s.to:s.from;return new et(n,l,a)}}return new et(n,i<0?r.text.length:0,i<0?"before":"after")}Ro.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},Ro.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},Ro.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},Ro.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Ro.default=y?Ro.macDefault:Ro.pcDefault;var Zo={selectAll:no,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),V)},killLine:function(e){return Yo(e,function(t){if(t.empty()){var r=Xe(e.doc,t.head.line).text.length;return t.head.ch==r&&t.head.line0)i=new et(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),et(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var l=Xe(e.doc,i.line-1).text;l&&(i=new et(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+l.charAt(l.length-1),et(i.line-1,l.length-1),i,"+transpose"))}r.push(new bi(i,i))}e.setSelections(r)})},newlineAndIndent:function(e){return qn(e,function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange(e.doc.lineSeparator(),t[r].anchor,t[r].head,"+input");t=e.listSelections();for(var n=0;n-1&&(tt((i=u.ranges[i]).from(),t)<0||t.xRel>0)&&(tt(i.to(),t)>0||t.xRel<0)?function(e,t,r,n){var i=e.display,o=!1,u=Zn(e,function(t){a&&(i.scroller.draggable=!1),e.state.draggingText=!1,pe(i.wrapper.ownerDocument,"mouseup",u),pe(i.wrapper.ownerDocument,"mousemove",c),pe(i.scroller,"dragstart",h),pe(i.scroller,"drop",u),o||(we(t),n.addNew||Ki(e.doc,r,null,null,n.extend),a||l&&9==s?setTimeout(function(){i.wrapper.ownerDocument.body.focus(),i.input.focus()},20):i.input.focus())}),c=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},h=function(){return o=!0};a&&(i.scroller.draggable=!0);e.state.draggingText=u,u.copy=!n.moveOnDrag,i.scroller.dragDrop&&i.scroller.dragDrop();fe(i.wrapper.ownerDocument,"mouseup",u),fe(i.wrapper.ownerDocument,"mousemove",c),fe(i.scroller,"dragstart",h),fe(i.scroller,"drop",u),xn(e),setTimeout(function(){return i.input.focus()},20)}(e,n,t,o):function(e,t,r,n){var i=e.display,o=e.doc;we(t);var l,s,a=o.sel,u=a.ranges;n.addNew&&!n.extend?(s=o.sel.contains(r),l=s>-1?u[s]:new bi(r,r)):(l=o.sel.primary(),s=o.sel.primIndex);if("rectangle"==n.unit)n.addNew||(l=new bi(r,r)),r=sn(e,t,!0,!0),s=-1;else{var c=dl(e,r,n.unit);l=n.extend?Vi(l,c.anchor,c.head,n.extend):c}n.addNew?-1==s?(s=u.length,$i(o,wi(e,u.concat([l]),s),{scroll:!1,origin:"*mouse"})):u.length>1&&u[s].empty()&&"char"==n.unit&&!n.extend?($i(o,wi(e,u.slice(0,s).concat(u.slice(s+1)),0),{scroll:!1,origin:"*mouse"}),a=o.sel):Xi(o,s,l,K):(s=0,$i(o,new yi([l],0),K),a=o.sel);var h=r;function f(t){if(0!=tt(h,t))if(h=t,"rectangle"==n.unit){for(var i=[],u=e.options.tabSize,c=z(Xe(o,r.line).text,r.ch,u),f=z(Xe(o,t.line).text,t.ch,u),d=Math.min(c,f),p=Math.max(c,f),g=Math.min(r.line,t.line),v=Math.min(e.lastLine(),Math.max(r.line,t.line));g<=v;g++){var m=Xe(o,g).text,y=X(m,d,u);d==p?i.push(new bi(et(g,y),et(g,y))):m.length>y&&i.push(new bi(et(g,y),et(g,X(m,p,u))))}i.length||i.push(new bi(r,r)),$i(o,wi(e,a.ranges.slice(0,s).concat(i),s),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var b,w=l,x=dl(e,t,n.unit),C=w.anchor;tt(x.anchor,C)>0?(b=x.head,C=ot(w.from(),x.anchor)):(b=x.anchor,C=it(w.to(),x.head));var S=a.ranges.slice(0);S[s]=function(e,t){var r=t.anchor,n=t.head,i=Xe(e.doc,r.line);if(0==tt(r,n)&&r.sticky==n.sticky)return t;var o=ce(i);if(!o)return t;var l=ae(o,r.ch,r.sticky),s=o[l];if(s.from!=r.ch&&s.to!=r.ch)return t;var a,u=l+(s.from==r.ch==(1!=s.level)?0:1);if(0==u||u==o.length)return t;if(n.line!=r.line)a=(n.line-r.line)*("ltr"==e.doc.direction?1:-1)>0;else{var c=ae(o,n.ch,n.sticky),h=c-l||(n.ch-r.ch)*(1==s.level?-1:1);a=c==u-1||c==u?h<0:h>0}var f=o[u+(a?-1:0)],d=a==(1==f.level),p=d?f.from:f.to,g=d?"after":"before";return r.ch==p&&r.sticky==g?t:new bi(new et(r.line,p,g),n)}(e,new bi(st(o,C),b)),$i(o,wi(e,S,s),K)}}var d=i.wrapper.getBoundingClientRect(),p=0;function g(t){e.state.selectingText=!1,p=1/0,t&&(we(t),i.input.focus()),pe(i.wrapper.ownerDocument,"mousemove",v),pe(i.wrapper.ownerDocument,"mouseup",m),o.history.lastSelOrigin=null}var v=Zn(e,function(t){0!==t.buttons&&ke(t)?function t(r){var l=++p;var s=sn(e,r,!0,"rectangle"==n.unit);if(!s)return;if(0!=tt(s,h)){e.curOp.focus=W(),f(s);var a=Tn(i,o);(s.line>=a.to||s.lined.bottom?20:0;u&&setTimeout(Zn(e,function(){p==l&&(i.scroller.scrollTop+=u,t(r))}),50)}}(t):g(t)}),m=Zn(e,g);e.state.selectingText=m,fe(i.wrapper.ownerDocument,"mousemove",v),fe(i.wrapper.ownerDocument,"mouseup",m)}(e,n,t,o)}(t,n,o,e):Le(e)==r.scroller&&we(e):2==i?(n&&Ki(t.doc,n),setTimeout(function(){return r.input.focus()},20)):3==i&&(S?t.display.input.onContextMenu(e):xn(t)))}}function dl(e,t,r){if("char"==r)return new bi(t,t);if("word"==r)return e.findWordAt(t);if("line"==r)return new bi(et(t.line,0),st(e.doc,et(t.line+1,0)));var n=r(e,t);return new bi(n.from,n.to)}function pl(e,t,r,n){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(t){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;n&&we(t);var l=e.display,s=l.lineDiv.getBoundingClientRect();if(o>s.bottom||!ye(e,r))return Ce(t);o-=s.top-l.viewOffset;for(var a=0;a=i)return ge(e,r,e,Ze(e.doc,o),e.display.gutterSpecs[a].className,t),Ce(t)}}function gl(e,t){return pl(e,t,"gutterClick",!0)}function vl(e,t){xr(e.display,t)||function(e,t){if(!ye(e,"gutterContextMenu"))return!1;return pl(e,t,"gutterContextMenu",!1)}(e,t)||ve(e,t,"contextmenu")||S||e.display.input.onContextMenu(t)}function ml(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),Rr(e)}hl.prototype.compare=function(e,t,r){return this.time+400>e&&0==tt(t,this.pos)&&r==this.button};var yl={toString:function(){return"CodeMirror.Init"}},bl={},wl={};function xl(e,t,r){if(!t!=!(r&&r!=yl)){var n=e.display.dragFunctions,i=t?fe:pe;i(e.display.scroller,"dragstart",n.start),i(e.display.scroller,"dragenter",n.enter),i(e.display.scroller,"dragover",n.over),i(e.display.scroller,"dragleave",n.leave),i(e.display.scroller,"drop",n.drop)}}function Cl(e){e.options.lineWrapping?(H(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(T(e.display.wrapper,"CodeMirror-wrap"),jt(e)),ln(e),un(e),Rr(e),setTimeout(function(){return Rn(e)},100)}function Sl(e,t){var n=this;if(!(this instanceof Sl))return new Sl(e,t);this.options=t=t?I(t):{},I(bl,t,!1);var i=t.value;"string"==typeof i?i=new Mo(i,t.mode,null,t.lineSeparator,t.direction):t.mode&&(i.modeOption=t.mode),this.doc=i;var o=new Sl.inputStyles[t.inputStyle](this),u=this.display=new function(e,t,n,i){var o=this;this.input=n,o.scrollbarFiller=O("div",null,"CodeMirror-scrollbar-filler"),o.scrollbarFiller.setAttribute("cm-not-content","true"),o.gutterFiller=O("div",null,"CodeMirror-gutter-filler"),o.gutterFiller.setAttribute("cm-not-content","true"),o.lineDiv=A("div",null,"CodeMirror-code"),o.selectionDiv=O("div",null,null,"position: relative; z-index: 1"),o.cursorDiv=O("div",null,"CodeMirror-cursors"),o.measure=O("div",null,"CodeMirror-measure"),o.lineMeasure=O("div",null,"CodeMirror-measure"),o.lineSpace=A("div",[o.measure,o.lineMeasure,o.selectionDiv,o.cursorDiv,o.lineDiv],null,"position: relative; outline: none");var u=A("div",[o.lineSpace],"CodeMirror-lines");o.mover=O("div",[u],null,"position: relative"),o.sizer=O("div",[o.mover],"CodeMirror-sizer"),o.sizerWidth=null,o.heightForcer=O("div",null,null,"position: absolute; height: "+G+"px; width: 1px;"),o.gutters=O("div",null,"CodeMirror-gutters"),o.lineGutter=null,o.scroller=O("div",[o.sizer,o.heightForcer,o.gutters],"CodeMirror-scroll"),o.scroller.setAttribute("tabIndex","-1"),o.wrapper=O("div",[o.scrollbarFiller,o.gutterFiller,o.scroller],"CodeMirror"),l&&s<8&&(o.gutters.style.zIndex=-1,o.scroller.style.paddingRight=0),a||r&&m||(o.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(o.wrapper):e(o.wrapper)),o.viewFrom=o.viewTo=t.first,o.reportedViewFrom=o.reportedViewTo=t.first,o.view=[],o.renderedView=null,o.externalMeasured=null,o.viewOffset=0,o.lastWrapHeight=o.lastWrapWidth=0,o.updateLineNumbers=null,o.nativeBarWidth=o.barHeight=o.barWidth=0,o.scrollbarsClipped=!1,o.lineNumWidth=o.lineNumInnerWidth=o.lineNumChars=null,o.alignWidgets=!1,o.cachedCharWidth=o.cachedTextHeight=o.cachedPaddingH=null,o.maxLine=null,o.maxLineLength=0,o.maxLineChanged=!1,o.wheelDX=o.wheelDY=o.wheelStartX=o.wheelStartY=null,o.shift=!1,o.selForContextMenu=null,o.activeTouch=null,o.gutterSpecs=ci(i.gutters,i.lineNumbers),hi(o),n.init(o)}(e,i,o,t);for(var c in u.wrapper.CodeMirror=this,ml(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Un(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new R,keySeq:null,specialChars:null},t.autofocus&&!m&&u.input.focus(),l&&s<11&&setTimeout(function(){return n.display.input.reset(!0)},20),function(e){var t=e.display;fe(t.scroller,"mousedown",Zn(e,fl)),fe(t.scroller,"dblclick",l&&s<11?Zn(e,function(t){if(!ve(e,t)){var r=sn(e,t);if(r&&!gl(e,t)&&!xr(e.display,t)){we(t);var n=e.findWordAt(r);Ki(e.doc,n.anchor,n.head)}}}):function(t){return ve(e,t)||we(t)});fe(t.scroller,"contextmenu",function(t){return vl(e,t)});var r,n={end:0};function i(){t.activeTouch&&(r=setTimeout(function(){return t.activeTouch=null},1e3),(n=t.activeTouch).end=+new Date)}function o(e,t){if(null==t.left)return!0;var r=t.left-e.left,n=t.top-e.top;return r*r+n*n>400}fe(t.scroller,"touchstart",function(i){if(!ve(e,i)&&!function(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}(i)&&!gl(e,i)){t.input.ensurePolled(),clearTimeout(r);var o=+new Date;t.activeTouch={start:o,moved:!1,prev:o-n.end<=300?n:null},1==i.touches.length&&(t.activeTouch.left=i.touches[0].pageX,t.activeTouch.top=i.touches[0].pageY)}}),fe(t.scroller,"touchmove",function(){t.activeTouch&&(t.activeTouch.moved=!0)}),fe(t.scroller,"touchend",function(r){var n=t.activeTouch;if(n&&!xr(t,r)&&null!=n.left&&!n.moved&&new Date-n.start<300){var l,s=e.coordsChar(t.activeTouch,"page");l=!n.prev||o(n,n.prev)?new bi(s,s):!n.prev.prev||o(n,n.prev.prev)?e.findWordAt(s):new bi(et(s.line,0),st(e.doc,et(s.line+1,0))),e.setSelection(l.anchor,l.head),e.focus(),we(r)}i()}),fe(t.scroller,"touchcancel",i),fe(t.scroller,"scroll",function(){t.scroller.clientHeight&&(Hn(e,t.scroller.scrollTop),Pn(e,t.scroller.scrollLeft,!0),ge(e,"scroll",e))}),fe(t.scroller,"mousewheel",function(t){return mi(e,t)}),fe(t.scroller,"DOMMouseScroll",function(t){return mi(e,t)}),fe(t.wrapper,"scroll",function(){return t.wrapper.scrollTop=t.wrapper.scrollLeft=0}),t.dragFunctions={enter:function(t){ve(e,t)||Se(t)},over:function(t){ve(e,t)||(!function(e,t){var r=sn(e,t);if(r){var n=document.createDocumentFragment();vn(e,r,n),e.display.dragCursor||(e.display.dragCursor=O("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),N(e.display.dragCursor,n)}}(e,t),Se(t))},start:function(t){return function(e,t){if(l&&(!e.state.draggingText||+new Date-No<100))Se(t);else if(!ve(e,t)&&!xr(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!f)){var r=O("img",null,null,"position: fixed; left: 0; top: 0;");r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",h&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),t.dataTransfer.setDragImage(r,0,0),h&&r.parentNode.removeChild(r)}}(e,t)},drop:Zn(e,Oo),leave:function(t){ve(e,t)||Ao(e)}};var a=t.input.getField();fe(a,"keyup",function(t){return sl.call(e,t)}),fe(a,"keydown",Zn(e,ll)),fe(a,"keypress",Zn(e,al)),fe(a,"focus",function(t){return Cn(e,t)}),fe(a,"blur",function(t){return Sn(e,t)})}(this),Ho(),Kn(this),this.curOp.forceUpdate=!0,Di(this,i),t.autofocus&&!m||this.hasFocus()?setTimeout(E(Cn,this),20):Sn(this),wl)wl.hasOwnProperty(c)&&wl[c](n,t[c],yl);ui(this),t.finishInit&&t.finishInit(this);for(var d=0;d150)){if(!n)return;r="prev"}}else u=0,r="not";"prev"==r?u=t>o.first?z(Xe(o,t-1).text,null,l):0:"add"==r?u=a+e.options.indentUnit:"subtract"==r?u=a-e.options.indentUnit:"number"==typeof r&&(u=a+r),u=Math.max(0,u);var h="",f=0;if(e.options.indentWithTabs)for(var d=Math.floor(u/l);d;--d)f+=l,h+="\t";if(fl,a=We(t),u=null;if(s&&n.ranges.length>1)if(Tl&&Tl.text.join("\n")==t){if(n.ranges.length%Tl.text.length==0){u=[];for(var c=0;c=0;f--){var d=n.ranges[f],p=d.from(),g=d.to();d.empty()&&(r&&r>0?p=et(p.line,p.ch-r):e.state.overwrite&&!s?g=et(g.line,Math.min(Xe(o,g.line).text.length,g.ch+$(a).length)):s&&Tl&&Tl.lineWise&&Tl.text.join("\n")==t&&(p=g=et(p.line,0)));var v={from:p,to:g,text:u?u[f%u.length]:a,origin:i||(s?"paste":e.state.cutIncoming>l?"cut":"+input")};oo(e.doc,v),sr(e,"inputRead",e,v)}t&&!s&&Al(e,t),On(e),e.curOp.updateInput<2&&(e.curOp.updateInput=h),e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=-1}function Ol(e,t){var r=e.clipboardData&&e.clipboardData.getData("Text");if(r)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||qn(t,function(){return Nl(t,r,0,null,"paste")}),!0}function Al(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var r=e.doc.sel,n=r.ranges.length-1;n>=0;n--){var i=r.ranges[n];if(!(i.head.ch>100||n&&r.ranges[n-1].head.line==i.head.line)){var o=e.getModeAt(i.head),l=!1;if(o.electricChars){for(var s=0;s-1){l=kl(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(Xe(e.doc,i.head.line).text.slice(0,i.head.ch))&&(l=kl(e,i.head.line,"smart"));l&&sr(e,"electricInput",e,i.head.line)}}}function Dl(e){for(var t=[],r=[],n=0;n=t.text.length?(r.ch=t.text.length,r.sticky="before"):r.ch<=0&&(r.ch=0,r.sticky="after");var o=ae(i,r.ch,r.sticky),l=i[o];if("ltr"==e.doc.direction&&l.level%2==0&&(n>0?l.to>r.ch:l.from=l.from&&f>=c.begin)){var d=h?"before":"after";return new et(r.line,f,d)}}var p=function(e,t,n){for(var o=function(e,t){return t?new et(r.line,a(e,1),"before"):new et(r.line,e,"after")};e>=0&&e0==(1!=l.level),u=s?n.begin:a(n.end,-1);if(l.from<=u&&u0?c.end:a(c.begin,-1);return null==v||n>0&&v==t.text.length||!(g=p(n>0?0:i.length-1,n,u(v)))?null:g}(e.cm,s,t,r):$o(s,t,r))){if(n||(l=t.line+r)=e.first+e.size||(t=new et(l,t.ch,t.sticky),!(s=Xe(e,l))))return!1;t=qo(i,e.cm,s,t.line,r)}else t=o;return!0}if("char"==n)a();else if("column"==n)a(!0);else if("word"==n||"group"==n)for(var u=null,c="group"==n,h=e.cm&&e.cm.getHelper(t,"wordChars"),f=!0;!(r<0)||a(!f);f=!1){var d=s.text.charAt(t.ch)||"\n",p=te(d,h)?"w":c&&"\n"==d?"n":!c||/\s/.test(d)?null:"p";if(!c||f||p||(p="s"),u&&u!=p){r<0&&(r=1,a(),t.sticky="after");break}if(p&&(u=p),r>0&&!a(!f))break}var g=to(e,t,o,l,!0);return rt(o,g)&&(g.hitSide=!0),g}function Pl(e,t,r,n){var i,o,l=e.doc,s=t.left;if("page"==n){var a=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),u=Math.max(a-.5*en(e.display),3);i=(r>0?t.bottom:t.top)+r*u}else"line"==n&&(i=r>0?t.bottom+3:t.top-3);for(;(o=$r(e,s,i)).outside;){if(r<0?i<=0:i>=l.height){o.hitSide=!0;break}i+=5*r}return o}var El=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new R,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Il(e,t){var r=Ar(e,t.line);if(!r||r.hidden)return null;var n=Xe(e.doc,t.line),i=Nr(r,n,t.line),o=ce(n,e.doc.direction),l="left";o&&(l=ae(o,t.ch)%2?"right":"left");var s=Pr(i.map,t.ch,l);return s.offset="right"==s.collapse?s.end:s.start,s}function zl(e,t){return t&&(e.bad=!0),e}function Rl(e,t,r){var n;if(t==e.display.lineDiv){if(!(n=e.display.lineDiv.childNodes[r]))return zl(e.clipPos(et(e.display.viewTo-1)),!0);t=null,r=0}else for(n=t;;n=n.parentNode){if(!n||n==e.display.lineDiv)return null;if(n.parentNode&&n.parentNode==e.display.lineDiv)break}for(var i=0;i=t.display.viewTo||o.line=t.display.viewFrom&&Il(t,i)||{node:a[0].measure.map[2],offset:0},c=o.linen.firstLine()&&(l=et(l.line-1,Xe(n.doc,l.line-1).length)),s.ch==Xe(n.doc,s.line).text.length&&s.linei.viewTo-1)return!1;l.line==i.viewFrom||0==(e=an(n,l.line))?(t=qe(i.view[0].line),r=i.view[0].node):(t=qe(i.view[e].line),r=i.view[e-1].node.nextSibling);var a,u,c=an(n,s.line);if(c==i.view.length-1?(a=i.viewTo-1,u=i.lineDiv.lastChild):(a=qe(i.view[c+1].line)-1,u=i.view[c+1].node.previousSibling),!r)return!1;for(var h=n.doc.splitLines(function(e,t,r,n,i){var o="",l=!1,s=e.doc.lineSeparator(),a=!1;function u(){l&&(o+=s,a&&(o+=s),l=a=!1)}function c(e){e&&(u(),o+=e)}function h(t){if(1==t.nodeType){var r=t.getAttribute("cm-text");if(r)return void c(r);var o,f=t.getAttribute("cm-marker");if(f){var d=e.findMarks(et(n,0),et(i+1,0),(v=+f,function(e){return e.id==v}));return void(d.length&&(o=d[0].find(0))&&c(Ye(e.doc,o.from,o.to).join(s)))}if("false"==t.getAttribute("contenteditable"))return;var p=/^(pre|div|p|li|table|br)$/i.test(t.nodeName);if(!/^br$/i.test(t.nodeName)&&0==t.textContent.length)return;p&&u();for(var g=0;g1&&f.length>1;)if($(h)==$(f))h.pop(),f.pop(),a--;else{if(h[0]!=f[0])break;h.shift(),f.shift(),t++}for(var d=0,p=0,g=h[0],v=f[0],m=Math.min(g.length,v.length);dl.ch&&y.charCodeAt(y.length-p-1)==b.charCodeAt(b.length-p-1);)d--,p++;h[h.length-1]=y.slice(0,y.length-p).replace(/^\u200b+/,""),h[0]=h[0].slice(d).replace(/\u200b+$/,"");var x=et(t,d),C=et(a,f.length?$(f).length-p:0);return h.length>1||h[0]||tt(x,C)?(co(n.doc,h,x,C,"+input"),!0):void 0},El.prototype.ensurePolled=function(){this.forceCompositionEnd()},El.prototype.reset=function(){this.forceCompositionEnd()},El.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},El.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()},80))},El.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||qn(this.cm,function(){return un(e.cm)})},El.prototype.setUneditable=function(e){e.contentEditable="false"},El.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||Zn(this.cm,Nl)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},El.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},El.prototype.onContextMenu=function(){},El.prototype.resetPosition=function(){},El.prototype.needsContentAttribute=!0;var Gl=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new R,this.hasSelection=!1,this.composing=null};Gl.prototype.init=function(e){var t=this,r=this,n=this.cm;this.createField(e);var i=this.textarea;function o(e){if(!ve(n,e)){if(n.somethingSelected())Ml({lineWise:!1,text:n.getSelections()});else{if(!n.options.lineWiseCopyCut)return;var t=Dl(n);Ml({lineWise:!0,text:t.text}),"cut"==e.type?n.setSelections(t.ranges,null,V):(r.prevInput="",i.value=t.text.join("\n"),P(i))}"cut"==e.type&&(n.state.cutIncoming=+new Date)}}e.wrapper.insertBefore(this.wrapper,e.wrapper.firstChild),g&&(i.style.width="0px"),fe(i,"input",function(){l&&s>=9&&t.hasSelection&&(t.hasSelection=null),r.poll()}),fe(i,"paste",function(e){ve(n,e)||Ol(e,n)||(n.state.pasteIncoming=+new Date,r.fastPoll())}),fe(i,"cut",o),fe(i,"copy",o),fe(e.scroller,"paste",function(t){if(!xr(e,t)&&!ve(n,t)){if(!i.dispatchEvent)return n.state.pasteIncoming=+new Date,void r.focus();var o=new Event("paste");o.clipboardData=t.clipboardData,i.dispatchEvent(o)}}),fe(e.lineSpace,"selectstart",function(t){xr(e,t)||we(t)}),fe(i,"compositionstart",function(){var e=n.getCursor("from");r.composing&&r.composing.range.clear(),r.composing={start:e,range:n.markText(e,n.getCursor("to"),{className:"CodeMirror-composing"})}}),fe(i,"compositionend",function(){r.composing&&(r.poll(),r.composing.range.clear(),r.composing=null)})},Gl.prototype.createField=function(e){this.wrapper=Hl(),this.textarea=this.wrapper.firstChild},Gl.prototype.prepareSelection=function(){var e=this.cm,t=e.display,r=e.doc,n=gn(e);if(e.options.moveInputWithCursor){var i=Xr(e,r.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),l=t.lineDiv.getBoundingClientRect();n.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+l.top-o.top)),n.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+l.left-o.left))}return n},Gl.prototype.showSelection=function(e){var t=this.cm.display;N(t.cursorDiv,e.cursors),N(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},Gl.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var r=t.getSelection();this.textarea.value=r,t.state.focused&&P(this.textarea),l&&s>=9&&(this.hasSelection=r)}else e||(this.prevInput=this.textarea.value="",l&&s>=9&&(this.hasSelection=null))}},Gl.prototype.getField=function(){return this.textarea},Gl.prototype.supportsTouch=function(){return!1},Gl.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!m||W()!=this.textarea))try{this.textarea.focus()}catch(e){}},Gl.prototype.blur=function(){this.textarea.blur()},Gl.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Gl.prototype.receivedFocus=function(){this.slowPoll()},Gl.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},Gl.prototype.fastPoll=function(){var e=!1,t=this;t.pollingFast=!0,t.polling.set(20,function r(){t.poll()||e?(t.pollingFast=!1,t.slowPoll()):(e=!0,t.polling.set(60,r))})},Gl.prototype.poll=function(){var e=this,t=this.cm,r=this.textarea,n=this.prevInput;if(this.contextMenuPending||!t.state.focused||He(r)&&!n&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=r.value;if(i==n&&!t.somethingSelected())return!1;if(l&&s>=9&&this.hasSelection===i||y&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||n||(n="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var a=0,u=Math.min(n.length,i.length);a1e3||i.indexOf("\n")>-1?r.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},Gl.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Gl.prototype.onKeyPress=function(){l&&s>=9&&(this.hasSelection=null),this.fastPoll()},Gl.prototype.onContextMenu=function(e){var t=this,r=t.cm,n=r.display,i=t.textarea;t.contextMenuPending&&t.contextMenuPending();var o=sn(r,e),u=n.scroller.scrollTop;if(o&&!h){r.options.resetSelectionOnContextMenu&&-1==r.doc.sel.contains(o)&&Zn(r,$i)(r.doc,xi(o),V);var c,f=i.style.cssText,d=t.wrapper.style.cssText,p=t.wrapper.offsetParent.getBoundingClientRect();if(t.wrapper.style.cssText="position: static",i.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-p.top-5)+"px; left: "+(e.clientX-p.left-5)+"px;\n z-index: 1000; background: "+(l?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",a&&(c=window.scrollY),n.input.focus(),a&&window.scrollTo(null,c),n.input.reset(),r.somethingSelected()||(i.value=t.prevInput=" "),t.contextMenuPending=m,n.selForContextMenu=r.doc.sel,clearTimeout(n.detectingSelectAll),l&&s>=9&&v(),S){Se(e);var g=function(){pe(window,"mouseup",g),setTimeout(m,20)};fe(window,"mouseup",g)}else setTimeout(m,50)}function v(){if(null!=i.selectionStart){var e=r.somethingSelected(),o="​"+(e?i.value:"");i.value="⇚",i.value=o,t.prevInput=e?"":"​",i.selectionStart=1,i.selectionEnd=o.length,n.selForContextMenu=r.doc.sel}}function m(){if(t.contextMenuPending==m&&(t.contextMenuPending=!1,t.wrapper.style.cssText=d,i.style.cssText=f,l&&s<9&&n.scrollbars.setScrollTop(n.scroller.scrollTop=u),null!=i.selectionStart)){(!l||l&&s<9)&&v();var e=0,o=function(){n.selForContextMenu==r.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&"​"==t.prevInput?Zn(r,no)(r):e++<10?n.detectingSelectAll=setTimeout(o,500):(n.selForContextMenu=null,n.input.reset())};n.detectingSelectAll=setTimeout(o,200)}}},Gl.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e},Gl.prototype.setUneditable=function(){},Gl.prototype.needsContentAttribute=!1,function(e){var t=e.optionHandlers;function r(r,n,i,o){e.defaults[r]=n,i&&(t[r]=o?function(e,t,r){r!=yl&&i(e,t,r)}:i)}e.defineOption=r,e.Init=yl,r("value","",function(e,t){return e.setValue(t)},!0),r("mode",null,function(e,t){e.doc.modeOption=t,Ti(e)},!0),r("indentUnit",2,Ti,!0),r("indentWithTabs",!1),r("smartIndent",!0),r("tabSize",4,function(e){Mi(e),Rr(e),un(e)},!0),r("lineSeparator",null,function(e,t){if(e.doc.lineSep=t,t){var r=[],n=e.doc.first;e.doc.iter(function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,r.push(et(n,o))}n++});for(var i=r.length-1;i>=0;i--)co(e.doc,t,r[i],et(r[i].line,r[i].ch+t.length))}}),r("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,function(e,t,r){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),r!=yl&&e.refresh()}),r("specialCharPlaceholder",Qt,function(e){return e.refresh()},!0),r("electricChars",!0),r("inputStyle",m?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),r("spellcheck",!1,function(e,t){return e.getInputField().spellcheck=t},!0),r("autocorrect",!1,function(e,t){return e.getInputField().autocorrect=t},!0),r("autocapitalize",!1,function(e,t){return e.getInputField().autocapitalize=t},!0),r("rtlMoveVisually",!w),r("wholeLineUpdateBefore",!0),r("theme","default",function(e){ml(e),fi(e)},!0),r("keyMap","default",function(e,t,r){var n=Xo(t),i=r!=yl&&Xo(r);i&&i.detach&&i.detach(e,n),n.attach&&n.attach(e,i||null)}),r("extraKeys",null),r("configureMouse",null),r("lineWrapping",!1,Cl,!0),r("gutters",[],function(e,t){e.display.gutterSpecs=ci(t,e.options.lineNumbers),fi(e)},!0),r("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?nn(e.display)+"px":"0",e.refresh()},!0),r("coverGutterNextToScrollbar",!1,function(e){return Rn(e)},!0),r("scrollbarStyle","native",function(e){Un(e),Rn(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),r("lineNumbers",!1,function(e,t){e.display.gutterSpecs=ci(e.options.gutters,t),fi(e)},!0),r("firstLineNumber",1,fi,!0),r("lineNumberFormatter",function(e){return e},fi,!0),r("showCursorWhenSelecting",!1,pn,!0),r("resetSelectionOnContextMenu",!0),r("lineWiseCopyCut",!0),r("pasteLinesPerSelection",!0),r("selectionsMayTouch",!1),r("readOnly",!1,function(e,t){"nocursor"==t&&(Sn(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)}),r("disableInput",!1,function(e,t){t||e.display.input.reset()},!0),r("dragDrop",!0,xl),r("allowDropFileTypes",null),r("cursorBlinkRate",530),r("cursorScrollMargin",0),r("cursorHeight",1,pn,!0),r("singleCursorHeightPerLine",!0,pn,!0),r("workTime",100),r("workDelay",100),r("flattenSpans",!0,Mi,!0),r("addModeClass",!1,Mi,!0),r("pollInterval",100),r("undoDepth",200,function(e,t){return e.doc.history.undoDepth=t}),r("historyEventDelay",1250),r("viewportMargin",10,function(e){return e.refresh()},!0),r("maxHighlightLength",1e4,Mi,!0),r("moveInputWithCursor",!0,function(e,t){t||e.display.input.resetPosition()}),r("tabindex",null,function(e,t){return e.display.input.getField().tabIndex=t||""}),r("autofocus",null),r("direction","ltr",function(e,t){return e.doc.setDirection(t)},!0),r("phrases",null)}(Sl),function(e){var t=e.optionHandlers,r=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,r){var n=this.options,i=n[e];n[e]==r&&"mode"!=e||(n[e]=r,t.hasOwnProperty(e)&&Zn(this,t[e])(this,r,i),ge(this,"optionChange",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](Xo(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,r=0;rr&&(kl(this,i.head.line,e,!0),r=i.head.line,n==this.doc.sel.primIndex&&On(this));else{var o=i.from(),l=i.to(),s=Math.max(r,o.line);r=Math.min(this.lastLine(),l.line-(l.ch?0:1))+1;for(var a=s;a0&&Xi(this.doc,n,new bi(o,u[n].to()),V)}}}),getTokenAt:function(e,t){return yt(this,e,t)},getLineTokens:function(e,t){return yt(this,et(e),t,!0)},getTokenTypeAt:function(e){e=st(this.doc,e);var t,r=ft(this,Xe(this.doc,e.line)),n=0,i=(r.length-1)/2,o=e.ch;if(0==o)t=r[2];else for(;;){var l=n+i>>1;if((l?r[2*l-1]:0)>=o)i=l;else{if(!(r[2*l+1]o&&(e=o,i=!0),n=Xe(this.doc,e)}else n=e;return Vr(this,n,{top:0,left:0},t||"page",r||i).top+(i?this.doc.height-Vt(n):0)},defaultTextHeight:function(){return en(this.display)},defaultCharWidth:function(){return tn(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,r,n,i){var o,l,s,a=this.display,u=(e=Xr(this,st(this.doc,e))).bottom,c=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),a.sizer.appendChild(t),"over"==n)u=e.top;else if("above"==n||"near"==n){var h=Math.max(a.wrapper.clientHeight,this.doc.height),f=Math.max(a.sizer.clientWidth,a.lineSpace.clientWidth);("above"==n||e.bottom+t.offsetHeight>h)&&e.top>t.offsetHeight?u=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=h&&(u=e.bottom),c+t.offsetWidth>f&&(c=f-t.offsetWidth)}t.style.top=u+"px",t.style.left=t.style.right="","right"==i?(c=a.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?c=0:"middle"==i&&(c=(a.sizer.clientWidth-t.offsetWidth)/2),t.style.left=c+"px"),r&&(o=this,l={left:c,top:u,right:c+t.offsetWidth,bottom:u+t.offsetHeight},null!=(s=Mn(o,l)).scrollTop&&Hn(o,s.scrollTop),null!=s.scrollLeft&&Pn(o,s.scrollLeft))},triggerOnKeyDown:Qn(ll),triggerOnKeyPress:Qn(al),triggerOnKeyUp:sl,triggerOnMouseDown:Qn(fl),execCommand:function(e){if(Zo.hasOwnProperty(e))return Zo[e].call(null,this)},triggerElectric:Qn(function(e){Al(this,e)}),findPosH:function(e,t,r,n){var i=1;t<0&&(i=-1,t=-t);for(var o=st(this.doc,e),l=0;l0&&l(t.charAt(r-1));)--r;for(;n.5)&&ln(this),ge(this,"refresh",this)}),swapDoc:Qn(function(e){var t=this.doc;return t.cm=null,this.state.selectingText&&this.state.selectingText(),Di(this,e),Rr(this),this.display.input.reset(),An(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,sr(this,"swapDoc",this,t),t}),phrase:function(e){var t=this.options.phrases;return t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:e},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},be(e),e.registerHelper=function(t,n,i){r.hasOwnProperty(t)||(r[t]=e[t]={_global:[]}),r[t][n]=i},e.registerGlobalHelper=function(t,n,i,o){e.registerHelper(t,n,o),r[t]._global.push({pred:i,val:o})}}(Sl);var Ul="iter insert remove copy getEditor constructor".split(" ");for(var Vl in Mo.prototype)Mo.prototype.hasOwnProperty(Vl)&&B(Ul,Vl)<0&&(Sl.prototype[Vl]=function(e){return function(){return e.apply(this.doc,arguments)}}(Mo.prototype[Vl]));return be(Mo),Sl.inputStyles={textarea:Gl,contenteditable:El},Sl.defineMode=function(e){Sl.defaults.mode||"null"==e||(Sl.defaults.mode=e),function(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),Ee[e]=t}.apply(this,arguments)},Sl.defineMIME=function(e,t){Ie[e]=t},Sl.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),Sl.defineMIME("text/plain","null"),Sl.defineExtension=function(e,t){Sl.prototype[e]=t},Sl.defineDocExtension=function(e,t){Mo.prototype[e]=t},Sl.fromTextArea=function(e,t){if((t=t?I(t):{}).value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var r=W();t.autofocus=r==e||null!=e.getAttribute("autofocus")&&r==document.body}function n(){e.value=s.getValue()}var i;if(e.form&&(fe(e.form,"submit",n),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var l=o.submit=function(){n(),o.submit=i,o.submit(),o.submit=l}}catch(e){}}t.finishInit=function(r){r.save=n,r.getTextArea=function(){return e},r.toTextArea=function(){r.toTextArea=isNaN,n(),e.parentNode.removeChild(r.getWrapperElement()),e.style.display="",e.form&&(pe(e.form,"submit",n),t.leaveSubmitMethodAlone||"function"!=typeof e.form.submit||(e.form.submit=i))}},e.style.display="none";var s=Sl(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return s},function(e){e.off=pe,e.on=fe,e.wheelEventPixels=vi,e.Doc=Mo,e.splitLines=We,e.countColumn=z,e.findColumn=X,e.isWordChar=ee,e.Pass=U,e.signal=ge,e.Line=Xt,e.changeEnd=Ci,e.scrollbarModel=Gn,e.Pos=et,e.cmpPos=tt,e.modes=Ee,e.mimeModes=Ie,e.resolveMode=ze,e.getMode=Re,e.modeExtensions=Be,e.extendMode=Ge,e.copyState=Ue,e.startState=Ke,e.innerMode=Ve,e.commands=Zo,e.keyMap=Ro,e.keyName=jo,e.isModifierKey=Vo,e.lookupKey=Uo,e.normalizeKeyMap=Go,e.StringStream=je,e.SharedTextMarker=So,e.TextMarker=xo,e.LineWidget=yo,e.e_preventDefault=we,e.e_stopPropagation=xe,e.e_stop=Se,e.addClass=H,e.contains=D,e.rmClass=T,e.keyNames=Po}(Sl),Sl.version="5.49.2",Sl}); \ No newline at end of file diff --git a/package/ctcgfw/luci-app-adguardhome/root/www/luci-static/resources/codemirror/mode/yaml/yaml.js b/package/ctcgfw/luci-app-adguardhome/root/www/luci-static/resources/codemirror/mode/yaml/yaml.js new file mode 100644 index 0000000000..4a5e499bf6 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/root/www/luci-static/resources/codemirror/mode/yaml/yaml.js @@ -0,0 +1 @@ +!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("yaml",function(){var e=new RegExp("\\b(("+["true","false","on","off","yes","no"].join(")|(")+"))$","i");return{token:function(i,t){var r=i.peek(),n=t.escaped;if(t.escaped=!1,"#"==r&&(0==i.pos||/\s/.test(i.string.charAt(i.pos-1))))return i.skipToEnd(),"comment";if(i.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/))return"string";if(t.literal&&i.indentation()>t.keyCol)return i.skipToEnd(),"string";if(t.literal&&(t.literal=!1),i.sol()){if(t.keyCol=0,t.pair=!1,t.pairStart=!1,i.match(/---/))return"def";if(i.match(/\.\.\./))return"def";if(i.match(/\s*-\s+/))return"meta"}if(i.match(/^(\{|\}|\[|\])/))return"{"==r?t.inlinePairs++:"}"==r?t.inlinePairs--:"["==r?t.inlineList++:t.inlineList--,"meta";if(t.inlineList>0&&!n&&","==r)return i.next(),"meta";if(t.inlinePairs>0&&!n&&","==r)return t.keyCol=0,t.pair=!1,t.pairStart=!1,i.next(),"meta";if(t.pairStart){if(i.match(/^\s*(\||\>)\s*/))return t.literal=!0,"meta";if(i.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i))return"variable-2";if(0==t.inlinePairs&&i.match(/^\s*-?[0-9\.\,]+\s?$/))return"number";if(t.inlinePairs>0&&i.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/))return"number";if(i.match(e))return"keyword"}return!t.pair&&i.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)?(t.pair=!0,t.keyCol=i.indentation(),"atom"):t.pair&&i.match(/^:\s*/)?(t.pairStart=!0,"meta"):(t.pairStart=!1,t.escaped="\\"==r,i.next(),null)},startState:function(){return{pair:!1,pairStart:!1,keyCol:0,inlinePairs:0,inlineList:0,literal:!1,escaped:!1}},lineComment:"#",fold:"indent"}}),e.defineMIME("text/x-yaml","yaml"),e.defineMIME("text/yaml","yaml")}); \ No newline at end of file diff --git a/package/ctcgfw/luci-app-adguardhome/root/www/luci-static/resources/codemirror/theme/dracula.css b/package/ctcgfw/luci-app-adguardhome/root/www/luci-static/resources/codemirror/theme/dracula.css new file mode 100644 index 0000000000..6c708c010c --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/root/www/luci-static/resources/codemirror/theme/dracula.css @@ -0,0 +1 @@ +.cm-s-dracula.CodeMirror,.cm-s-dracula .CodeMirror-gutters{background-color:#282a36 !important;color:#f8f8f2 !important;border:0}.cm-s-dracula .CodeMirror-gutters{color:#282a36}.cm-s-dracula .CodeMirror-cursor{border-left:solid thin #f8f8f0}.cm-s-dracula .CodeMirror-linenumber{color:#6d8a88}.cm-s-dracula .CodeMirror-selected{background:rgba(255,255,255,0.10)}.cm-s-dracula .CodeMirror-line::selection,.cm-s-dracula .CodeMirror-line>span::selection,.cm-s-dracula .CodeMirror-line>span>span::selection{background:rgba(255,255,255,0.10)}.cm-s-dracula .CodeMirror-line::-moz-selection,.cm-s-dracula .CodeMirror-line>span::-moz-selection,.cm-s-dracula .CodeMirror-line>span>span::-moz-selection{background:rgba(255,255,255,0.10)}.cm-s-dracula span.cm-comment{color:#6272a4}.cm-s-dracula span.cm-string,.cm-s-dracula span.cm-string-2{color:#f1fa8c}.cm-s-dracula span.cm-number{color:#bd93f9}.cm-s-dracula span.cm-variable{color:#50fa7b}.cm-s-dracula span.cm-variable-2{color:white}.cm-s-dracula span.cm-def{color:#50fa7b}.cm-s-dracula span.cm-operator{color:#ff79c6}.cm-s-dracula span.cm-keyword{color:#ff79c6}.cm-s-dracula span.cm-atom{color:#bd93f9}.cm-s-dracula span.cm-meta{color:#f8f8f2}.cm-s-dracula span.cm-tag{color:#ff79c6}.cm-s-dracula span.cm-attribute{color:#50fa7b}.cm-s-dracula span.cm-qualifier{color:#50fa7b}.cm-s-dracula span.cm-property{color:#66d9ef}.cm-s-dracula span.cm-builtin{color:#50fa7b}.cm-s-dracula span.cm-variable-3,.cm-s-dracula span.cm-type{color:#ffb86c}.cm-s-dracula .CodeMirror-activeline-background{background:rgba(255,255,255,0.1)}.cm-s-dracula .CodeMirror-matchingbracket{text-decoration:underline;color:white !important} diff --git a/package/ctcgfw/luci-app-adguardhome/root/www/luci-static/resources/twin-bcrypt.min.js b/package/ctcgfw/luci-app-adguardhome/root/www/luci-static/resources/twin-bcrypt.min.js new file mode 100644 index 0000000000..6284357c60 --- /dev/null +++ b/package/ctcgfw/luci-app-adguardhome/root/www/luci-static/resources/twin-bcrypt.min.js @@ -0,0 +1,7 @@ +/* @license + * Twin-Bcrypt 2.2.0 + * https://github.com/fpirsch/twin-bcrypt + * Licence: BSD-3-Clause + */ +!function(r,n){"use strict";function e(r){return y[g]=t.apply(n,r),g++}function t(r){var e=[].slice.call(arguments,1);return function(){"function"==typeof r?r.apply(n,e):new Function(""+r)()}}function o(r){if(m)setTimeout(t(o,r),0);else{var n=y[r];if(n){m=!0;try{n()}finally{a(r),m=!1}}}}function a(r){delete y[r]}function i(){p=function(){var r=e(arguments);return process.nextTick(t(o,r)),r}}function u(){if(r.postMessage&&!r.importScripts){var n=!0,e=r.onmessage;return r.onmessage=function(){n=!1},r.postMessage("","*"),r.onmessage=e,n}}function f(){var n="setImmediate$"+Math.random()+"$",t=function(e){e.source===r&&"string"==typeof e.data&&0===e.data.indexOf(n)&&o(+e.data.slice(n.length))};r.addEventListener?r.addEventListener("message",t,!1):r.attachEvent("onmessage",t),p=function(){var t=e(arguments);return r.postMessage(n+t,"*"),t}}function c(){var r=new MessageChannel;r.port1.onmessage=function(r){var n=r.data;o(n)},p=function(){var n=e(arguments);return r.port2.postMessage(n),n}}function s(){var r=v.documentElement;p=function(){var n=e(arguments),t=v.createElement("script");return t.onreadystatechange=function(){o(n),t.onreadystatechange=null,r.removeChild(t),t=null},r.appendChild(t),n}}function l(){p=function(){var r=e(arguments);return setTimeout(t(o,r),0),r}}if(!r.setImmediate){var p,g=1,y={},m=!1,v=r.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(r);d=d&&d.setTimeout?d:r,"[object process]"==={}.toString.call(r.process)?i():u()?f():r.MessageChannel?c():v&&"onreadystatechange"in v.createElement("script")?s():l(),d.setImmediate=p,d.clearImmediate=a}}(new Function("return this")()),function(r){"object"==typeof exports?r(exports,require("crypto")):r(self.TwinBcrypt={},self.crypto||self.msCrypto)}(function(r,n){"use strict";function e(r){for(var n=unescape(encodeURIComponent(r)),e=n.length,t=new Array(e),o=0;e>o;o++)t[o]=n.charCodeAt(o);return t}function t(r){for(var n=r.length,e=new Array(n),t=0;n>t;t++)e[t]=r.charCodeAt(t);return e}function o(r,n){for(var e,t,o=0,a="";n>o;){if(e=255&r[o++],a+=B[e>>2],e=(3&e)<<4,o>=n){a+=B[e];break}if(t=255&r[o++],e|=t>>4,a+=B[e],e=(15&t)<<2,o>=n){a+=B[e];break}t=255&r[o++],e|=t>>6,a+=B[e],a+=B[63&t]}return a}function a(r){for(var n,e,t=new Array(16),o=0,a=0;;){if(n=D[r.charCodeAt(o++)-46],e=D[r.charCodeAt(o++)-46],t[a++]=255&(n<<2|e>>4),22===o)break;n=e<<4,e=D[r.charCodeAt(o++)-46],t[a++]=255&(n|e>>2),n=e<<6,e=D[r.charCodeAt(o++)-46],t[a++]=255&(n|e)}return t}function i(r){for(var n=r.length,e=new Array(72),t=0,o=0;72>o;)e[o++]=r[t++],t===n&&(t=0);return e}function u(r,n,e){for(var t=0,o=e>>2;tt;)r[n++]=e[t++]<<24|e[t++]<<16|e[t++]<<8|e[t++]}function c(r){function n(n){for(var e=r,t=G>>2,o=t|O,f=n>>2,c=e[f]^e[t],s=e[1|f];o>t;)s^=(e[c>>>24]+e[a|c>>>16&255]^e[i|c>>>8&255])+e[u|255&c]^e[++t],c^=(e[s>>>24]+e[a|s>>>16&255]^e[i|s>>>8&255])+e[u|255&s]^e[++t];e[f]=s^e[S>>2],e[1|f]=c}function e(n){var e;for(r[L>>2]=0,r[L+4>>2]=0,e=0;M>e;e++)r[G>>2|e]^=r[(n>>2)+e];var t,o,f,c,s,l=r;for(e=0;M>e;e+=2){for(t=G>>2,o=t|O,f=L>>2,c=l[f]^l[t],s=l[1|f];o>t;)s^=(l[c>>>24]+l[a|c>>>16&255]^l[i|c>>>8&255])+l[u|255&c]^l[++t],c^=(l[s>>>24]+l[a|s>>>16&255]^l[i|s>>>8&255])+l[u|255&s]^l[++t];l[f]=s^l[S>>2],l[1|f]=c,r[G>>2|e]=l[f],r[G>>2|e+1]=c}for(e=0;T>e;e+=2){for(t=G>>2,o=t|O,f=L>>2,c=l[f]^l[t],s=l[1|f];o>t;)s^=(l[c>>>24]+l[a|c>>>16&255]^l[i|c>>>8&255])+l[u|255&c]^l[++t],c^=(l[s>>>24]+l[a|s>>>16&255]^l[i|s>>>8&255])+l[u|255&s]^l[++t];l[f]=s^l[S>>2],l[1|f]=c,r[e]=l[f],r[1|e]=c}}function t(r,n,t){for(var o=0;t>=o&&!(r>n);o++)e(R),e(j),r++;return r}var o=k>>2,a=o+256|0,i=a+256|0,u=i+256|0;return{encrypt:n,expandLoop:t}}function s(stdlib, foreign, heap) {"use asm";var HEAP32=new stdlib.Uint32Array(heap);var BLOWFISH_NUM_ROUNDS=16;var S_offset=0x0000;var S1_offset=0x0400;var S2_offset=0x0800;var S3_offset=0x0C00;var P_offset=0x1000;var P_last_offset=0x1044;var crypt_ciphertext_offset=0x1048;var LR_offset=0x01060;var password_offset=0x1068;var salt_offset=0x10b0;var P_LEN=18;var S_LEN=1024;function encrypt(offset) {offset=offset|0;var i=0;var n=0;var L=0;var R=0;var imax=0;imax=P_offset|BLOWFISH_NUM_ROUNDS<<2;L=HEAP32[offset>>2]|0;R=HEAP32[offset+4>>2]|0;L=L^HEAP32[P_offset>>2];for (i=P_offset; (i|0)<(imax|0);) {i=(i+4)>>>0;R=R^(((HEAP32[(L>>>22)>>2]>>>0) +(HEAP32[(S1_offset|(L>>>14&0x3ff))>>2]>>>0) ^(HEAP32[(S2_offset|(L>>>6&0x3ff))>>2])) +(HEAP32[(S3_offset|(L<<2&0x3ff))>>2]>>>0))^HEAP32[i>>2];i=(i+4)>>>0;L=L^(((HEAP32[(R>>>22)>>2]>>>0) +(HEAP32[(S1_offset|(R>>>14&0x3ff))>>2]>>>0) ^(HEAP32[(S2_offset|(R>>>6&0x3ff))>>2])) +(HEAP32[(S3_offset|(R<<2&0x3ff))>>2]>>>0))^HEAP32[i>>2];}HEAP32[offset>>2]=R^HEAP32[P_last_offset>>2];HEAP32[(offset+4)>>2]=L;}function expandKey(offset) {offset=offset|0;var i=0;var off=0;off=P_offset|0;for (i=0; (i|0)<(P_LEN|0); i=(i+1)|0) {HEAP32[off>>2]=HEAP32[off>>2]^HEAP32[offset>>2];offset=(offset+4)|0;off=(off+4)|0;}HEAP32[LR_offset>>2]=0;HEAP32[LR_offset+4>>2]=0;off=P_offset;for (i=0; (i|0)<(P_LEN|0); i=(i+2)|0) {encrypt(LR_offset);HEAP32[off>>2]=HEAP32[LR_offset>>2];HEAP32[off+4>>2]=HEAP32[LR_offset+4>>2];off=(off+8)|0;}off=S_offset;for (i=0; (i|0)<(S_LEN|0); i=(i+2)|0) {encrypt(LR_offset);HEAP32[off>>2]=HEAP32[LR_offset>>2];HEAP32[off+4>>2]=HEAP32[LR_offset+4>>2];off=(off+8)|0;}}function expandLoop(i, counterEnd, maxIterations) {i=i|0;counterEnd=counterEnd|0;maxIterations=maxIterations|0;var j=0;for (j=0; (j|0) <= (maxIterations|0); j=(j+1)|0) {if ((i>>>0)>(counterEnd>>>0)) break;expandKey(password_offset);expandKey(salt_offset);i=(i+1)>>>0;}return i|0;}return {encrypt: encrypt,expandLoop: expandLoop};} +function l(r,n,e,t){var o,a,i,u=L>>2,f=u+1;for(t[u]=0,t[f]=0,a=0,o=0;M>o;o++)i=n[a++]<<24|n[a++]<<16|n[a++]<<8|n[a++],t[G>>2|o]^=i;for(a=0,o=0;M>o;o+=2)i=r[a++]<<24|r[a++]<<16|r[a++]<<8|r[a++],a&=65295,t[u]^=i,i=r[a++]<<24|r[a++]<<16|r[a++]<<8|r[a++],a&=65295,t[f]^=i,e.encrypt(L),t[G>>2|o]=t[u],t[G>>2|o+1]=t[f];var c=k>>2;for(o=0;T>o;o+=2)i=r[a++]<<24|r[a++]<<16|r[a++]<<8|r[a++],a&=65295,t[u]^=i,i=r[a++]<<24|r[a++]<<16|r[a++]<<8|r[a++],a&=65295,t[f]^=i,e.encrypt(L),t[c|o]=t[u],t[c|o+1]=t[f]}function p(r,n,e,t,o,a,i){for(var u=e;t>=u;){if(u=r.expandLoop(u,t,o),a){var f=a(u/(t+1));if(f===!1)return}if(u>t){if(i)return void setImmediate(g.bind(null,r,n,i));return}if(i)return void setImmediate(p.bind(null,r,n,u,t,o,a,i))}}function g(r,n,e){u(n,x,F);var t;for(t=0;64>t;t++)r.encrypt(F+0),r.encrypt(F+8),r.encrypt(F+16);var o,a=0,i=x.length,f=new Array(4*i);for(t=0;i>t;t++)o=n[(F>>2)+t],f[a++]=o>>24,f[a++]=o>>16&255,f[a++]=o>>8&255,f[a++]=255&o;return e&&e(f),f}function y(r,n){return r+o(n,23)}function m(n,o,m,v){var d,h=o.substr(0,29),w=+o.substr(4,2),A=o.substr(7,22);if("string"==typeof n)d=r.encodingMode===r.ENCODING_UTF8?e(n):t(n);else if(Array.isArray(n))d=n.map(function(r){return 255&r});else{if(!(n instanceof Uint8Array))throw new Error("Incorrect arguments");d=Array.prototype.slice.call(n)}d.push(0);var b,E,N=a(A,C),O=31>w?1<>2,N),f(b,R>>2,d),l(N,d,E,b),v?void p(E,b,0,M,T,m,function(r){v(y(h,r))}):(p(E,b,0,M,T,m),y(h,g(E,b)))}function v(r){if(!b)throw new Error("No cryptographically secure pseudorandom number generator available.");if(null==r&&(r=N),r=0|+r,isNaN(r)||4>r||r>31)throw new Error("Invalid cost parameter.");var n="$2y$";return 10>r&&(n+="0"),n+=r+"$",n+=o(b(C),C)}function d(r,n,e){if(n&&"number"!=typeof n){if("string"!=typeof n||!z.test(n))throw new Error("Invalid salt")}else n=v(n);return m(r,n,e)}function h(r,n,e,t){if(arguments.length<2)throw new Error("Incorrect arguments");if(2===arguments.length?(t=n,n=e=null):3===arguments.length&&(t=e,e=null,"function"==typeof n&&(e=n,n=null)),n&&"number"!=typeof n){if("string"!=typeof n||!z.test(n))throw new Error("Invalid salt")}else n=v(n);if(!t||"function"!=typeof t)throw new Error("No callback function was given.");m(r,n,e,t)}function w(r,n){if("string"!=typeof n||!Z.test(n))throw new Error("Incorrect arguments");var e=n.substr(0,n.length-31),t=d(r,e);return t===n}function A(r,n,e,t){if("string"!=typeof n||!Z.test(n))throw new Error("Incorrect arguments");if(t||(t=e,e=null),!t||"function"!=typeof t)throw new Error("No callback function was given.");var o=n.substr(0,n.length-31);h(r,o,e,function(r){t(r===n)})}var b,E="undefined"!=typeof InstallTrigger,I=E;n&&(b=n.randomBytes,n.getRandomValues&&(b=function(r){var e=new Uint8Array(r);return n.getRandomValues(e)}));var C=16,N=10,O=16,$=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],U=[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946,1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055,3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504,976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462],M=$.length,T=U.length,x=[1332899944,1700884034,1701343084,1684370003,1668446532,1869963892],k=0,G=4096,S=4164,F=4168,L=4192,R=4200,j=4272,B="./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",D=[0,1,54,55,56,57,58,59,60,61,62,63,-1,-1,-1,-1,-1,-1,-1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,-1,-1,-1,-1,-1,-1,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,-1,-1,-1,-1,-1],z=/^\$2[ay]\$(0[4-9]|[12][0-9]|3[01])\$[.\/A-Za-z0-9]{21}[.Oeu]/,Z=/^\$2[ay]\$(0[4-9]|[12][0-9]|3[01])\$[.\/A-Za-z0-9]{21}[.Oeu][.\/A-Za-z0-9]{30}[.CGKOSWaeimquy26]$/;r.genSalt=v,r.hashSync=d,r.hash=h,r.compareSync=w,r.compare=A,r.ENCODING_UTF8=0,r.ENCODING_RAW=1,r.encodingMode=r.ENCODING_UTF8,r.cryptoRNG=!!b,r.randomBytes=b,r.defaultCost=N,r.version="2.2.0"}); \ No newline at end of file diff --git a/package/ctcgfw/luci-app-airwhu/Makefile b/package/ctcgfw/luci-app-airwhu/Makefile new file mode 100644 index 0000000000..1b98b587d5 --- /dev/null +++ b/package/ctcgfw/luci-app-airwhu/Makefile @@ -0,0 +1,51 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=luci-app-airwhu +PKG_VERSION=1.0 +PKG_RELEASE:=1 + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) + +include $(INCLUDE_DIR)/package.mk + +define Package/luci-app-airwhu + SECTION:=luci + CATEGORY:=LuCI + SUBMENU:=3. Applications + DEPENDS:=+mentohust +kmod-ipt-nat6 + TITLE:=luci-app-airwhu + PKGARCH:=all +endef + +define Package/luci-app-airwhu/description + LuCI web-interface for Ruijie 802.1X Client with IPv6 NAT. +endef + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) + $(CP) ./* $(PKG_BUILD_DIR)/ + po2lmo $(PKG_BUILD_DIR)/po/airwhu.zh-cn.po $(PKG_BUILD_DIR)/po/airwhu.zh-cn.lmo +endef + +define Build/Compile +endef + +define Package/luci-app-airwhu/install + $(INSTALL_DIR) $(1)/etc/config + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_DIR) $(1)/etc/hotplug.d/iface + $(INSTALL_DIR) $(1)/bin + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/i18n + + $(INSTALL_CONF) ./files/root/etc/config/airwhu $(1)/etc/config/airwhu + $(INSTALL_BIN) ./files/root/etc/init.d/mentohust $(1)/etc/init.d/mentohust + $(INSTALL_BIN) ./files/root/etc/hotplug.d/iface/99-ipv6nat $(1)/etc/hotplug.d/iface/99-ipv6nat + $(INSTALL_BIN) ./files/root/bin/ipv6masq.sh $(1)/bin/ipv6masq.sh + $(INSTALL_DATA) ./files/root/usr/lib/lua/luci/model/cbi/airwhu.lua $(1)/usr/lib/lua/luci/model/cbi/airwhu.lua + $(INSTALL_DATA) ./files/root/usr/lib/lua/luci/controller/airwhu.lua $(1)/usr/lib/lua/luci/controller/airwhu.lua + $(INSTALL_DATA) $(PKG_BUILD_DIR)/po/airwhu.zh-cn.lmo $(1)/usr/lib/lua/luci/i18n/airwhu.zh-cn.lmo +endef + +$(eval $(call BuildPackage,luci-app-airwhu)) diff --git a/package/ctcgfw/luci-app-airwhu/files/root/bin/ipv6masq.sh b/package/ctcgfw/luci-app-airwhu/files/root/bin/ipv6masq.sh new file mode 100755 index 0000000000..c04bb7c716 --- /dev/null +++ b/package/ctcgfw/luci-app-airwhu/files/root/bin/ipv6masq.sh @@ -0,0 +1,41 @@ +#!/bin/sh /etc/rc.common +#Author:KyleRicardo +#Email:shaoyz714@126.com + +action=$1 + +if [ "$action"x = "install"x ]; then + uci delete network.globals.ula_prefix + + uci set network.wan6.peerdns='0' + uci set network.wan6.dns='2001:da8:202:10::36' + + uci delete network.lan.ip6assign + uci set network.lan.ip6addr='BABE:BABE:BABE:BABE::1/64' + uci set network.lan.ip6prefix='BABE:BABE:BABE:BABE::/64' + + uci set dhcp.lan.ra_management='1' + uci set dhcp.lan.ra_default='1' + + uci set $(uci show firewall|grep Allow-ICMPv6-Forward|sed -e 's/.name[^ ]*'//).enabled='0' + + uci commit + + +elif [ "$action"x = "uninstall"x ]; then + uci set network.globals.ula_prefix='fdad:91b7:54bb::/48' + + uci delete network.wan6.peerdns='0' + uci delete network.wan6.dns='2001:da8:202:10::36' + + uci set network.lan.ip6assign='60' + uci delete network.lan.ip6addr='BABE:BABE:BABE:BABE::1/64' + uci delete network.lan.ip6prefix='BABE:BABE:BABE:BABE::/64' + + uci delete dhcp.lan.ra_management='1' + uci delete dhcp.lan.ra_default='1' + + uci delete $(uci show firewall|grep Allow-ICMPv6-Forward|sed -e 's/.name[^ ]*'//).enabled + + uci commit +fi diff --git a/package/ctcgfw/luci-app-airwhu/files/root/etc/config/airwhu b/package/ctcgfw/luci-app-airwhu/files/root/etc/config/airwhu new file mode 100644 index 0000000000..734dc8539a --- /dev/null +++ b/package/ctcgfw/luci-app-airwhu/files/root/etc/config/airwhu @@ -0,0 +1,25 @@ + +config switch + option enableauth + option startwithboot + option enableipv6 +config auth + option Username + option Password + option ifname + option IP + option Mask + option Gateway + option DNS + option PingHost + option Timeout + option EchoInterval + option RestartWait + option MaxFail + option StartMode + option DHCPMode + option DaemonMode + option ShowNotify + option Version + option DataFile + option DHCPScript diff --git a/package/ctcgfw/luci-app-airwhu/files/root/etc/hotplug.d/iface/99-ipv6nat b/package/ctcgfw/luci-app-airwhu/files/root/etc/hotplug.d/iface/99-ipv6nat new file mode 100755 index 0000000000..2d7230b37b --- /dev/null +++ b/package/ctcgfw/luci-app-airwhu/files/root/etc/hotplug.d/iface/99-ipv6nat @@ -0,0 +1,56 @@ +#!/bin/sh /etc/rc.common +#Author:KyleRicardo +#Email:shaoyz714@126.com + + +[ "$ACTION" = ifup ] || exit 0 +iface=wan6 +[ -z "$iface" -o "$INTERFACE" = "$iface" ] || exit 0 +ip -6 route add `ip -6 route show default|sed -e 's/from [^ ]* //'` +logger -t IPv6 "Add IPv6 default route." + +MAX_TRIES=99 + +WAN6_NAME="wan6" + +WAN6_INTERFACE=$(uci get "network.$WAN6_NAME.ifname") +#eth0.2 by default + +LAN_IP6PREFIX=$(uci get network.lan.ip6prefix) +#e.g. aaaa:bbbb:cccc:dddd::/64 + +#LAN_ULA_PREFIX=$(uci get network.globals.ula_prefix) +#e.g. ddc2:d512:65f5::/48 + +PROBE=0 + +COUNT=1 + +while [ $PROBE -eq 0 ] +do +if [ $COUNT -gt $MAX_TRIES ] +then +logger -t NAT6 "No IPv6 route found (reached retry limit $MAX_TRIES times)" && exit 1 +fi +sleep 5 +logger -t NAT6 "Probing IPv6 route ($COUNT time)" +COUNT=$((COUNT+1)) +PROBE=$(route -A inet6 | grep -c '::/0') +done + +#ip6tables -t nat -I POSTROUTING -s "$LAN_ULA_PREFIX" -o "$WAN6_INTERFACE" -j MASQUERADE +ip6tables -t nat -I POSTROUTING -s "$LAN_IP6PREFIX" -o "$WAN6_INTERFACE" -j MASQUERADE + +#WAN6_GATEWAY=$(route -A inet6 -e | grep "$WAN6_INTERFACE" | awk '/::\/0/{print $2; exit}') +#get gateway from routing table. !!!Caution!!! May not work ! +WAN6_GATEWAY=$(ifconfig eth0.2 | grep 'Global' | awk '{print $3}'| awk -F':' '{print $1":"$2":"$3":"$4"::1"}') +#caculate gateway from wan ipv6 +#WAN6_GATEWAY=$(tracepath6 -n tv.byr.cn | grep ' 1: ' | awk 'NR==1 {print $2}') +#opkg install iputils-tracepath6 . change tv.byr.cn for faster site. e.g. ipv6.bjtu.edu.cn + +#route -A inet6 add 2000::/3 gw "$WAN6_GATEWAY" dev "$WAN6_INTERFACE" +route -A inet6 add default gw "$WAN6_GATEWAY" dev "$WAN6_INTERFACE" + +logger -t NAT6 "Done with IPv6 settings" + + diff --git a/package/ctcgfw/luci-app-airwhu/files/root/etc/init.d/mentohust b/package/ctcgfw/luci-app-airwhu/files/root/etc/init.d/mentohust new file mode 100755 index 0000000000..cf622808ee --- /dev/null +++ b/package/ctcgfw/luci-app-airwhu/files/root/etc/init.d/mentohust @@ -0,0 +1,49 @@ +#!/bin/sh /etc/rc.common +#Author:KyleRicardo +#Email:shaoyz714@126.com + +START=65 +STOP=10 + +start() +{ +if [ $(uci get airwhu.@switch[0].enableauth) ] ; +then + local Username=$(uci get airwhu.@auth[0].Username) + local Password=$(uci get airwhu.@auth[0].Password) + local ifname=$(uci get airwhu.@auth[0].ifname) + local IP=$(uci get airwhu.@auth[0].IP) + local Mask=$(uci get airwhu.@auth[0].Mask) + local Gateway=$(uci get airwhu.@auth[0].Gateway) + local DNS=$(uci get airwhu.@auth[0].DNS) + local PingHost=$(uci get airwhu.@auth[0].PingHost) + local Timeout=$(uci get airwhu.@auth[0].Timeout) + local EchoInterval=$(uci get airwhu.@auth[0].EchoInterval) + local RestartWait=$(uci get airwhu.@auth[0].RestartWait) + local MaxFail=$(uci get airwhu.@auth[0].MaxFail) + local StartMode=$(uci get airwhu.@auth[0].StartMode) + local DHCPMode=$(uci get airwhu.@auth[0].DHCPMode) + local DaemonMode=$(uci get airwhu.@auth[0].DaemonMode) + local ShowNotify=$(uci get airwhu.@auth[0].ShowNotify) + local Version=$(uci get airwhu.@auth[0].Version) + local DataFile=$(uci get airwhu.@auth[0].DataFile) + local DHCPScript=$(uci get airwhu.@auth[0].DHCPScript) + mentohust -u$Username -p$Password -n$ifname -b$DaemonMode -a$StartMode -d$DaemonMode -c"$DHCPScript" -w>/dev/null 2>&1 + #Temporarily designed only for whu. To be continued... +else + stop +fi + +} + +stop() +{ + sync + mentohust -k >/dev/null 2>&1 +} + +restart() +{ + stop + start +} diff --git a/package/ctcgfw/luci-app-airwhu/files/root/usr/lib/lua/luci/controller/airwhu.lua b/package/ctcgfw/luci-app-airwhu/files/root/usr/lib/lua/luci/controller/airwhu.lua new file mode 100644 index 0000000000..15d9239680 --- /dev/null +++ b/package/ctcgfw/luci-app-airwhu/files/root/usr/lib/lua/luci/controller/airwhu.lua @@ -0,0 +1,5 @@ +module("luci.controller.airwhu", package.seeall) + +function index() + entry({"admin", "services", "AirWHU"}, cbi("airwhu"), _("AirWHU"), 100) + end diff --git a/package/ctcgfw/luci-app-airwhu/files/root/usr/lib/lua/luci/model/cbi/airwhu.lua b/package/ctcgfw/luci-app-airwhu/files/root/usr/lib/lua/luci/model/cbi/airwhu.lua new file mode 100644 index 0000000000..d3cdbde505 --- /dev/null +++ b/package/ctcgfw/luci-app-airwhu/files/root/usr/lib/lua/luci/model/cbi/airwhu.lua @@ -0,0 +1,115 @@ +--[[ + +LuCI - Lua Configuration Interface +LICENSE under GPLv3. +Copyright 2017 KyleRicardo[W.B.L.E. TeAm] + +]] +-- +require("luci.sys") +require("luci.tools.webadmin") + +local IsOnAir = (luci.sys.call("pidof mentohust > /dev/null") == 0) +if IsOnAir then + state_msg = "" .. translate("Running") .. "" +else + state_msg = "" .. translate("Not Running") .. "" +end + +m = Map("airwhu", translate("AirWHU"), translate("Configure Ruijie 802.1X client with IPv6 NAT based on Masquerade.") .. "

" .. translate("Status") .. " : " .. state_msg) + +s = m:section(TypedSection, "switch", translate("Global Switch"), translate("Configure global 802.1X Authentication and IPv6-NAT on-off.")) +s.addremove = false +s.anonymous = true + +s:option(Flag, "enableauth", translate("Enable 802.1X Auth"), translate("Enable or disable Ruijie 802.1X authentication.")) +tmp = s:option(Flag, "startwithboot", translate("Start with boot"), translate("Start Ruijie 802.1X Authentication based on MentoHUST when the router is booting.")) +tmp:depends("enableauth","1") +s:option(Flag, "enableipv6", translate("Enable IPv6 NAT"), translate("Enable IPv6 NAT pass-through based on ip6tables MASQUERADE.")) + +s = m:section(TypedSection, "auth", translate("Config Authentication"), translate("The options below are all of MentoHUST's arguments.")) +s.anonymous = true +s.addremove = false + +ur = s:option(Value, "Username", translate("Username")) +ur.rmempty = false + +pw = s:option(Value, "Password", translate("Password")) +pw.password = true +pw.rmempty = false + +wan_dev = luci.sys.exec("uci get network.wan.ifname") +wan_dev = string.sub(wan_dev,1,string.len(wan_dev)-1) +ifname = s:option(ListValue, "ifname", translate("Interfaces")) +ifname:value(wan_dev) + +s:option(Value, "IP", translate("IP"), translate("default to localhost's IP")).default = "0.0.0.0" + +s:option(Value, "Mask", translate("Netmask"), translate("default to localhost's netmask")).default = "255.255.255.0" + +s:option(Value, "Gateway", translate("Gateway"), translate("default to 0.0.0.0")).default = "0.0.0.0" + +s:option(Value, "DNS", translate("DNS"), translate("default to 0.0.0.0")).default = "0.0.0.0" + +s:option(Value, "PingHost", translate("Ping host"), translate("default to 0.0.0.0,i.e. disable this function")).default = "0.0.0.0" + +s:option(Value, "Timeout", translate("Authenticate timeout(s)"), translate("default to 8s")).default = "8" + +s:option(Value, "EchoInterval", translate("Heartbeat timeout(s)"), translate("default to 30s")).default = "30" + +s:option(Value, "RestartWait", translate("Timeout on failure(s)"), translate("default to 15s")).default = "15" + +s:option(Value, "MaxFail", translate("Max failure times"), translate("0 means no limit,default to 8")).default = "8" + +t = s:option(ListValue, "StartMode", translate("mulcast address"), translate("default to 1")) +t:value("0", translate("0(standard)")) +t:value("1", translate("1(ruijjie)")) +t:value("2", translate("2(saier)")) +t.default = "1" + +t = s:option(ListValue, "DHCPMode", translate("DHCP type"), translate("default to 1")) +t:value("0", translate("0(not in used)")) +t:value("1", translate("1(secondary authenticate)")) +t:value("2", translate("2(post authenticate)")) +t:value("3", translate("3(pre authenticate)")) +t.default = "1" + +t = s:option(ListValue, "DaemonMode", translate("run in daemon mode"), translate("default to 3")) +t:value("0", translate("0(no)")) +t:value("1", translate("1(yes,turn off output)")) +t:value("2", translate("2(yes,persevere output)")) +t:value("3", translate("3(yes,output to file)")) +t.default = "3" + +s:option(Value, "ShowNotify", translate("display notification"), translate("0(no),1-20(yes),default to 0")).default = "0" + +s:option(Value, "Version", translate("client version"), translate("default to 0.00,compatible with xrgsu")).default = "0.00" + +tmp = s:option(Value, "DataFile", translate("customized data file"), translate("not in used by default")) +tmp.rmempty = true + +script = s:option(Value, "DHCPScript", translate("DHCP script"), translate("use dhclient by default")) +script.default = "udhcpc -i "..wan_dev + +local apply = luci.http.formvalue("cbi.apply") +if apply then + if luci.sys.exec("uci get airwhu.@switch[0].enableauth") then + luci.sys.exec("/etc/init.d/mentohust restart") + else + luci.sys.exec("/etc/init.d/mentohust stop") + end + + if luci.sys.exec("uci get airwhu.@switch[0].startwithboot") then + luci.sys.exec("/etc/init.d/mentohust enable") + else + luci.sys.exec("/etc/init.d/mentohust disable") + end + + if luci.sys.exec("uci get airwhu.@switch[0].enableipv6") then + luci.sys.exec("sh /bin/ipv6masq.sh install") + else + luci.sys.exec("sh /bin/ipv6masq.sh uninstall") + end +end + +return m diff --git a/package/ctcgfw/luci-app-airwhu/po/airwhu.zh-cn.po b/package/ctcgfw/luci-app-airwhu/po/airwhu.zh-cn.po new file mode 100644 index 0000000000..8cc68762cc --- /dev/null +++ b/package/ctcgfw/luci-app-airwhu/po/airwhu.zh-cn.po @@ -0,0 +1,258 @@ +msgid "" +msgstr "" +"Project-Id-Version: airwhu\n" +"POT-Creation-Date: 2017-05-11 19:39+0800\n" +"PO-Revision-Date: 2017-05-11 19:40+0800\n" +"Last-Translator: KyleRicardo \n" +"Language-Team: [W.B.L.E. TeAm] \n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.8\n" +"X-Poedit-Basepath: ../files\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-SearchPath-0: .\n" + +#: root/usr/lib/lua/luci/controller/airwhu.lua:4 +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:19 +msgid "AirWHU" +msgstr "AirWHU" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:14 +msgid "Running" +msgstr "运行中" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:16 +msgid "Not Running" +msgstr "未运行" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:19 +msgid "Configure Ruijie 802.1X client with IPv6 NAT based on Masquerade." +msgstr "配置基于IPv6 Masquerade技术的锐捷802.1X认证网络。" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:19 +msgid "Status" +msgstr "状态" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:21 +msgid "Global Switch" +msgstr "全局开关" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:21 +msgid "Configure global 802.1X Authentication and IPv6-NAT on-off." +msgstr "配置全局802.1X认证与IPv6 NAT开关。" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:25 +msgid "Enable 802.1X Auth" +msgstr "开启锐捷认证" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:25 +msgid "Enable or disable Ruijie 802.1X authentication." +msgstr "打开或关闭锐捷802.1X认证。" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:26 +msgid "Start with boot" +msgstr "开机启动" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:26 +msgid "" +"Start Ruijie 802.1X Authentication based on MentoHUST when the router is " +"booting." +msgstr "开机自动启动基于MentoHUST的锐捷802.1X认证客户端。" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:28 +msgid "Enable IPv6 NAT" +msgstr "开启IPv6 NAT" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:28 +msgid "Enable IPv6 NAT pass-through based on ip6tables MASQUERADE." +msgstr "开启基于ip6tables Masquerade技术的IPv6 NAT穿透。" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:30 +msgid "Config Authentication" +msgstr "配置认证参数" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:30 +msgid "The options below are all of MentoHUST's arguments." +msgstr "以下是全部的MentoHUST认证参数。" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:34 +msgid "Username" +msgstr "用户名" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:36 +msgid "Password" +msgstr "密码" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:41 +msgid "Interfaces" +msgstr "网卡" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:51 +msgid "IP" +msgstr "IP地址" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:51 +msgid "default to localhost's IP" +msgstr "默认为localhost的IP地址" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:53 +msgid "Netmask" +msgstr "掩码" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:53 +msgid "default to localhost's netmask" +msgstr "默认为localhost的掩码" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:55 +msgid "Gateway" +msgstr "网关" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:55 +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:57 +msgid "default to 0.0.0.0" +msgstr "默认为0.0.0.0" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:57 +msgid "DNS" +msgstr "DNS服务器" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:59 +msgid "Ping host" +msgstr "Ping主机" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:59 +msgid "default to 0.0.0.0,i.e. disable this function" +msgstr "默认为0.0.0.0,即关闭该功能" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:61 +msgid "Authenticate timeout(s)" +msgstr "认证超时(秒)" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:61 +msgid "default to 8s" +msgstr "默认为8秒" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:63 +msgid "Heartbeat timeout(s)" +msgstr "心跳包超时(秒)" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:63 +msgid "default to 30s" +msgstr "默认为30秒" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:65 +msgid "Timeout on failure(s)" +msgstr "失败等待(秒)" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:65 +msgid "default to 15s" +msgstr "默认为15秒" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:67 +msgid "Max failure times" +msgstr "允许失败次数" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:67 +msgid "0 means no limit,default to 8" +msgstr "0表示无限制,默认为8" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:69 +msgid "mulcast address" +msgstr "多播地址" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:69 +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:75 +msgid "default to 1" +msgstr "默认为1" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:70 +msgid "0(standard)" +msgstr "0(标准)" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:71 +msgid "1(ruijjie)" +msgstr "1(锐捷)" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:72 +msgid "2(saier)" +msgstr "2(赛尔)" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:75 +msgid "DHCP type" +msgstr "DHCP方式" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:76 +msgid "0(not in used)" +msgstr "0(不使用)" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:77 +msgid "1(secondary authenticate)" +msgstr "1(二次认证)" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:78 +msgid "2(post authenticate)" +msgstr "3(认证后)" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:79 +msgid "3(pre authenticate)" +msgstr "3(认证前)" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:82 +msgid "run in daemon mode" +msgstr "后台运行模式" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:82 +msgid "default to 3" +msgstr "默认为3" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:83 +msgid "0(no)" +msgstr "0(不使用后台模式)" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:84 +msgid "1(yes,turn off output)" +msgstr "1(后台模式,关闭输出)" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:85 +msgid "2(yes,persevere output)" +msgstr "2(后台模式,保留输出)" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:86 +msgid "3(yes,output to file)" +msgstr "3(后台模式,输出到日志文件)" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:89 +msgid "display notification" +msgstr "显示通知" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:89 +msgid "0(no),1-20(yes),default to 0" +msgstr "0(不使用),1-20(使用),默认为0" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:91 +msgid "client version" +msgstr "客户端版本号" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:91 +msgid "default to 0.00,compatible with xrgsu" +msgstr "默认为0.00,表示兼容xrgsu" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:93 +msgid "customized data file" +msgstr "自定义数据文件" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:93 +msgid "not in used by default" +msgstr "默认不使用" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:96 +msgid "DHCP script" +msgstr "DHCP脚本" + +#: root/usr/lib/lua/luci/model/cbi/airwhu.lua:96 +msgid "use dhclient by default" +msgstr "默认使用dhclient" diff --git a/package/ctcgfw/luci-app-airwhu/tools/po2lmo/Makefile b/package/ctcgfw/luci-app-airwhu/tools/po2lmo/Makefile new file mode 100644 index 0000000000..ad2c133207 --- /dev/null +++ b/package/ctcgfw/luci-app-airwhu/tools/po2lmo/Makefile @@ -0,0 +1,12 @@ + +INSTALL = install +PREFIX = /usr/bin + +po2lmo: src/po2lmo.o src/template_lmo.o + $(CC) $(LDFLAGS) -o src/po2lmo src/po2lmo.o src/template_lmo.o + +install: + $(INSTALL) -m 755 src/po2lmo $(PREFIX) + +clean: + $(RM) src/po2lmo src/*.o diff --git a/package/ctcgfw/luci-app-airwhu/tools/po2lmo/src/po2lmo b/package/ctcgfw/luci-app-airwhu/tools/po2lmo/src/po2lmo new file mode 100755 index 0000000000..74c9146dc7 Binary files /dev/null and b/package/ctcgfw/luci-app-airwhu/tools/po2lmo/src/po2lmo differ diff --git a/package/ctcgfw/luci-app-airwhu/tools/po2lmo/src/po2lmo.c b/package/ctcgfw/luci-app-airwhu/tools/po2lmo/src/po2lmo.c new file mode 100644 index 0000000000..0da792b680 --- /dev/null +++ b/package/ctcgfw/luci-app-airwhu/tools/po2lmo/src/po2lmo.c @@ -0,0 +1,247 @@ +/* + * lmo - Lua Machine Objects - PO to LMO conversion tool + * + * Copyright (C) 2009-2012 Jo-Philipp Wich + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "template_lmo.h" + +static void die(const char *msg) +{ + fprintf(stderr, "Error: %s\n", msg); + exit(1); +} + +static void usage(const char *name) +{ + fprintf(stderr, "Usage: %s input.po output.lmo\n", name); + exit(1); +} + +static void print(const void *ptr, size_t size, size_t nmemb, FILE *stream) +{ + if( fwrite(ptr, size, nmemb, stream) == 0 ) + die("Failed to write stdout"); +} + +static int extract_string(const char *src, char *dest, int len) +{ + int pos = 0; + int esc = 0; + int off = -1; + + for( pos = 0; (pos < strlen(src)) && (pos < len); pos++ ) + { + if( (off == -1) && (src[pos] == '"') ) + { + off = pos + 1; + } + else if( off >= 0 ) + { + if( esc == 1 ) + { + switch (src[pos]) + { + case '"': + case '\\': + off++; + break; + } + dest[pos-off] = src[pos]; + esc = 0; + } + else if( src[pos] == '\\' ) + { + dest[pos-off] = src[pos]; + esc = 1; + } + else if( src[pos] != '"' ) + { + dest[pos-off] = src[pos]; + } + else + { + dest[pos-off] = '\0'; + break; + } + } + } + + return (off > -1) ? strlen(dest) : -1; +} + +static int cmp_index(const void *a, const void *b) +{ + uint32_t x = ((const lmo_entry_t *)a)->key_id; + uint32_t y = ((const lmo_entry_t *)b)->key_id; + + if (x < y) + return -1; + else if (x > y) + return 1; + + return 0; +} + +static void print_uint32(uint32_t x, FILE *out) +{ + uint32_t y = htonl(x); + print(&y, sizeof(uint32_t), 1, out); +} + +static void print_index(void *array, int n, FILE *out) +{ + lmo_entry_t *e; + + qsort(array, n, sizeof(*e), cmp_index); + + for (e = array; n > 0; n--, e++) + { + print_uint32(e->key_id, out); + print_uint32(e->val_id, out); + print_uint32(e->offset, out); + print_uint32(e->length, out); + } +} + +int main(int argc, char *argv[]) +{ + char line[4096]; + char key[4096]; + char val[4096]; + char tmp[4096]; + int state = 0; + int offset = 0; + int length = 0; + int n_entries = 0; + void *array = NULL; + lmo_entry_t *entry = NULL; + uint32_t key_id, val_id; + + FILE *in; + FILE *out; + + if( (argc != 3) || ((in = fopen(argv[1], "r")) == NULL) || ((out = fopen(argv[2], "w")) == NULL) ) + usage(argv[0]); + + memset(line, 0, sizeof(key)); + memset(key, 0, sizeof(val)); + memset(val, 0, sizeof(val)); + + while( (NULL != fgets(line, sizeof(line), in)) || (state >= 2 && feof(in)) ) + { + if( state == 0 && strstr(line, "msgid \"") == line ) + { + switch(extract_string(line, key, sizeof(key))) + { + case -1: + die("Syntax error in msgid"); + case 0: + state = 1; + break; + default: + state = 2; + } + } + else if( state == 1 || state == 2 ) + { + if( strstr(line, "msgstr \"") == line || state == 2 ) + { + switch(extract_string(line, val, sizeof(val))) + { + case -1: + state = 4; + break; + default: + state = 3; + } + } + else + { + switch(extract_string(line, tmp, sizeof(tmp))) + { + case -1: + state = 2; + break; + default: + strcat(key, tmp); + } + } + } + else if( state == 3 ) + { + switch(extract_string(line, tmp, sizeof(tmp))) + { + case -1: + state = 4; + break; + default: + strcat(val, tmp); + } + } + + if( state == 4 ) + { + if( strlen(key) > 0 && strlen(val) > 0 ) + { + key_id = sfh_hash(key, strlen(key)); + val_id = sfh_hash(val, strlen(val)); + + if( key_id != val_id ) + { + n_entries++; + array = realloc(array, n_entries * sizeof(lmo_entry_t)); + entry = (lmo_entry_t *)array + n_entries - 1; + + if (!array) + die("Out of memory"); + + entry->key_id = key_id; + entry->val_id = val_id; + entry->offset = offset; + entry->length = strlen(val); + + length = strlen(val) + ((4 - (strlen(val) % 4)) % 4); + + print(val, length, 1, out); + offset += length; + } + } + + state = 0; + memset(key, 0, sizeof(key)); + memset(val, 0, sizeof(val)); + } + + memset(line, 0, sizeof(line)); + } + + print_index(array, n_entries, out); + + if( offset > 0 ) + { + print_uint32(offset, out); + fsync(fileno(out)); + fclose(out); + } + else + { + fclose(out); + unlink(argv[2]); + } + + fclose(in); + return(0); +} diff --git a/package/ctcgfw/luci-app-airwhu/tools/po2lmo/src/template_lmo.c b/package/ctcgfw/luci-app-airwhu/tools/po2lmo/src/template_lmo.c new file mode 100644 index 0000000000..27205a7228 --- /dev/null +++ b/package/ctcgfw/luci-app-airwhu/tools/po2lmo/src/template_lmo.c @@ -0,0 +1,328 @@ +/* + * lmo - Lua Machine Objects - Base functions + * + * Copyright (C) 2009-2010 Jo-Philipp Wich + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "template_lmo.h" + +/* + * Hash function from http://www.azillionmonkeys.com/qed/hash.html + * Copyright (C) 2004-2008 by Paul Hsieh + */ + +uint32_t sfh_hash(const char *data, int len) +{ + uint32_t hash = len, tmp; + int rem; + + if (len <= 0 || data == NULL) return 0; + + rem = len & 3; + len >>= 2; + + /* Main loop */ + for (;len > 0; len--) { + hash += sfh_get16(data); + tmp = (sfh_get16(data+2) << 11) ^ hash; + hash = (hash << 16) ^ tmp; + data += 2*sizeof(uint16_t); + hash += hash >> 11; + } + + /* Handle end cases */ + switch (rem) { + case 3: hash += sfh_get16(data); + hash ^= hash << 16; + hash ^= data[sizeof(uint16_t)] << 18; + hash += hash >> 11; + break; + case 2: hash += sfh_get16(data); + hash ^= hash << 11; + hash += hash >> 17; + break; + case 1: hash += *data; + hash ^= hash << 10; + hash += hash >> 1; + } + + /* Force "avalanching" of final 127 bits */ + hash ^= hash << 3; + hash += hash >> 5; + hash ^= hash << 4; + hash += hash >> 17; + hash ^= hash << 25; + hash += hash >> 6; + + return hash; +} + +uint32_t lmo_canon_hash(const char *str, int len) +{ + char res[4096]; + char *ptr, prev; + int off; + + if (!str || len >= sizeof(res)) + return 0; + + for (prev = ' ', ptr = res, off = 0; off < len; prev = *str, off++, str++) + { + if (isspace(*str)) + { + if (!isspace(prev)) + *ptr++ = ' '; + } + else + { + *ptr++ = *str; + } + } + + if ((ptr > res) && isspace(*(ptr-1))) + ptr--; + + return sfh_hash(res, ptr - res); +} + +lmo_archive_t * lmo_open(const char *file) +{ + int in = -1; + uint32_t idx_offset = 0; + struct stat s; + + lmo_archive_t *ar = NULL; + + if (stat(file, &s) == -1) + goto err; + + if ((in = open(file, O_RDONLY)) == -1) + goto err; + + if ((ar = (lmo_archive_t *)malloc(sizeof(*ar))) != NULL) + { + memset(ar, 0, sizeof(*ar)); + + ar->fd = in; + ar->size = s.st_size; + + fcntl(ar->fd, F_SETFD, fcntl(ar->fd, F_GETFD) | FD_CLOEXEC); + + if ((ar->mmap = mmap(NULL, ar->size, PROT_READ, MAP_SHARED, ar->fd, 0)) == MAP_FAILED) + goto err; + + idx_offset = ntohl(*((const uint32_t *) + (ar->mmap + ar->size - sizeof(uint32_t)))); + + if (idx_offset >= ar->size) + goto err; + + ar->index = (lmo_entry_t *)(ar->mmap + idx_offset); + ar->length = (ar->size - idx_offset - sizeof(uint32_t)) / sizeof(lmo_entry_t); + ar->end = ar->mmap + ar->size; + + return ar; + } + +err: + if (in > -1) + close(in); + + if (ar != NULL) + { + if ((ar->mmap != NULL) && (ar->mmap != MAP_FAILED)) + munmap(ar->mmap, ar->size); + + free(ar); + } + + return NULL; +} + +void lmo_close(lmo_archive_t *ar) +{ + if (ar != NULL) + { + if ((ar->mmap != NULL) && (ar->mmap != MAP_FAILED)) + munmap(ar->mmap, ar->size); + + close(ar->fd); + free(ar); + + ar = NULL; + } +} + + +lmo_catalog_t *_lmo_catalogs = NULL; +lmo_catalog_t *_lmo_active_catalog = NULL; + +int lmo_load_catalog(const char *lang, const char *dir) +{ + DIR *dh = NULL; + char pattern[16]; + char path[PATH_MAX]; + struct dirent *de = NULL; + + lmo_archive_t *ar = NULL; + lmo_catalog_t *cat = NULL; + + if (!lmo_change_catalog(lang)) + return 0; + + if (!dir || !(dh = opendir(dir))) + goto err; + + if (!(cat = malloc(sizeof(*cat)))) + goto err; + + memset(cat, 0, sizeof(*cat)); + + snprintf(cat->lang, sizeof(cat->lang), "%s", lang); + snprintf(pattern, sizeof(pattern), "*.%s.lmo", lang); + + while ((de = readdir(dh)) != NULL) + { + if (!fnmatch(pattern, de->d_name, 0)) + { + snprintf(path, sizeof(path), "%s/%s", dir, de->d_name); + ar = lmo_open(path); + + if (ar) + { + ar->next = cat->archives; + cat->archives = ar; + } + } + } + + closedir(dh); + + cat->next = _lmo_catalogs; + _lmo_catalogs = cat; + + if (!_lmo_active_catalog) + _lmo_active_catalog = cat; + + return 0; + +err: + if (dh) closedir(dh); + if (cat) free(cat); + + return -1; +} + +int lmo_change_catalog(const char *lang) +{ + lmo_catalog_t *cat; + + for (cat = _lmo_catalogs; cat; cat = cat->next) + { + if (!strncmp(cat->lang, lang, sizeof(cat->lang))) + { + _lmo_active_catalog = cat; + return 0; + } + } + + return -1; +} + +static lmo_entry_t * lmo_find_entry(lmo_archive_t *ar, uint32_t hash) +{ + unsigned int m, l, r; + uint32_t k; + + l = 0; + r = ar->length - 1; + + while (1) + { + m = l + ((r - l) / 2); + + if (r < l) + break; + + k = ntohl(ar->index[m].key_id); + + if (k == hash) + return &ar->index[m]; + + if (k > hash) + { + if (!m) + break; + + r = m - 1; + } + else + { + l = m + 1; + } + } + + return NULL; +} + +int lmo_translate(const char *key, int keylen, char **out, int *outlen) +{ + uint32_t hash; + lmo_entry_t *e; + lmo_archive_t *ar; + + if (!key || !_lmo_active_catalog) + return -2; + + hash = lmo_canon_hash(key, keylen); + + for (ar = _lmo_active_catalog->archives; ar; ar = ar->next) + { + if ((e = lmo_find_entry(ar, hash)) != NULL) + { + *out = ar->mmap + ntohl(e->offset); + *outlen = ntohl(e->length); + return 0; + } + } + + return -1; +} + +void lmo_close_catalog(const char *lang) +{ + lmo_archive_t *ar, *next; + lmo_catalog_t *cat, *prev; + + for (prev = NULL, cat = _lmo_catalogs; cat; prev = cat, cat = cat->next) + { + if (!strncmp(cat->lang, lang, sizeof(cat->lang))) + { + if (prev) + prev->next = cat->next; + else + _lmo_catalogs = cat->next; + + for (ar = cat->archives; ar; ar = next) + { + next = ar->next; + lmo_close(ar); + } + + free(cat); + break; + } + } +} diff --git a/package/ctcgfw/luci-app-airwhu/tools/po2lmo/src/template_lmo.h b/package/ctcgfw/luci-app-airwhu/tools/po2lmo/src/template_lmo.h new file mode 100644 index 0000000000..57f59aa56b --- /dev/null +++ b/package/ctcgfw/luci-app-airwhu/tools/po2lmo/src/template_lmo.h @@ -0,0 +1,92 @@ +/* + * lmo - Lua Machine Objects - General header + * + * Copyright (C) 2009-2012 Jo-Philipp Wich + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef _TEMPLATE_LMO_H_ +#define _TEMPLATE_LMO_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if (defined(__GNUC__) && defined(__i386__)) +#define sfh_get16(d) (*((const uint16_t *) (d))) +#else +#define sfh_get16(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)\ + +(uint32_t)(((const uint8_t *)(d))[0]) ) +#endif + + +struct lmo_entry { + uint32_t key_id; + uint32_t val_id; + uint32_t offset; + uint32_t length; +} __attribute__((packed)); + +typedef struct lmo_entry lmo_entry_t; + + +struct lmo_archive { + int fd; + int length; + uint32_t size; + lmo_entry_t *index; + char *mmap; + char *end; + struct lmo_archive *next; +}; + +typedef struct lmo_archive lmo_archive_t; + + +struct lmo_catalog { + char lang[6]; + struct lmo_archive *archives; + struct lmo_catalog *next; +}; + +typedef struct lmo_catalog lmo_catalog_t; + + +uint32_t sfh_hash(const char *data, int len); +uint32_t lmo_canon_hash(const char *data, int len); + +lmo_archive_t * lmo_open(const char *file); +void lmo_close(lmo_archive_t *ar); + + +extern lmo_catalog_t *_lmo_catalogs; +extern lmo_catalog_t *_lmo_active_catalog; + +int lmo_load_catalog(const char *lang, const char *dir); +int lmo_change_catalog(const char *lang); +int lmo_translate(const char *key, int keylen, char **out, int *outlen); +void lmo_close_catalog(const char *lang); + +#endif diff --git a/package/ctcgfw/luci-app-appfilter/Makefile b/package/ctcgfw/luci-app-appfilter/Makefile new file mode 100644 index 0000000000..f92bca510d --- /dev/null +++ b/package/ctcgfw/luci-app-appfilter/Makefile @@ -0,0 +1,15 @@ + +# +# This is free software, licensed under the Apache License, Version 2.0 . +# + +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=Open App Filter Module +LUCI_PKGARCH:=all +LUCI_DEPENDS:=+kmod-oaf +appfilter +PKG_NAME:=luci-app-appfilter +PKG_VERSION:=3.0 +PKG_RELEASE:=1 +include $(TOPDIR)/feeds/luci/luci.mk +# call BuildPackage - OpenWrt buildroot signature diff --git a/package/ctcgfw/luci-app-appfilter/luasrc/controller/appfilter.lua b/package/ctcgfw/luci-app-appfilter/luasrc/controller/appfilter.lua new file mode 100644 index 0000000000..6bb4a0978f --- /dev/null +++ b/package/ctcgfw/luci-app-appfilter/luasrc/controller/appfilter.lua @@ -0,0 +1,96 @@ +module("luci.controller.appfilter", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/appfilter") then + return + end + + local page + + page = entry({"admin", "network", "appfilter"}, cbi("appfilter/appfilter"), _("appfilter")) + page.dependent = true + + page = entry({"admin", "network", "user_status"}, call("user_status"), nil) + page.leaf = true +end + +function get_hostname_by_mac(dst_mac) + leasefile="/tmp/dhcp.leases" + local fd = io.open(leasefile, "r") + if not fd then return end + while true do + local ln = fd:read("*l") + if not ln then + break + end + local ts, mac, ip, name, duid = ln:match("^(%d+) (%S+) (%S+) (%S+) (%S+)") + print(ln) + if dst_mac == mac then + print("match mac", mac, "hostname=", name); + fd:close() + return name + end + end + fd:close() + return "" +end + +function get_app_name_by_id(appid) + local class_fd = io.popen("find /etc/appfilter/ -type f -name *.class |xargs cat |grep "..appid.."|awk '{print $2}'") + if class_fd then + local name = class_fd:read("*l") + class_fd:close() + return name + end + return "" +end + +function cmp_func(a,b) + return a.latest_time > b.latest_time +end + + + + +function user_status() + local s = require "luci.tools.status" + local json = require "luci.jsonc" + luci.http.prepare_content("application/json") + tb={} + obj={}; + obj.hostname="derry" + obj.ip="192.168.10.199" + obj.mac="192.168.10.199" + tb[#tb+1]=obj + --local fs=require "nixio.fs" + --local ok, status_data = pcall(json.parse, fs.readfile("/proc/net/af_client")) + --luci.http.write_json(tb); + local fd = io.open("/proc/net/af_client","r") + + status_buf=fd:read('*a') + fd:close() + user_array=json.parse(status_buf) + + local history={} + for i, v in pairs(user_array) do + visit_array=user_array[i].visit_info + for j,s in pairs(visit_array) do + print(user_array[i].mac, user_array[i].ip,visit_array[j].appid, visit_array[j].latest_time) + history[#history+1]={ + mac=user_array[i].mac, + ip=user_array[i].ip, + hostname=get_hostname_by_mac(user_array[i].mac), + appid=visit_array[j].appid, + appname=get_app_name_by_id(visit_array[j].appid), + total_num=visit_array[j].total_num, + drop_num=visit_array[j].drop_num, + latest_action=visit_array[j].latest_action, + latest_time=os.date("%Y/%m/%d %H:%M:%S", visit_array[j].latest_time) + } + end + end + table.sort(history, cmp_func) + --luci.http.write(history); + luci.http.write_json(history); +end + diff --git a/package/ctcgfw/luci-app-appfilter/luasrc/model/cbi/appfilter/appfilter.lua b/package/ctcgfw/luci-app-appfilter/luasrc/model/cbi/appfilter/appfilter.lua new file mode 100644 index 0000000000..ea50ac7218 --- /dev/null +++ b/package/ctcgfw/luci-app-appfilter/luasrc/model/cbi/appfilter/appfilter.lua @@ -0,0 +1,87 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2008 Steven Barth + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +$Id$ +]]-- + +local ds = require "luci.dispatcher" + +local m, s + +m = Map("appfilter", + translate("appfilter"), + translate("")) + +s = m:section(TypedSection, "global", translate("Basic Settings")) +s:option(Flag, "enable", translate("Enable App Filter"),translate("")) +s.anonymous = true + + +s = m:section(TypedSection, "appfilter", translate("App Filter Rules")) +s.anonymous = true +s.addremove = false + + +local class_fd = io.popen("find /etc/appfilter/ -type f -name '*.class'") +if class_fd then + while true do + local apps + local class + local path = class_fd:read("*l") + if not path then + break + end + + class = path:match("([^/]+)%.class$") + -- add a tab + s:tab(class, translate(class)) + -- multi value option + apps = s:taboption(class, MultiValue, class.."apps", translate("")) + apps.rmempty=true + --apps.delimiter=";" + -- select + apps.widget="checkbox" + apps.size=12 + + local fd = io.open(path) + if fd then + local line + while true do + local cmd + local cmd_fd + line = fd:read("*l") + if not line then break end + if string.len(line) < 5 then break end + if not string.find(line,"#") then + cmd = "echo "..line.."|awk '{print $1}'" + cmd_fd = io.popen(cmd) + id = cmd_fd:read("*l"); + cmd_fd:close() + + cmd = "echo "..line.."|awk '{print $2}'" + cmd_fd = io.popen(cmd) + name = cmd_fd:read("*l") + + cmd_fd:close() + if not id then break end + if not name then break end + apps:value(id, name) + end + end + fd:close() + end + end + class_fd:close() +end +m:section(SimpleSection).template = "admin_network/user_status" + + +return m diff --git a/package/ctcgfw/luci-app-appfilter/luasrc/view/admin_network/user_status.htm b/package/ctcgfw/luci-app-appfilter/luasrc/view/admin_network/user_status.htm new file mode 100644 index 0000000000..472f6d0690 --- /dev/null +++ b/package/ctcgfw/luci-app-appfilter/luasrc/view/admin_network/user_status.htm @@ -0,0 +1,85 @@ + + + + +
+ <%:访问记录%> + + + + + + + + + + + + + + +
<%:主机名%><%:mac地址%><%:ip地址%><%:App名称%><%:丢包次数%><%:访问次数%><%:最后访问时间%><%:过滤状态%>

<%:Collecting data...%>
+
diff --git a/package/ctcgfw/luci-app-appfilter/po/zh-cn/oaf.po b/package/ctcgfw/luci-app-appfilter/po/zh-cn/oaf.po new file mode 100644 index 0000000000..b133f7402b --- /dev/null +++ b/package/ctcgfw/luci-app-appfilter/po/zh-cn/oaf.po @@ -0,0 +1,48 @@ + +msgid "website" +msgstr "常用网站" + +msgid "appfilter" +msgstr "应用过滤" + +msgid "game" +msgstr "游戏" + +msgid "web" +msgstr "网页" + +msgid "video" +msgstr "视频" + +msgid "chat" +msgstr "聊天" + +msgid "download" +msgstr "下载" + +msgid "p2p" +msgstr "p2p" + +msgid "music" +msgstr "音乐" + +msgid "shopping" +msgstr "购物" + +msgid "working" +msgstr "办公" + +msgid "employee" +msgstr "招聘" + +msgid "Basic Settings" +msgstr "基本设置" + +msgid "App Filter Rules" +msgstr "应用过滤规则" + +msgid "Enable App Filter" +msgstr "开启应用过滤" + + + diff --git a/package/ctcgfw/luci-app-appfilter/root/etc/uci-defaults/91_luci-oaf b/package/ctcgfw/luci-app-appfilter/root/etc/uci-defaults/91_luci-oaf new file mode 100755 index 0000000000..2041cc3dfa --- /dev/null +++ b/package/ctcgfw/luci-app-appfilter/root/etc/uci-defaults/91_luci-oaf @@ -0,0 +1,14 @@ +#!/bin/sh + +# replace existing mwan ucitrack entry +uci -q batch <<-EOF >/dev/null + del ucitrack.@appfilter[-1] + add ucitrack appfilter + set ucitrack.@appfilter[-1].exec="/etc/init.d/appfilter reload" + commit ucitrack +EOF + +# remove LuCI cache +rm -rf /tmp/luci-indexcache /tmp/luci-modulecache + +exit 0 diff --git a/package/ctcgfw/luci-app-autoipsetadder/Makefile b/package/ctcgfw/luci-app-autoipsetadder/Makefile new file mode 100644 index 0000000000..160bc31aa8 --- /dev/null +++ b/package/ctcgfw/luci-app-autoipsetadder/Makefile @@ -0,0 +1,64 @@ +# Copyright (C) 2018-2019 Lienol +# +# This is free software, licensed under the Apache License, Version 2.0 . +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=luci-app-autoipsetadder +PKG_VERSION:=1.0 +PKG_RELEASE:=7 + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) + +include $(INCLUDE_DIR)/package.mk + +define Package/luci-app-autoipsetadder + SECTION:=luci + CATEGORY:=LuCI + SUBMENU:=3. Applications + TITLE:=LuCI Support for autoipsetadder + PKGARCH:=all + DEPENDS:= +httping +curl +endef + +define Package/luci-app-autoipsetadder/description + LuCI support for autoipsetadder +endef + +define Build/Prepare +endef + +define Build/Compile +endef + +define Package/luci-app-autoipsetadder/conffiles +/etc/config/autoipsetadder +endef + +define Package/luci-app-autoipsetadder/install + $(INSTALL_DIR) $(1)/usr/lib/lua/luci + cp -pR ./luasrc/* $(1)/usr/lib/lua/luci + $(INSTALL_DIR) $(1)/ + cp -pR ./root/* $(1)/ +endef + +define Package/luci-app-autoipsetadder/postinst +#!/bin/sh + /etc/init.d/autoipsetadder enable >/dev/null 2>&1 + /etc/init.d/autoipsetadder start + rm -f /tmp/luci-indexcache + rm -f /tmp/luci-modulecache/* +exit 0 +endef + +define Package/luci-app-autoipsetadder/prerm +#!/bin/sh +if [ -z "$${IPKG_INSTROOT}" ]; then + /etc/init.d/autoipsetadder disable + /etc/init.d/autoipsetadder stop +fi +exit 0 +endef + +$(eval $(call BuildPackage,luci-app-autoipsetadder)) diff --git a/package/ctcgfw/luci-app-autoipsetadder/luasrc/controller/autoipsetadder.lua b/package/ctcgfw/luci-app-autoipsetadder/luasrc/controller/autoipsetadder.lua new file mode 100644 index 0000000000..6e88056d50 --- /dev/null +++ b/package/ctcgfw/luci-app-autoipsetadder/luasrc/controller/autoipsetadder.lua @@ -0,0 +1,56 @@ +module("luci.controller.autoipsetadder",package.seeall) +local io = require "io" +local fs=require"nixio.fs" +local sys=require"luci.sys" +local uci=require"luci.model.uci".cursor() +function index() + entry({"admin","services","autoipsetadder"},firstchild(),_("autoipsetadder"),30).dependent=true + entry({"admin","services","autoipsetadder","autoipsetadder"},cbi("autoipsetadder"),_("Base Setting"),1) + entry({"admin","services","autoipsetadder","status"},call("act_status")).leaf=true + entry({"admin", "services", "autoipsetadder", "getlog"}, call("get_log")) + entry({"admin", "services", "autoipsetadder", "dodellog"}, call("do_del_log")) + entry({"admin", "services", "autoipsetadder", "debugip"}, call("do_debug_ip")) +end + +function act_status() + local e={} + e.running=luci.sys.call("pgrep -f /usr/bin/autoipsetadder/autoaddlist.sh >/dev/null")==0 + luci.http.prepare_content("application/json") + luci.http.write_json(e) +end +function do_del_log() +local logfile=uci:get("autoipsetadder","autoipsetadder","logfile") or "/tmp/addlist.log" +nixio.fs.writefile(logfile,"") +luci.http.prepare_content("application/json") +luci.http.write('') +end +function do_debug_ip() +luci.http.prepare_content("text/plain; charset=utf-8") +local a=sys.exec("/usr/bin/autoipsetadder/debugip.sh") +if (a=="") then +a="noproblem" +end +luci.http.write(a) +end +function get_log() + local logfile,fdp + logfile=uci:get("autoipsetadder","autoipsetadder","logfile") or "/tmp/addlist.log" + luci.http.prepare_content("text/plain; charset=utf-8") + if not fs.access(logfile) then + luci.http.write("") + return + end + if fs.access("/var/run/lucilogreload") then + fdp=0 + fs.remove("/var/run/lucilogreload") + else + fdp=tonumber(fs.readfile("/var/run/lucilogpos")) or 0 + end + local f=io.open(logfile, "r+") + f:seek("set",fdp) + local a=f:read(2048000) or "" + fdp=f:seek() + fs.writefile("/var/run/lucilogpos",tostring(fdp)) + f:close() + luci.http.write(a) +end \ No newline at end of file diff --git a/package/ctcgfw/luci-app-autoipsetadder/luasrc/model/cbi/autoipsetadder.lua b/package/ctcgfw/luci-app-autoipsetadder/luasrc/model/cbi/autoipsetadder.lua new file mode 100644 index 0000000000..8e55be0a2a --- /dev/null +++ b/package/ctcgfw/luci-app-autoipsetadder/luasrc/model/cbi/autoipsetadder.lua @@ -0,0 +1,97 @@ +require("luci.sys") +require("luci.util") +local fs=require"nixio.fs" +local uci=require"luci.model.uci".cursor() +local m,s,o +m = Map("autoipsetadder", translate("ipsetautoadder")) +m.description = translate("自动将联不通的域名加入ipset") +m:section(SimpleSection).template = "autoipsetadder/status" + +s = m:section(TypedSection, "autoipsetadder") +s.anonymous=true +s.addremove=false +---- enable +o = s:option(Flag, "enabled", translate("启用")) +o.default = 0 +o.rmempty = false +---- logview +o=s:option(TextValue, "show", "日志") +o.template = "autoipsetadder/check" +---- logpath +o = s:option(Value, "logfile", translate("Runtime log file")) +o.datatype = "string" +o.default="/tmp/addlist.log" +o.optional = false +o.validate=function(self, value) +if fs.stat(value,"type")=="dir" then + fs.rmdir(value) +end +if fs.stat(value,"type")=="dir" then + if m.message then + m.message =m.message.."\nerror!log file is a dir" + else + m.message ="error!log file is a dir" + end + return nil +end +return value +end +---- dnsmasq log +o = s:option(Value, "dnslogfile", translate("dnsmasq log file")) +o.datatype = "string" +o.optional = false +o.default="/tmp/dnsmasq.log" +o.validate=function(self, value) +if fs.stat(value,"type")=="dir" then + fs.rmdir(value) +end +if fs.stat(value,"type")=="dir" then + if m.message then + m.message =m.message.."\nerror!log file is a dir" + else + m.message ="error!log file is a dir" + end + return nil +end +return value +end +---- crontab +o = s:option(MultiValue, "crontab", translate("Crontab task"),translate("Please change time and args in crontab")) +o:value("autodeldnslog",translate("Auto del dnsmasq log")) +o:value("autotaillog",translate("Auto tail runtime log")) +o.widget = "checkbox" +o.default = "autodeldnslog autotaillog" +o.rmempty= true + +o = s:option(MultiValue, "config", translate("the way add to gfwlist")) +o:value("nochina",translate("no china ip")) +o:value("pingadd",translate("5ping loss1-4")) +o:value("packetpass",translate("packet >12 pass")) +o.widget = "checkbox" +o.default = "nochina pingadd packetpass" +o.rmempty=true +---- apply +nixio.fs.writefile("/var/run/lucilogreload","") +function m.on_commit(map) + local ucitracktest=uci:get("autoipsetadder","autoipsetadder","ucitracktest") + if ucitracktest=="1" then + return + elseif ucitracktest=="0" then + io.popen("/etc/init.d/autoipsetadder reload &") + else + if (fs.access("/var/run/AdGucitest")) then + uci:set("autoipsetadder","autoipsetadder","ucitracktest","0") + io.popen("/etc/init.d/autoipsetadder reload &") + else + fs.writefile("/var/run/AdGucitest","") + if (ucitracktest=="2") then + uci:set("autoipsetadder","autoipsetadder","ucitracktest","1") + else + uci:set("autoipsetadder","autoipsetadder","ucitracktest","2") + end + end + uci:save("autoipsetadder") + uci:commit("autoipsetadder") + end +end +return m diff --git a/package/ctcgfw/luci-app-autoipsetadder/luasrc/view/autoipsetadder/check.htm b/package/ctcgfw/luci-app-autoipsetadder/luasrc/view/autoipsetadder/check.htm new file mode 100644 index 0000000000..651d93d46f --- /dev/null +++ b/package/ctcgfw/luci-app-autoipsetadder/luasrc/view/autoipsetadder/check.htm @@ -0,0 +1,62 @@ +<%+cbi/valueheader%> +<%uci=require"luci.model.uci".cursor()%> +<%nixio=require"nixio"%> + +<%if uci:get("autoipsetadder","autoipsetadder","enabled")=="1" then%> + +<%:reverse%> + + + + + + + +<%end%> +<%+cbi/valuefooter%> \ No newline at end of file diff --git a/package/ctcgfw/luci-app-autoipsetadder/luasrc/view/autoipsetadder/status.htm b/package/ctcgfw/luci-app-autoipsetadder/luasrc/view/autoipsetadder/status.htm new file mode 100644 index 0000000000..b9f123d6f1 --- /dev/null +++ b/package/ctcgfw/luci-app-autoipsetadder/luasrc/view/autoipsetadder/status.htm @@ -0,0 +1,22 @@ + + +
+

+ <%:Collecting data...%> +

+
\ No newline at end of file diff --git a/package/ctcgfw/luci-app-autoipsetadder/root/etc/config/autoipsetadder b/package/ctcgfw/luci-app-autoipsetadder/root/etc/config/autoipsetadder new file mode 100644 index 0000000000..5110d5260b --- /dev/null +++ b/package/ctcgfw/luci-app-autoipsetadder/root/etc/config/autoipsetadder @@ -0,0 +1,2 @@ +config autoipsetadder 'autoipsetadder' + option enabled '0' diff --git a/package/ctcgfw/luci-app-autoipsetadder/root/etc/init.d/autoipsetadder b/package/ctcgfw/luci-app-autoipsetadder/root/etc/init.d/autoipsetadder new file mode 100755 index 0000000000..c6b181078c --- /dev/null +++ b/package/ctcgfw/luci-app-autoipsetadder/root/etc/init.d/autoipsetadder @@ -0,0 +1,126 @@ +#!/bin/sh /etc/rc.common + +USE_PROCD=1 + +START=99 +STOP=01 +CRON_FILE=/etc/crontabs/root +CONFIGURATION=autoipsetadder +EXTRA_COMMANDS="test_crontab" +EXTRA_HELP=" + test_crontab" +set_dnsmasq_log() +{ + sed -i '/log-facility/d' /etc/dnsmasq.conf + sed -i '/log-queries/d' /etc/dnsmasq.conf + uci set dhcp.@dnsmasq[0].logfacility='/tmp/dnsmasq.log' + uci delete dhcp.@dnsmasq[0].logqueries + echo log-queries >> /etc/dnsmasq.conf + uci commit dhcp + /etc/init.d/dnsmasq reload +} + +stop_dnsmasq_log() +{ + sed -i '/log-queries/d' /etc/dnsmasq.conf + uci delete dhcp.@dnsmasq[0].logfacility + uci commit dhcp + /etc/init.d/dnsmasq reload +} + +reload_service() +{ + rm -f /var/run/AdGucitest 2>/dev/null + kill $(cat /var/run/autoipsetadder.pid) + start +} +service_triggers() { + procd_add_reload_trigger "$CONFIGURATION" +} +start_service() { + # Reading config + config_load "${CONFIGURATION}" + mkdir -p /tmp/run/autoipsetadder + local enabled + config_get_bool enabled $CONFIGURATION enabled 0 + do_crontab + if [ "$enabled" == "1" ]; then + set_dnsmasq_log + procd_open_instance + procd_set_param respawn + # pass config to script on start + procd_set_param command sh /usr/bin/autoipsetadder/autoaddlist.sh + procd_close_instance + echo "autoipsetadder turn on" + echo "enabled=$enabled" + else + stop_dnsmasq_log + echo "autoipsetadder turn off" + echo "enabled=$enabled" + fi +} + +stop_service() +{ + config_load "${CONFIGURATION}" + stop_dnsmasq_log + do_crontab + kill $(cat /var/run/autoipsetadder.pid) + echo "autoipsetadder turn off" + echo "enabled="$enabled"" +} +do_crontab(){ + config_get_bool enabled $CONFIGURATION enabled 0 + #config_get logfile $CONFIGURATION logfile "/tmp/addlist.log" + #config_get dnslogfile $CONFIGURATION dnslogfile "/tmp/dnsmasq.log" + config_get crontab $CONFIGURATION crontab "" + cronreload=0 + findstr="echo qingkong > \$(uci get autoipsetadder.autoipsetadder.dnslogfile)" + default="0 * * * * echo qingkong > \$(uci get autoipsetadder.autoipsetadder.dnslogfile)" + #[ -n "$lastdnslogfile" ] && findstr="echo qingkong > $lastdnslogfile" && [ "$lastdnslogfile" != "$dnslogfile" ] && replace="${lastdnslogfile//\//\\/}/${dnslogfile//\//\\/}" + [ "$enabled" == "0" ] || [ "${crontab//autodeldnslog/}" == "$crontab" ] && cronenable=0 || cronenable=1 + crontab_editor + #[ "$lastdnslogfile" != "$dnslogfile" ] && uci set autoipsetadder.autoipsetadder.lastdnslogfile="$dnslogfile" && commit=1 + + findstr="/usr/bin/autoipsetadder/tailto.sh [0-9]* \$(uci get autoipsetadder.autoipsetadder.logfile)" + default="0 0 * * * /usr/bin/autoipsetadder/tailto.sh 2000 \$(uci get autoipsetadder.autoipsetadder.logfile)" + #[ -n "$lastlogfile" ] && findstr="/usr/bin/autoipsetadder/tailto.sh [0-9]* $lastlogfile" && [ "$lastlogfile" != "$logfile" ] && replace="${lastlogfile//\//\\/}/${logfile//\//\\/}" + [ "$enabled" == "0" ] || [ "${crontab//autotaillog/}" == "$crontab" ] && cronenable=0 || cronenable=1 + crontab_editor + #[ -n "$logfile" ] && [ "$lastlogfile" != "$logfile" ] && uci set autoipsetadder.autoipsetadder.lastlogfile="$logfile" && commit=1 + + [ "$cronreload" -gt 0 ] && /etc/init.d/cron restart + #[ "$commit" -gt 0 ] && uci commit autoipsetadder +} +crontab_editor(){ + local testline reload + local line="$(grep "$findstr" $CRON_FILE)" + [ -n "$replace" ] && [ -n "$line" ] && eval testline="\${line//$replace}" && [ "$testline" != "$line" ] && line="$testline" && reload="1" && replace="" + if [ "${line:0:1}" != "#" ]; then + if [ $cronenable -eq 1 ]; then + [ -z "$line" ] && line="$default" && reload="1" + if [ -n "$reload" ]; then + sed -i "\,$findstr,d" $CRON_FILE + echo "$line" >> $CRON_FILE + cronreload=$((cronreload+1)) + fi + elif [ -n "$line" ]; then + sed -i "\,$findstr,d" $CRON_FILE + echo "#$line" >> $CRON_FILE + cronreload=$((cronreload+1)) + fi + else + if [ $cronenable -eq 1 ]; then + sed -i "\,$findstr,d" $CRON_FILE + echo "${line:1}" >> $CRON_FILE + cronreload=$((cronreload+1)) + elif [ -z "$reload" ]; then + sed -i "\,$findstr,d" $CRON_FILE + echo "$line" >> $CRON_FILE + fi + fi +} +test_crontab(){ +config_load "${CONFIGURATION}" +do_crontab +} diff --git a/package/ctcgfw/luci-app-autoipsetadder/root/etc/uci-defaults/40_luci-autoipsetadder b/package/ctcgfw/luci-app-autoipsetadder/root/etc/uci-defaults/40_luci-autoipsetadder new file mode 100755 index 0000000000..d1a8ee4577 --- /dev/null +++ b/package/ctcgfw/luci-app-autoipsetadder/root/etc/uci-defaults/40_luci-autoipsetadder @@ -0,0 +1,11 @@ +#!/bin/sh + +uci -q batch <<-EOF >/dev/null + delete ucitrack.@autoipsetadder[-1] + add ucitrack autoipsetadder + set ucitrack.@autoipsetadder[-1].init=autoipsetadder + commit ucitrack +EOF + +rm -f /tmp/luci-indexcache +exit 0 diff --git a/package/ctcgfw/luci-app-autoipsetadder/root/usr/bin/autoipsetadder/autoaddlist.sh b/package/ctcgfw/luci-app-autoipsetadder/root/usr/bin/autoipsetadder/autoaddlist.sh new file mode 100755 index 0000000000..b6d8113b17 --- /dev/null +++ b/package/ctcgfw/luci-app-autoipsetadder/root/usr/bin/autoipsetadder/autoaddlist.sh @@ -0,0 +1,164 @@ +#!/bin/sh +PATH="/usr/sbin:/usr/bin:/sbin:/bin" +logfile=$(uci get autoipsetadder.autoipsetadder.logfile) +[ -z "$logfile" ] && logfile="/tmp/addlist.log" +dnslogfile=$(uci get autoipsetadder.autoipsetadder.dnslogfile) +[ -z "$logfile" ] && dnslogfile="/tmp/dnsmasq.log" +config=$(uci get autoipsetadder.autoipsetadder.config 2>/dev/null) +[ "${config//nochina/}" == "$config" ] && nochina="0" || nochina="1" +[ "${config//packetpass/}" == "$config" ] && packetpass="0" || packetpass="1" +(tail -F $dnslogfile & echo $! >/var/run/autoipsetadder.pid ) | awk -v nochina="$nochina" -v packetpass="$packetpass" -F "[, ]+" '/reply/{ +ip=$8; +if (ip=="" || ip=="127.0.0.1"|| ip=="0.0.0.0") +{ +next; +} +if (index(ip,"")!=0) +{ +if (cname==1) +{ + next; +} +cname=1; +domain=$6; +#第一次cname时锁定域名,防止解析cname对其改动 +next; +} +#以上获得上行是否为cname,本行不是cname执行以下内容 +#lastdomain记录上次非cname的域名,与本次域名对比 +if(lastdomain!=$6){ + for (ipindex in ipcache) + { + delete ipcache[ipindex]; + } + ipcount=0; + createpid=1; +#上行非cname,并且不是同cname解析域名的多个ip,更新域名,清理同域名免试flag +if (cname!=1) +{ + domain=$6; + testall=0; +}} +ipcount++; +cname=0; +lastdomain=$6 +#去除非ipv4 +if (index(ip,".")==0) +{ + next; +} +#不重复探测ip +if (!(ip in a)) +{ +#包数>12的同域名放过 +if (passdomain==domain) +{ + print(ip" "domain" pass by same domain ok"); + a[ip]=domain; + next; +} +if (nochina==1){ +"ipset test china "ip" 2>&1"| getline ipset; +close("ipset test china "ip" 2>&1"); +if (index(ipset,"Warning")!=0){ + print("china "ip" pass"); + a[ip]=domain; + next; +}} +"ipset test gfwlist "ip" 2>&1"| getline ipset; +close("ipset test gfwlist "ip" 2>&1"); +if (index(ipset,"Warning")!=0){ + print("gfwlist "ip" pass"); + a[ip]=domain; + next; + } + +#ip压入缓存,用于未检测到443/80的缓存 +ipcache[ipcount]=ip; +if (testall==0){ + tryhttps=0; + tryhttp=0; + #探测 nf_conntrack 的443/80 + while ("grep "ip" /proc/net/nf_conntrack"| getline ret > 0) + { + split(ret, b," +"); + split(b[11], pagnum,"="); + #包数>12的放过 + if (packetpass==1 && pagnum[2]>12) + { + print("pass by packets="pagnum[2]" "ip" "domain); + for (ipindex in ipcache) + { + a[ipcache[ipindex]]=domain; + delete ipcache[ipindex]; + } + passdomain=domain; + close("grep "ip" /proc/net/nf_conntrack"); + ipcount--; + next; + } + if (b[8]=="dst="ip) + { + if (b[10]=="dport=443"){ + tryhttps=1; + break; + } + else if (b[10]=="dport=80"){ + tryhttp=1; + } + } + } + close("grep "ip" /proc/net/nf_conntrack"); +}else{ + if (testall==443) + { + tryhttps=1 + }else{ + tryhttp=1 + } +} +if (tryhttps==1) +{ if (createpid==1) + { + print "">"/tmp/run/autoipsetadder/"domain + close("/tmp/run/autoipsetadder/"domain); + print("create"domain); + print(ip" "domain" 443"ipcount-1); + a[ip]=domain; + #正在使用的ip用最大延迟,最后探测,减少打断tcp的可能 + system("/usr/bin/autoipsetadder/testip.sh "ip" "domain" 443 "ipcount-1" &"); + delete ipcache[ipcount]; + createpid=0; + } + #未检测到443/80同域名缓存的ip进行测试,ipindex-1为测试延迟时间 + for (ipindex in ipcache){ + print(ipcache[ipindex]" "domain" 443 "ipindex-1); + a[ipcache[ipindex]]=domain; + system("/usr/bin/autoipsetadder/testip.sh "ipcache[ipindex]" "domain" 443 "ipindex-1" &"); + delete ipcache[ipindex]; + } + #后续同域名ip免nf_conntrack测试 + testall=443; +} +else if (tryhttp==1) +{ + if (createpid==1) + { + print "">"/tmp/run/autoipsetadder/"domain + close("/tmp/run/autoipsetadder/"domain); + print("create"domain); + print(ip" "domain" 80 "ipcount-1); + a[ip]=domain; + system("/usr/bin/autoipsetadder/testip.sh "ip" "domain" 80 "ipcount-1" &"); + delete ipcache[ipcount]; + createpid=0; + } + for (ipindex in ipcache){ + print(ipcache[ipindex]" "domain" 80 "ipindex-1); + a[ipcache[ipindex]]=domain; + system("/usr/bin/autoipsetadder/testip.sh "ipcache[ipindex]" "domain" 80 "ipindex-1" &"); + delete ipcache[ipindex]; + } + testall=80; +}} +}' >> $logfile \ No newline at end of file diff --git a/package/ctcgfw/luci-app-autoipsetadder/root/usr/bin/autoipsetadder/debugip.sh b/package/ctcgfw/luci-app-autoipsetadder/root/usr/bin/autoipsetadder/debugip.sh new file mode 100755 index 0000000000..177ef65740 --- /dev/null +++ b/package/ctcgfw/luci-app-autoipsetadder/root/usr/bin/autoipsetadder/debugip.sh @@ -0,0 +1,56 @@ +#!/bin/sh +PATH="/usr/sbin:/usr/bin:/sbin:/bin" +dlchina=$1; +logfile=$(uci get autoipsetadder.autoipsetadder.logfile) +[ -z "$logfile" ] && logfile="/tmp/addlist.log" + +dnslogfile=$(uci get autoipsetadder.autoipsetadder.dnslogfile) +[ -z "$logfile" ] && dnslogfile="/tmp/dnsmasq.log" + + +ipset list gfwlist | awk -v dlchina="$dlchina" -v dnslogfile="$dnslogfile" -v logfile="$logfile" '{ +if (index($0,".")==0) +{ + next; +} +if ($0=="127.0.0.1") {system("ipset d gfwlist 127.0.0.1");next;} +"ipset test whitelist "$0" 2>&1"| getline ipset; +close("ipset test whitelist "$0" 2>&1"); + if (index(ipset,"Warning")==0){ + white=0; + }else{ + white=1; + } + "ipset test china "$0" 2>&1"| getline ipset; + close("ipset test china "$0" 2>&1"); + if (index(ipset,"Warning")!=0){ + china=1; + } + else{ + china=0; + } + if (white==1) + { + if (china==0) + { + print("warning white ip not china"$0); + ret=system("grep "$0" "logfile); + if (ret!=0) + { + ret=system("grep "$0" "dnslogfile); + } + } + }else if (china==1) + { + print("warning china ip not white"$0); + ret=system("grep "$0" "logfile) + if (ret!=0) + { + ret=system("grep "$0" "dnslogfile); + } + if (dlchina) + { + system("ipset del gfwlist "$0); + } + } +}' \ No newline at end of file diff --git a/package/ctcgfw/luci-app-autoipsetadder/root/usr/bin/autoipsetadder/tailto.sh b/package/ctcgfw/luci-app-autoipsetadder/root/usr/bin/autoipsetadder/tailto.sh new file mode 100755 index 0000000000..ab70e3a6ef --- /dev/null +++ b/package/ctcgfw/luci-app-autoipsetadder/root/usr/bin/autoipsetadder/tailto.sh @@ -0,0 +1,4 @@ +#!/bin/sh +tail -n $1 "$2" > /var/run/tailtmp +cat /var/run/tailtmp > "$2" +rm /var/run/tailtmp \ No newline at end of file diff --git a/package/ctcgfw/luci-app-autoipsetadder/root/usr/bin/autoipsetadder/testip.sh b/package/ctcgfw/luci-app-autoipsetadder/root/usr/bin/autoipsetadder/testip.sh new file mode 100755 index 0000000000..dcdda2ddd1 --- /dev/null +++ b/package/ctcgfw/luci-app-autoipsetadder/root/usr/bin/autoipsetadder/testip.sh @@ -0,0 +1,182 @@ +#!/bin/sh +config=$(uci get autoipsetadder.autoipsetadder.config 2>/dev/null) +[ "${config//pingadd/}" == "$config" ] && pingadd="0" || pingadd="1" +echo $* | awk -v pingadd="$pingadd" '{ +if ($4=="") +{ +wait=0; +}else +{wait=$4;} +system("sleep "wait); +ERRNO=""; +pidfile="/tmp/run/autoipsetadder/"$2 +getline drop< pidfile; +close(pidfile); +if (ERRNO) { +addlist=0; +print("bypass"$1" "$2); +next;} +if ($3=="443") +{ +cmd=("httping -c 1 -t 4 -l "$2" --divert-connect "$1); +} +else if ($3=="80") +{ +cmd=("httping -c 1 -t 4 "$2" --divert-connect "$1); +} +addlist=0; +slow=0; +while ((cmd | getline ret) > 0) +{ + if (addlist!=0) + { + continue; + } + else if (index(ret,"short read")!=0) + { + if (system("httping -q -c 1 -t 4 -l "$2" --divert-connect "$1)==0) + { + addlist=-1; + break; + }else{ + print("doname rst autoaddip "$1" "$2); + addlist=1; + } + } + else if (index(ret,"timeout")!=0) + { + while ((cmd | getline ret) > 0) + { + if (index(ret,"timeout")!=0) + { + print("direct so slow autoaddip "$1" "$2); + addlist=1; + slow=1; + } + } + }else if (index(ret,"SSL handshake error: (null)")!=0) + { + if(system("curl -m 10 --resolve "$2":443:"$1" https://"$2" -o /dev/null 2>/dev/null")==0){ + addlist=-1; + break; + } + }else if (index(ret,"Connection refused")!=0){ + print("direct Connection refused autoaddip"$1" "$2); + addlist=1; + } +} +close(cmd); + +if (addlist!=1) +{ + if (addlist==0){ + split(ret, c,"[ /]+"); + print(c[6]); + if (c[6]=="failed,"){ + print("can not connect autoaddip "$1" "$2); + addlist=1; + } + else if (c[6]+0>10000) + { + print("direct ssl so slow autoaddip "$1" "$2); + addlist=1; + }else{ + addlist=-1;} + } + if (addlist==-1 && pingadd==1) + { + while (("ping -c 5 -q -A "$1 | getline ret) > 0) + { + if (index(ret,"packet loss")!=0) + { + split(ret, p,"[ ]+"); + if (p[4]>0 && p[4]<5) + { + print("ping packet loss autoaddip "$1" "$2); + pingloss=1; + addlist=1; + }else{pingloss=0;} + break; + } + } + close("ping -c 5 -q "$1); + } +} +ERRNO=""; +if (pingloss!=1){ + getline drop< pidfile; + close(pidfile); +} +if (ERRNO) {addlist=0;next;} +if (addlist==1){ +system("ipset add gfwlist "$1); +while ((cmd | getline ret) > 0) +{ + if (addlist==1) + { + if (index(ret,"short read")!=0) + { + system("ipset del gfwlist "$1); + print("doname proxy rst autodelip "$1" "$2); + addlist=-2; + } + else if (index(ret,"SSL handshake error: (null)")!=0) + { + if(system("curl -m 10 --resolve "$2":443:"$1" https://"$2" -o /dev/null 2>/dev/null")==0) + { + addlist=2; + } + } + } +} +close(cmd); +if (addlist==1){ + split(ret, c,"[ /]+"); + print(c[6]); + if (c[6]=="failed,") + { + system("ipset del gfwlist "$1); + print("proxy can not connect autodelip "$1" "$2); + addlist=-2; + }else{ + addlist=2; + } +} +} +}END{ +if (addlist==2) +{ if (pingloss==0){ + ERRNO=""; + getline drop< pidfile; + if (ERRNO) { + system("ipset del gfwlist "$1); + print("cancel add myself "$1" "$2" due to one ip success direct"); + }else{ + print $1"\n">>pidfile; + } + close(pidfile);} +}else if (addlist==-1) +{ + print($1" "$2" direct success"); + while ((getline ret< pidfile) > 0) + { + if (ret!=""){ + system("ipset del gfwlist "ret); + print("cancel add someone "ret" "$2" due to me"$1" success direct"); + } + } + close(pidfile); + system("rm "pidfile" 2>/dev/null"); + print($1" del "$2); +}else if (addlist==-2) +{ + system("sleep 10"); + while ((getline ret< pidfile) > 0) + { + if (ret!=""){ + system("ipset add gfwlist "$1); + print("add "ret" "$2" due to one ip success proxy"); + break;} + } + close(pidfile); +}}' \ No newline at end of file diff --git a/package/ctcgfw/luci-app-baidupcs-web/Makefile b/package/ctcgfw/luci-app-baidupcs-web/Makefile new file mode 100644 index 0000000000..54a29901ca --- /dev/null +++ b/package/ctcgfw/luci-app-baidupcs-web/Makefile @@ -0,0 +1,22 @@ +# +# +# +# Copyright (C) 2020 KFERMercer +# Copyright (C) 2020 [CTCGFW] Project OpenWRT +# +# THIS IS FREE SOFTWARE, LICENSED UNDER GPLv3. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=luci-app-baidupcs-web +LUCI_TITLE:=LuCI support for BaiduPCS-Go +LUCI_DEPENDS:=+baidupcs-web +wget +openssl-util +LUCI_PKGARCH:=all +PKG_VERSION:=1.0 +PKG_RELEASE:=5 +PKG_MAINTAINER:= + +include $(TOPDIR)/feeds/luci/luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/package/ctcgfw/luci-app-baidupcs-web/luasrc/controller/baidupcs-web.lua b/package/ctcgfw/luci-app-baidupcs-web/luasrc/controller/baidupcs-web.lua new file mode 100644 index 0000000000..805269dd16 --- /dev/null +++ b/package/ctcgfw/luci-app-baidupcs-web/luasrc/controller/baidupcs-web.lua @@ -0,0 +1,17 @@ +module("luci.controller.baidupcs-web", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/baidupcs-web") then + return + end + entry({"admin", "nas", "baidupcs-web"}, cbi("baidupcs-web"), _("BaiduPCS Web"), 300).dependent = true + entry({"admin","nas","baidupcs-web","status"},call("act_status")).leaf=true +end + +function act_status() + local e={} + e.running=luci.sys.call("pgrep baidupcs-web >/dev/null")==0 + -- e.port=luci.sys.exec("uci get baidupcs-web.config.port") + luci.http.prepare_content("application/json") + luci.http.write_json(e) +end diff --git a/package/ctcgfw/luci-app-baidupcs-web/luasrc/model/cbi/baidupcs-web.lua b/package/ctcgfw/luci-app-baidupcs-web/luasrc/model/cbi/baidupcs-web.lua new file mode 100644 index 0000000000..c693aad02d --- /dev/null +++ b/package/ctcgfw/luci-app-baidupcs-web/luasrc/model/cbi/baidupcs-web.lua @@ -0,0 +1,48 @@ +--[[ + +Copyright (C) 2020 KFERMercer +Copyright (C) 2020 [CTCGFW] Project OpenWRT + +THIS IS FREE SOFTWARE, LICENSED UNDER GPLv3 + +]]-- + +m = Map("baidupcs-web") +m.title = translate("BaiduPCS-Web") +m.description = translate("基于BaiduPCS-Go, 可以让你高效的使用百度云") + +m:section(SimpleSection).template = "baidupcs-web/baidupcs-web_status" + +s = m:section(TypedSection, "baidupcs-web") +s.addremove = false +s.anonymous = true + +enable = s:option(Flag, "enabled", translate("启用")) +enable.rmempty = false + +o = s:option(Value, "port", translate("网页端口")) +o.datatype = "port" +o.placeholder = "5299" +o.default = "5299" +o.rmempty = false + +o = s:option(Value, "download_dir", translate("下载目录")) +o.placeholder = "/opt/baidupcsweb-download" +o.default = "/opt/baidupcsweb-download" +o.rmempty = false + +o = s:option(Value, "max_download_rate", translate("最大下载速度")) +o.placeholder = "0" + +o = s:option(Value, "max_upload_rate", translate("最大上传速度")) +o.placeholder = "0" +o.description = translate("0代表不限制, 单位为每秒的传输速率, 后缀'/s' 可省略, 如 2MB/s, 2MB, 2m, 2mb 均为一个意思") + +o = s:option(Value, "max_download_load", translate("同时进行下载文件的最大数量")) +o.placeholder = "1" +o.description = translate("不要太贪心, 当心被封号") + +o = s:option(Value, "max_parallel", translate("最大并发连接数")) +o.placeholder = "8" + +return m diff --git a/package/ctcgfw/luci-app-baidupcs-web/luasrc/view/baidupcs-web/baidupcs-web_status.htm b/package/ctcgfw/luci-app-baidupcs-web/luasrc/view/baidupcs-web/baidupcs-web_status.htm new file mode 100644 index 0000000000..168e66011d --- /dev/null +++ b/package/ctcgfw/luci-app-baidupcs-web/luasrc/view/baidupcs-web/baidupcs-web_status.htm @@ -0,0 +1,38 @@ + + + + +
+

+ <%:Collecting data...%> +

+
diff --git a/package/ctcgfw/luci-app-baidupcs-web/root/etc/config/baidupcs-web b/package/ctcgfw/luci-app-baidupcs-web/root/etc/config/baidupcs-web new file mode 100644 index 0000000000..fd78131ef4 --- /dev/null +++ b/package/ctcgfw/luci-app-baidupcs-web/root/etc/config/baidupcs-web @@ -0,0 +1,2 @@ + +config baidupcs-web 'config' diff --git a/package/ctcgfw/luci-app-baidupcs-web/root/etc/init.d/baidupcs-web b/package/ctcgfw/luci-app-baidupcs-web/root/etc/init.d/baidupcs-web new file mode 100755 index 0000000000..ad70df944d --- /dev/null +++ b/package/ctcgfw/luci-app-baidupcs-web/root/etc/init.d/baidupcs-web @@ -0,0 +1,32 @@ +#!/bin/sh /etc/rc.common + +START=90 +STOP=10 + +enabled="$(uci get baidupcs-web.config.enabled)" +port="$(uci get baidupcs-web.config.port)" +download_dir="$(uci get baidupcs-web.config.download_dir)" +max_download_rate="$(uci get baidupcs-web.config.max_download_rate || echo '0')" +max_upload_rate="$(uci get baidupcs-web.config.max_upload_rate || echo '0')" +max_download_load="$(uci get baidupcs-web.config.max_download_load || echo '1')" +max_parallel="$(uci get baidupcs-web.config.max_parallel || echo '8')" + +start() { + stop + [ "$enabled" == "1" ] || exit 0 + mkdir -p "${download_dir}" + baidupcs-web config set \ + --savedir "${download_dir}" \ + --max_download_rate "${max_download_rate}" \ + --max_upload_rate "${max_upload_rate}" \ + --max_download_load "${max_download_load}" \ + --max_parallel "${max_parallel}" \ + --max_upload_parallel "${max_parallel}" \ + >/dev/null 2>&1 + + baidupcs-web web --port "${port}" --access >/dev/null 2>&1 & +} + +stop() { + killall baidupcs-web >/dev/null 2>&1 +} diff --git a/package/ctcgfw/luci-app-baidupcs-web/root/etc/uci-defaults/luci-baidupcs-web b/package/ctcgfw/luci-app-baidupcs-web/root/etc/uci-defaults/luci-baidupcs-web new file mode 100755 index 0000000000..e72523b798 --- /dev/null +++ b/package/ctcgfw/luci-app-baidupcs-web/root/etc/uci-defaults/luci-baidupcs-web @@ -0,0 +1,11 @@ +#!/bin/sh + +uci -q batch <<-EOF >/dev/null + delete ucitrack.@baidupcs-web[-1] + add ucitrack baidupcs-web + set ucitrack.@baidupcs-web[-1].init=baidupcs-web + commit ucitrack +EOF + +rm -f /tmp/luci-indexcache +exit 0 diff --git a/package/ctcgfw/luci-app-chinadns/Makefile b/package/ctcgfw/luci-app-chinadns/Makefile new file mode 100644 index 0000000000..639b41e7c2 --- /dev/null +++ b/package/ctcgfw/luci-app-chinadns/Makefile @@ -0,0 +1,85 @@ +# +# Copyright (C) 2017 Ian Li +# +# This is free software, licensed under the GNU General Public License v3. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=luci-app-chinadns +PKG_VERSION:=2.0.1 +PKG_RELEASE:=1 + +PKG_LICENSE:=GPLv3 +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Ian Li + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) + +include $(INCLUDE_DIR)/package.mk + +define Package/luci-app-chinadns + SECTION:=luci + CATEGORY:=LuCI + SUBMENU:=3. Applications + TITLE:=LuCI Support for ChinaDNS + PKGARCH:=all + DEPENDS:=+ChinaDNS +curl +endef + +define Package/luci-app-chinadns/description + LuCI Support for ChinaDNS. +endef + +define Build/Prepare + $(foreach po,$(wildcard ${CURDIR}/files/luci/i18n/*.po), \ + po2lmo $(po) $(PKG_BUILD_DIR)/$(patsubst %.po,%.lmo,$(notdir $(po)));) +endef + +define Build/Configure +endef + +define Build/Compile +endef + +define Package/luci-app-chinadns/postinst +#!/bin/sh +if [ -z "$${IPKG_INSTROOT}" ]; then + if [ -f /etc/uci-defaults/luci-chinadns ]; then + ( . /etc/uci-defaults/luci-chinadns ) && \ + rm -f /etc/uci-defaults/luci-chinadns + fi + rm -rf /tmp/luci-indexcache +fi +exit 0 +endef + +define Package/luci-app-chinadns/postrm +#!/bin/sh +rm -f /tmp/luci-indexcache +exit 0 +endef + +define Package/luci-app-chinadns/conffiles +/etc/config/chinadns +endef + +define Package/luci-app-chinadns/install + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/view/chinadns + $(INSTALL_DATA) ./files/luci/view/chinadns/chinadns_status.htm $(1)/usr/lib/lua/luci/view/chinadns/chinadns_status.htm + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/i18n + $(INSTALL_DATA) $(PKG_BUILD_DIR)/chinadns.*.lmo $(1)/usr/lib/lua/luci/i18n/ + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller + $(INSTALL_DATA) ./files/luci/controller/chinadns.lua $(1)/usr/lib/lua/luci/controller/chinadns.lua + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/chinadns + $(INSTALL_DATA) ./files/luci/model/cbi/chinadns.lua $(1)/usr/lib/lua/luci/model/cbi/chinadns.lua + $(INSTALL_DIR) $(1)/etc/config + $(INSTALL_DATA) ./files/root/etc/config/chinadns $(1)/etc/config/chinadns + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/root/etc/init.d/chinadns $(1)/etc/init.d/chinadns + $(INSTALL_DIR) $(1)/etc/uci-defaults + $(INSTALL_BIN) ./files/root/etc/uci-defaults/luci-chinadns $(1)/etc/uci-defaults/luci-chinadns +endef + +$(eval $(call BuildPackage,luci-app-chinadns)) diff --git a/package/ctcgfw/luci-app-chinadns/files/luci/controller/chinadns.lua b/package/ctcgfw/luci-app-chinadns/files/luci/controller/chinadns.lua new file mode 100644 index 0000000000..cd8056a4c0 --- /dev/null +++ b/package/ctcgfw/luci-app-chinadns/files/luci/controller/chinadns.lua @@ -0,0 +1,21 @@ +-- Copyright (C) 2016 OpenWrt-dist +-- Copyright (C) 2016 Jian Chang +-- Licensed to the public under the GNU General Public License v3. + +module("luci.controller.chinadns", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/chinadns") then + return + end + + entry({"admin", "services", "chinadns"}, cbi("chinadns"), _("ChinaDNS"), 70).dependent = true + entry({"admin", "services", "chinadns", "status"},call("act_status")).leaf=true +end + +function act_status() + local e={} + e.running=luci.sys.call("ps | grep /usr/sbin/chinadns | grep -v grep >/dev/null")==0 + luci.http.prepare_content("application/json") + luci.http.write_json(e) +end diff --git a/package/ctcgfw/luci-app-chinadns/files/luci/i18n/chinadns.zh-cn.po b/package/ctcgfw/luci-app-chinadns/files/luci/i18n/chinadns.zh-cn.po new file mode 100644 index 0000000000..7682c8ee76 --- /dev/null +++ b/package/ctcgfw/luci-app-chinadns/files/luci/i18n/chinadns.zh-cn.po @@ -0,0 +1,41 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8\n" + +msgid "ChinaDNS" +msgstr "ChinaDNS" + +msgid "CHNRoute File" +msgstr "国内路由表" + +msgid "Enable" +msgstr "启用" + +msgid "Used a proxy or not" +msgstr "是否使用了代理服务器" + +msgid "If you used a proxy like shadowsocks, please tick this option." +msgstr "如果您使用了类似SS的代理程序,请勾选此选项" + +msgid "Foreign Subnet" +msgstr "外网子网" + +msgid "Just foreign subnet. The local subnet will be automatically obtained." +msgstr "仅填写外网子网地址即可,本地子网地址会自动获取。" + +msgid "General Setting" +msgstr "基本设置" + +msgid "Local Port" +msgstr "本地端口" + +msgid "NOT RUNNING" +msgstr "未运行" + +msgid "RUNNING" +msgstr "运行中" + +msgid "Upstream Server" +msgstr "上游服务器" + +msgid "A DNS server with edns-client-subnet support required, fill one only!" +msgstr "需要具有edns-client-subnet支持的DNS服务器,仅限填写一个!" diff --git a/package/ctcgfw/luci-app-chinadns/files/luci/model/cbi/chinadns.lua b/package/ctcgfw/luci-app-chinadns/files/luci/model/cbi/chinadns.lua new file mode 100644 index 0000000000..66e1561d23 --- /dev/null +++ b/package/ctcgfw/luci-app-chinadns/files/luci/model/cbi/chinadns.lua @@ -0,0 +1,48 @@ +-- Copyright (C) 2016 OpenWrt-dist +-- Copyright (C) 2016 Jian Chang +-- Copyright (C) 2017 Ian Li +-- Licensed to the public under the GNU General Public License v3. + +m = Map("chinadns", translate("ChinaDNS")) +m:section(SimpleSection).template = "chinadns/chinadns_status" + +s = m:section(TypedSection, "chinadns", translate("General Setting")) +s.anonymous = true + +o = s:option(Flag, "enable", translate("Enable")) +o.rmempty = false + +o = s:option(Flag, "yn_use_proxy", + translate("Used a proxy or not"), + translate("If you used a proxy like shadowsocks, please tick this option.")) +o.rmenpty = false + +o = s:option(Value, "port", translate("Local Port")) +o.placeholder = 5353 +o.default = 5353 +o.datatype = "port" +o.rmempty = false + +o = s:option(Value, "chnroute", translate("CHNRoute File")) +o.placeholder = "/etc/chinadns_chnroute.txt" +o.default = "/etc/chinadns_chnroute.txt" +o.datatype = "file" +o.rmempty = false + +o = s:option(Value, "foreign_subnet", + translate("Foreign Subnet"), + translate("Just foreign subnet. The local subnet will be automatically obtained.")) +o.placeholder = "45.76.96.0" +o.default = "45.76.96.0" +o.datatype = "ipaddr" +o:depends("yn_use_proxy", 0) + +o = s:option(Value, "server", + translate("Upstream Server"), + translate("A DNS server with edns-client-subnet support required, fill one only!")) +o.placeholder = "8.8.8.8" +o.default = "8.8.8.8" +o.datatype = "ipaddr" +o.rmempty = false + +return m diff --git a/package/ctcgfw/luci-app-chinadns/files/luci/view/chinadns/chinadns_status.htm b/package/ctcgfw/luci-app-chinadns/files/luci/view/chinadns/chinadns_status.htm new file mode 100644 index 0000000000..6e63ee3b8b --- /dev/null +++ b/package/ctcgfw/luci-app-chinadns/files/luci/view/chinadns/chinadns_status.htm @@ -0,0 +1,22 @@ + + +
+

+ <%:Collecting data...%> +

+
diff --git a/package/ctcgfw/luci-app-chinadns/files/root/etc/config/chinadns b/package/ctcgfw/luci-app-chinadns/files/root/etc/config/chinadns new file mode 100644 index 0000000000..b7adc367aa --- /dev/null +++ b/package/ctcgfw/luci-app-chinadns/files/root/etc/config/chinadns @@ -0,0 +1,7 @@ +config chinadns + option chnroute '/etc/chinadns_chnroute.txt' + option enable '0' + option yn_use_proxy '0' + option port '5300' + option server '8.8.8.8' + option foreign_subnet '45.76.96.0' diff --git a/package/ctcgfw/luci-app-chinadns/files/root/etc/init.d/chinadns b/package/ctcgfw/luci-app-chinadns/files/root/etc/init.d/chinadns new file mode 100755 index 0000000000..589ce1680b --- /dev/null +++ b/package/ctcgfw/luci-app-chinadns/files/root/etc/init.d/chinadns @@ -0,0 +1,25 @@ +#!/bin/sh /etc/rc.common + +START=99 +STOP=10 + +chnroute="$(uci get chinadns.@chinadns[0].chnroute)" +enable="$(uci get chinadns.@chinadns[0].enable)" +port="$(uci get chinadns.@chinadns[0].port)" +server="$(uci get chinadns.@chinadns[0].server)" +yn_use_proxy="$(uci get chinadns.@chinadns[0].yn_use_proxy)" + +local_subnet="$(curl -4 -s members.3322.org/dyndns/getip | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.')0" +[ "${yn_use_proxy}" -eq "1" ] && foreign_subnet="$(curl -4 -s ip.sb | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.')0)" || foreign_subnet="$(uci get chinadns.@chinadns[0].foreign_subnet)" + +start() +{ + stop + [ "${enable}" -eq "0" ] && exit 0 + /usr/sbin/chinadns -p "${port}" -s "${server}" -c "${chnroute}" -e "${local_subnet},${foreign_subnet}" >/dev/null 2>&1 & +} + +stop() +{ + kill -9 "$(ps | grep "/usr/sbin/chinadns" | grep -v grep | awk '{print $1}')" >/dev/null 2>&1 +} diff --git a/package/ctcgfw/luci-app-chinadns/files/root/etc/uci-defaults/luci-chinadns b/package/ctcgfw/luci-app-chinadns/files/root/etc/uci-defaults/luci-chinadns new file mode 100755 index 0000000000..2309ac9612 --- /dev/null +++ b/package/ctcgfw/luci-app-chinadns/files/root/etc/uci-defaults/luci-chinadns @@ -0,0 +1,8 @@ +#!/bin/sh +uci -q batch <<-EOF >/dev/null + delete ucitrack.@chinands[-1] + add ucitrack chinadns + set ucitrack.@chinadns[-1].init=chinadns + commit ucitrack +EOF +exit 0 diff --git a/package/ctcgfw/luci-app-chinadns/tools/po2lmo/Makefile b/package/ctcgfw/luci-app-chinadns/tools/po2lmo/Makefile new file mode 100644 index 0000000000..ad2c133207 --- /dev/null +++ b/package/ctcgfw/luci-app-chinadns/tools/po2lmo/Makefile @@ -0,0 +1,12 @@ + +INSTALL = install +PREFIX = /usr/bin + +po2lmo: src/po2lmo.o src/template_lmo.o + $(CC) $(LDFLAGS) -o src/po2lmo src/po2lmo.o src/template_lmo.o + +install: + $(INSTALL) -m 755 src/po2lmo $(PREFIX) + +clean: + $(RM) src/po2lmo src/*.o diff --git a/package/ctcgfw/luci-app-chinadns/tools/po2lmo/src/po2lmo.c b/package/ctcgfw/luci-app-chinadns/tools/po2lmo/src/po2lmo.c new file mode 100644 index 0000000000..0da792b680 --- /dev/null +++ b/package/ctcgfw/luci-app-chinadns/tools/po2lmo/src/po2lmo.c @@ -0,0 +1,247 @@ +/* + * lmo - Lua Machine Objects - PO to LMO conversion tool + * + * Copyright (C) 2009-2012 Jo-Philipp Wich + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "template_lmo.h" + +static void die(const char *msg) +{ + fprintf(stderr, "Error: %s\n", msg); + exit(1); +} + +static void usage(const char *name) +{ + fprintf(stderr, "Usage: %s input.po output.lmo\n", name); + exit(1); +} + +static void print(const void *ptr, size_t size, size_t nmemb, FILE *stream) +{ + if( fwrite(ptr, size, nmemb, stream) == 0 ) + die("Failed to write stdout"); +} + +static int extract_string(const char *src, char *dest, int len) +{ + int pos = 0; + int esc = 0; + int off = -1; + + for( pos = 0; (pos < strlen(src)) && (pos < len); pos++ ) + { + if( (off == -1) && (src[pos] == '"') ) + { + off = pos + 1; + } + else if( off >= 0 ) + { + if( esc == 1 ) + { + switch (src[pos]) + { + case '"': + case '\\': + off++; + break; + } + dest[pos-off] = src[pos]; + esc = 0; + } + else if( src[pos] == '\\' ) + { + dest[pos-off] = src[pos]; + esc = 1; + } + else if( src[pos] != '"' ) + { + dest[pos-off] = src[pos]; + } + else + { + dest[pos-off] = '\0'; + break; + } + } + } + + return (off > -1) ? strlen(dest) : -1; +} + +static int cmp_index(const void *a, const void *b) +{ + uint32_t x = ((const lmo_entry_t *)a)->key_id; + uint32_t y = ((const lmo_entry_t *)b)->key_id; + + if (x < y) + return -1; + else if (x > y) + return 1; + + return 0; +} + +static void print_uint32(uint32_t x, FILE *out) +{ + uint32_t y = htonl(x); + print(&y, sizeof(uint32_t), 1, out); +} + +static void print_index(void *array, int n, FILE *out) +{ + lmo_entry_t *e; + + qsort(array, n, sizeof(*e), cmp_index); + + for (e = array; n > 0; n--, e++) + { + print_uint32(e->key_id, out); + print_uint32(e->val_id, out); + print_uint32(e->offset, out); + print_uint32(e->length, out); + } +} + +int main(int argc, char *argv[]) +{ + char line[4096]; + char key[4096]; + char val[4096]; + char tmp[4096]; + int state = 0; + int offset = 0; + int length = 0; + int n_entries = 0; + void *array = NULL; + lmo_entry_t *entry = NULL; + uint32_t key_id, val_id; + + FILE *in; + FILE *out; + + if( (argc != 3) || ((in = fopen(argv[1], "r")) == NULL) || ((out = fopen(argv[2], "w")) == NULL) ) + usage(argv[0]); + + memset(line, 0, sizeof(key)); + memset(key, 0, sizeof(val)); + memset(val, 0, sizeof(val)); + + while( (NULL != fgets(line, sizeof(line), in)) || (state >= 2 && feof(in)) ) + { + if( state == 0 && strstr(line, "msgid \"") == line ) + { + switch(extract_string(line, key, sizeof(key))) + { + case -1: + die("Syntax error in msgid"); + case 0: + state = 1; + break; + default: + state = 2; + } + } + else if( state == 1 || state == 2 ) + { + if( strstr(line, "msgstr \"") == line || state == 2 ) + { + switch(extract_string(line, val, sizeof(val))) + { + case -1: + state = 4; + break; + default: + state = 3; + } + } + else + { + switch(extract_string(line, tmp, sizeof(tmp))) + { + case -1: + state = 2; + break; + default: + strcat(key, tmp); + } + } + } + else if( state == 3 ) + { + switch(extract_string(line, tmp, sizeof(tmp))) + { + case -1: + state = 4; + break; + default: + strcat(val, tmp); + } + } + + if( state == 4 ) + { + if( strlen(key) > 0 && strlen(val) > 0 ) + { + key_id = sfh_hash(key, strlen(key)); + val_id = sfh_hash(val, strlen(val)); + + if( key_id != val_id ) + { + n_entries++; + array = realloc(array, n_entries * sizeof(lmo_entry_t)); + entry = (lmo_entry_t *)array + n_entries - 1; + + if (!array) + die("Out of memory"); + + entry->key_id = key_id; + entry->val_id = val_id; + entry->offset = offset; + entry->length = strlen(val); + + length = strlen(val) + ((4 - (strlen(val) % 4)) % 4); + + print(val, length, 1, out); + offset += length; + } + } + + state = 0; + memset(key, 0, sizeof(key)); + memset(val, 0, sizeof(val)); + } + + memset(line, 0, sizeof(line)); + } + + print_index(array, n_entries, out); + + if( offset > 0 ) + { + print_uint32(offset, out); + fsync(fileno(out)); + fclose(out); + } + else + { + fclose(out); + unlink(argv[2]); + } + + fclose(in); + return(0); +} diff --git a/package/ctcgfw/luci-app-chinadns/tools/po2lmo/src/template_lmo.c b/package/ctcgfw/luci-app-chinadns/tools/po2lmo/src/template_lmo.c new file mode 100644 index 0000000000..27205a7228 --- /dev/null +++ b/package/ctcgfw/luci-app-chinadns/tools/po2lmo/src/template_lmo.c @@ -0,0 +1,328 @@ +/* + * lmo - Lua Machine Objects - Base functions + * + * Copyright (C) 2009-2010 Jo-Philipp Wich + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "template_lmo.h" + +/* + * Hash function from http://www.azillionmonkeys.com/qed/hash.html + * Copyright (C) 2004-2008 by Paul Hsieh + */ + +uint32_t sfh_hash(const char *data, int len) +{ + uint32_t hash = len, tmp; + int rem; + + if (len <= 0 || data == NULL) return 0; + + rem = len & 3; + len >>= 2; + + /* Main loop */ + for (;len > 0; len--) { + hash += sfh_get16(data); + tmp = (sfh_get16(data+2) << 11) ^ hash; + hash = (hash << 16) ^ tmp; + data += 2*sizeof(uint16_t); + hash += hash >> 11; + } + + /* Handle end cases */ + switch (rem) { + case 3: hash += sfh_get16(data); + hash ^= hash << 16; + hash ^= data[sizeof(uint16_t)] << 18; + hash += hash >> 11; + break; + case 2: hash += sfh_get16(data); + hash ^= hash << 11; + hash += hash >> 17; + break; + case 1: hash += *data; + hash ^= hash << 10; + hash += hash >> 1; + } + + /* Force "avalanching" of final 127 bits */ + hash ^= hash << 3; + hash += hash >> 5; + hash ^= hash << 4; + hash += hash >> 17; + hash ^= hash << 25; + hash += hash >> 6; + + return hash; +} + +uint32_t lmo_canon_hash(const char *str, int len) +{ + char res[4096]; + char *ptr, prev; + int off; + + if (!str || len >= sizeof(res)) + return 0; + + for (prev = ' ', ptr = res, off = 0; off < len; prev = *str, off++, str++) + { + if (isspace(*str)) + { + if (!isspace(prev)) + *ptr++ = ' '; + } + else + { + *ptr++ = *str; + } + } + + if ((ptr > res) && isspace(*(ptr-1))) + ptr--; + + return sfh_hash(res, ptr - res); +} + +lmo_archive_t * lmo_open(const char *file) +{ + int in = -1; + uint32_t idx_offset = 0; + struct stat s; + + lmo_archive_t *ar = NULL; + + if (stat(file, &s) == -1) + goto err; + + if ((in = open(file, O_RDONLY)) == -1) + goto err; + + if ((ar = (lmo_archive_t *)malloc(sizeof(*ar))) != NULL) + { + memset(ar, 0, sizeof(*ar)); + + ar->fd = in; + ar->size = s.st_size; + + fcntl(ar->fd, F_SETFD, fcntl(ar->fd, F_GETFD) | FD_CLOEXEC); + + if ((ar->mmap = mmap(NULL, ar->size, PROT_READ, MAP_SHARED, ar->fd, 0)) == MAP_FAILED) + goto err; + + idx_offset = ntohl(*((const uint32_t *) + (ar->mmap + ar->size - sizeof(uint32_t)))); + + if (idx_offset >= ar->size) + goto err; + + ar->index = (lmo_entry_t *)(ar->mmap + idx_offset); + ar->length = (ar->size - idx_offset - sizeof(uint32_t)) / sizeof(lmo_entry_t); + ar->end = ar->mmap + ar->size; + + return ar; + } + +err: + if (in > -1) + close(in); + + if (ar != NULL) + { + if ((ar->mmap != NULL) && (ar->mmap != MAP_FAILED)) + munmap(ar->mmap, ar->size); + + free(ar); + } + + return NULL; +} + +void lmo_close(lmo_archive_t *ar) +{ + if (ar != NULL) + { + if ((ar->mmap != NULL) && (ar->mmap != MAP_FAILED)) + munmap(ar->mmap, ar->size); + + close(ar->fd); + free(ar); + + ar = NULL; + } +} + + +lmo_catalog_t *_lmo_catalogs = NULL; +lmo_catalog_t *_lmo_active_catalog = NULL; + +int lmo_load_catalog(const char *lang, const char *dir) +{ + DIR *dh = NULL; + char pattern[16]; + char path[PATH_MAX]; + struct dirent *de = NULL; + + lmo_archive_t *ar = NULL; + lmo_catalog_t *cat = NULL; + + if (!lmo_change_catalog(lang)) + return 0; + + if (!dir || !(dh = opendir(dir))) + goto err; + + if (!(cat = malloc(sizeof(*cat)))) + goto err; + + memset(cat, 0, sizeof(*cat)); + + snprintf(cat->lang, sizeof(cat->lang), "%s", lang); + snprintf(pattern, sizeof(pattern), "*.%s.lmo", lang); + + while ((de = readdir(dh)) != NULL) + { + if (!fnmatch(pattern, de->d_name, 0)) + { + snprintf(path, sizeof(path), "%s/%s", dir, de->d_name); + ar = lmo_open(path); + + if (ar) + { + ar->next = cat->archives; + cat->archives = ar; + } + } + } + + closedir(dh); + + cat->next = _lmo_catalogs; + _lmo_catalogs = cat; + + if (!_lmo_active_catalog) + _lmo_active_catalog = cat; + + return 0; + +err: + if (dh) closedir(dh); + if (cat) free(cat); + + return -1; +} + +int lmo_change_catalog(const char *lang) +{ + lmo_catalog_t *cat; + + for (cat = _lmo_catalogs; cat; cat = cat->next) + { + if (!strncmp(cat->lang, lang, sizeof(cat->lang))) + { + _lmo_active_catalog = cat; + return 0; + } + } + + return -1; +} + +static lmo_entry_t * lmo_find_entry(lmo_archive_t *ar, uint32_t hash) +{ + unsigned int m, l, r; + uint32_t k; + + l = 0; + r = ar->length - 1; + + while (1) + { + m = l + ((r - l) / 2); + + if (r < l) + break; + + k = ntohl(ar->index[m].key_id); + + if (k == hash) + return &ar->index[m]; + + if (k > hash) + { + if (!m) + break; + + r = m - 1; + } + else + { + l = m + 1; + } + } + + return NULL; +} + +int lmo_translate(const char *key, int keylen, char **out, int *outlen) +{ + uint32_t hash; + lmo_entry_t *e; + lmo_archive_t *ar; + + if (!key || !_lmo_active_catalog) + return -2; + + hash = lmo_canon_hash(key, keylen); + + for (ar = _lmo_active_catalog->archives; ar; ar = ar->next) + { + if ((e = lmo_find_entry(ar, hash)) != NULL) + { + *out = ar->mmap + ntohl(e->offset); + *outlen = ntohl(e->length); + return 0; + } + } + + return -1; +} + +void lmo_close_catalog(const char *lang) +{ + lmo_archive_t *ar, *next; + lmo_catalog_t *cat, *prev; + + for (prev = NULL, cat = _lmo_catalogs; cat; prev = cat, cat = cat->next) + { + if (!strncmp(cat->lang, lang, sizeof(cat->lang))) + { + if (prev) + prev->next = cat->next; + else + _lmo_catalogs = cat->next; + + for (ar = cat->archives; ar; ar = next) + { + next = ar->next; + lmo_close(ar); + } + + free(cat); + break; + } + } +} diff --git a/package/ctcgfw/luci-app-chinadns/tools/po2lmo/src/template_lmo.h b/package/ctcgfw/luci-app-chinadns/tools/po2lmo/src/template_lmo.h new file mode 100644 index 0000000000..57f59aa56b --- /dev/null +++ b/package/ctcgfw/luci-app-chinadns/tools/po2lmo/src/template_lmo.h @@ -0,0 +1,92 @@ +/* + * lmo - Lua Machine Objects - General header + * + * Copyright (C) 2009-2012 Jo-Philipp Wich + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef _TEMPLATE_LMO_H_ +#define _TEMPLATE_LMO_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if (defined(__GNUC__) && defined(__i386__)) +#define sfh_get16(d) (*((const uint16_t *) (d))) +#else +#define sfh_get16(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)\ + +(uint32_t)(((const uint8_t *)(d))[0]) ) +#endif + + +struct lmo_entry { + uint32_t key_id; + uint32_t val_id; + uint32_t offset; + uint32_t length; +} __attribute__((packed)); + +typedef struct lmo_entry lmo_entry_t; + + +struct lmo_archive { + int fd; + int length; + uint32_t size; + lmo_entry_t *index; + char *mmap; + char *end; + struct lmo_archive *next; +}; + +typedef struct lmo_archive lmo_archive_t; + + +struct lmo_catalog { + char lang[6]; + struct lmo_archive *archives; + struct lmo_catalog *next; +}; + +typedef struct lmo_catalog lmo_catalog_t; + + +uint32_t sfh_hash(const char *data, int len); +uint32_t lmo_canon_hash(const char *data, int len); + +lmo_archive_t * lmo_open(const char *file); +void lmo_close(lmo_archive_t *ar); + + +extern lmo_catalog_t *_lmo_catalogs; +extern lmo_catalog_t *_lmo_active_catalog; + +int lmo_load_catalog(const char *lang, const char *dir); +int lmo_change_catalog(const char *lang); +int lmo_translate(const char *key, int keylen, char **out, int *outlen); +void lmo_close_catalog(const char *lang); + +#endif diff --git a/package/ctcgfw/luci-app-diskman/Makefile b/package/ctcgfw/luci-app-diskman/Makefile new file mode 100644 index 0000000000..b40ddbcffe --- /dev/null +++ b/package/ctcgfw/luci-app-diskman/Makefile @@ -0,0 +1,46 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=luci-app-diskman +PKG_VERSION:=v0.1.8 +PKG_RELEASE:=beta +PKG_MAINTAINER:=lisaac +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) +PKG_LICENSE:=Apache-2.0 + +include $(INCLUDE_DIR)/package.mk + +define Package/$(PKG_NAME) + SECTION:=luci + CATEGORY:=LuCI + SUBMENU:=3. Applications + TITLE:=Disk Manager interface for LuCI + PKGARCH:=all + DEPENDS:=+e2fsprogs +parted +smartmontools +blkid +endef + +define Package/$(PKG_NAME)/description + Disk Manager interface for LuCI +endef + +define Build/Prepare +endef + +define Build/Compile +endef + +define Package/$(PKG_NAME)/postinst +#!/bin/sh +rm -fr /tmp/luci-indexcache /tmp/luci-modulecache +endef + +define Package/$(PKG_NAME)/install + $(INSTALL_DIR) $(1)/usr/lib/lua/luci + cp -pR ./luasrc/* $(1)/usr/lib/lua/luci + # $(INSTALL_DIR) $(1)/ + # cp -pR ./root/* $(1)/ + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/i18n + po2lmo ./po/zh-cn/diskman.po $(1)/usr/lib/lua/luci/i18n/diskman.zh-cn.lmo + po2lmo ./po/pl/diskman.po $(1)/usr/lib/lua/luci/i18n/diskman.pl.lmo +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/package/ctcgfw/luci-app-diskman/depends.lst b/package/ctcgfw/luci-app-diskman/depends.lst new file mode 100644 index 0000000000..42b5f0cf0e --- /dev/null +++ b/package/ctcgfw/luci-app-diskman/depends.lst @@ -0,0 +1 @@ +e2fsprogs parted smartmontools blkid \ No newline at end of file diff --git a/package/ctcgfw/luci-app-diskman/luasrc/controller/diskman.lua b/package/ctcgfw/luci-app-diskman/luasrc/controller/diskman.lua new file mode 100644 index 0000000000..a1e876240e --- /dev/null +++ b/package/ctcgfw/luci-app-diskman/luasrc/controller/diskman.lua @@ -0,0 +1,136 @@ +--[[ +LuCI - Lua Configuration Interface +Copyright 2019 lisaac +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +$Id$ +]]-- + +require "luci.util" +module("luci.controller.diskman",package.seeall) + +function index() + -- check all used executables in disk management are existed + local CMD = {"parted", "blkid", "smartctl"} + local executables_all_existed = true + for _, cmd in ipairs(CMD) do + local command = luci.sys.exec("/usr/bin/which " .. cmd) + if not command:match(cmd) then + executables_all_existed = false + break + end + end + + if not executables_all_existed then return end + -- entry(path, target, title, order) + -- set leaf attr to true to pass argument throughe url (e.g. admin/system/disk/partition/sda) + entry({"admin", "system", "diskman"}, alias("admin", "system", "diskman", "disks"), _("Disk Man"), 55) + entry({"admin", "system", "diskman", "disks"}, form("diskman/disks"), nil).leaf = true + entry({"admin", "system", "diskman", "partition"}, form("diskman/partition"), nil).leaf = true + entry({"admin", "system", "diskman", "get_disk_info"}, call("get_disk_info"), nil).leaf = true + entry({"admin", "system", "diskman", "mk_p_table"}, call("mk_p_table"), nil).leaf = true + entry({"admin", "system", "diskman", "smartdetail"}, call("smart_detail"), nil).leaf = true + entry({"admin", "system", "diskman", "smartattr"}, call("smart_attr"), nil).leaf = true +end + +function get_disk_info(dev) + if not dev then + luci.http.status(500, "no device") + luci.http.write_json("no device") + return + elseif not nixio.fs.access("/dev/"..dev) then + luci.http.status(500, "no device") + luci.http.write_json("no device") + return + end + local dm = require "luci.model.diskman" + local device_info = dm.get_disk_info(dev) + luci.http.status(200, "ok") + luci.http.prepare_content("application/json") + luci.http.write_json(device_info) +end + +function mk_p_table() + local p_table = luci.http.formvalue("p_table") + local dev = luci.http.formvalue("dev") + if not dev then + luci.http.status(500, "no device") + luci.http.write_json("no device") + return + elseif not nixio.fs.access("/dev/"..dev) then + luci.http.status(500, "no device") + luci.http.write_json("no device") + return + end + local dm = require "luci.model.diskman" + if p_table == "GPT" or p_table == "MBR" then + p_table = p_table == "MBR" and "msdos" or "gpt" + local res = luci.sys.call(dm.command.parted .. " -s /dev/" .. dev .. " mktable ".. p_table) + if res == 0 then + luci.http.status(200, "ok") + else + luci.http.status(500, "command exec error") + end + luci.http.prepare_content("application/json") + luci.http.write_json({code=res}) + else + luci.http.status(404, "not support") + luci.http.prepare_content("application/json") + luci.http.write_json({code="1"}) + end +end + +function smart_detail(dev) + luci.template.render("diskman/smart_detail", {dev=dev}) +end + +function smart_attr(dev) + local dm = require "luci.model.diskman" + local cmd = io.popen(dm.command.smartctl .. " --attributes /dev/%s" % dev) + if cmd then + local attr = { } + if dev:match("nvme")then + while true do + local ln = cmd:read("*l") + if not ln then + break + elseif ln:match("^(.-):%s+(.+)") then + local key, value = ln:match("^(.-):%s+(.+)") + attr[#attr+1]= { + key = key, + value = value + } + end + end + else + while true do + local ln = cmd:read("*l") + if not ln then + break + elseif ln:match("^.*%d+%s+.+%s+.+%s+.+%s+.+%s+.+%s+.+%s+.+%s+.+%s+.+") then + local id,attrbute,flag,value,worst,thresh,type,updated,raw = ln:match("^%s*(%d+)%s+([%a%p]+)%s+(%w+)%s+(%d+)%s+(%d+)%s+(%d+)%s+([%a%p]+)%s+(%a+)%s+[%w%p]+%s+(.+)") + id= "%x" % id + if not id:match("^%w%w") then + id = "0%s" % id + end + attr[#attr+1]= { + id = id:upper(), + attrbute = attrbute, + flag = flag, + value = value, + worst = worst, + thresh = thresh, + type = type, + updated = updated, + raw = raw + } + end + end + end + cmd:close() + luci.http.prepare_content("application/json") + luci.http.write_json(attr) + end +end \ No newline at end of file diff --git a/package/ctcgfw/luci-app-diskman/luasrc/model/cbi/diskman/disks.lua b/package/ctcgfw/luci-app-diskman/luasrc/model/cbi/diskman/disks.lua new file mode 100644 index 0000000000..5ed0df6773 --- /dev/null +++ b/package/ctcgfw/luci-app-diskman/luasrc/model/cbi/diskman/disks.lua @@ -0,0 +1,265 @@ +--[[ +LuCI - Lua Configuration Interface +Copyright 2019 lisaac +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +$Id$ +]]-- + +require "luci.util" +require("luci.tools.webadmin") +local dm = require "luci.model.diskman" + +-- Use (non-UCI) SimpleForm since we have no related config file +m = SimpleForm("diskman", translate("DiskMan"), translate("Manage Disks over LuCI.")) +m.template = "diskman/cbi/xsimpleform" +-- m:append(Template("diskman/disk_info")) +-- disable submit and reset button +m.submit = false +m.reset = false +-- rescan disks +rescan = m:section(SimpleSection) +rescan_button = rescan:option(Button, "_rescan") +rescan_button.inputtitle= translate("Rescan Disks") +rescan_button.template = "diskman/cbi/inlinebutton" +rescan_button.inputstyle = "add" +rescan_button.forcewrite = true +rescan_button.write = function(self, section, value) + luci.util.exec("echo '- - -' | tee /sys/class/scsi_host/host*/scan > /dev/null") + if dm.command.mdadm then + luci.util.exec(dm.command.mdadm .. " --assemble --scan") + end + luci.http.redirect(luci.dispatcher.build_url("admin/system/diskman")) +end + +-- disks +local disks = dm.list_devices() +d = m:section(Table, disks, translate("Disks")) +d.config = "disk" +-- option(type, id(key of table), text) +d:option(DummyValue, "path", translate("Path")) +d:option(DummyValue, "model", translate("Model")) +d:option(DummyValue, "sn", translate("Serial Number")) +d:option(DummyValue, "size_formated", translate("Size")) +d:option(DummyValue, "temp", translate("Temp")) +-- d:option(DummyValue, "sec_size", translate("Sector Size ")) +d:option(DummyValue, "p_table", translate("Partition Table")) +d:option(DummyValue, "sata_ver", translate("SATA Version")) +-- d:option(DummyValue, "rota_rate", translate("Rotation Rate")) +d:option(DummyValue, "health", translate("Health")) +d:option(DummyValue, "status", translate("Status")) + +d.extedit = luci.dispatcher.build_url("admin/system/diskman/partition/%s") + +-- raid devices +if dm.command.mdadm then + local raid_devices = dm.list_raid_devices() + -- raid_devices = diskmanager.getRAIDdevices() + if next(raid_devices) ~= nil then + local r = m:section(Table, raid_devices, translate("RAID Devices")) + r.config = "_raid" + r:option(DummyValue, "path", translate("Path")) + r:option(DummyValue, "level", translate("RAID mode")) + r:option(DummyValue, "size_formated", translate("Size")) + r:option(DummyValue, "p_table", translate("Partition Table")) + r:option(DummyValue, "status", translate("Status")) + r:option(DummyValue, "members_str", translate("Members")) + r:option(DummyValue, "active", translate("Active")) + -- local redit = r:option(Button, "rpartition") + -- redit.inputstyle = "edit" + -- redit.inputtitle = "Edit" + -- redit.write = function(self, section) + -- local url = luci.dispatcher.build_url("admin/system/diskman/partition") + -- url = url .. "/" .. raid_devices[section].path:match("/dev/(.+)") + -- luci.http.redirect(url) + -- end + r.extedit = luci.dispatcher.build_url("admin/system/diskman/partition/%s") + end + +end + +--tabs +tab_section = m:section(SimpleSection) +tab_section.tabs = { + mount_point = translate("Mount Point") +} +tab_section.default_tab = "mount_point" +tab_section.template="diskman/disk_info_tab" + +-- raid functions +if dm.command.mdadm then + local rname, rmembers, rlevel + tab_section.tabs.raid = translate("Raid") + local r = m:section(SimpleSection, translate("RAID Creation")) + r.template="diskman/cbi/xnullsection" + r.config = "raid" + local r_name = r:option(Value, "_name", translate("Raid Name")) + r_name.placeholder = "/dev/md0" + r_name.write = function(self, section, value) + rname = value + end + local r_level = r:option(ListValue, "_level", translate("Raid Level")) + local valid_raid = luci.util.exec("lsmod | grep md_mod") + if valid_raid:match("linear") then + r_level:value("linear", "Linear") + end + if valid_raid:match("raid456") then + r_level:value("5", "Raid 5") + r_level:value("6", "Raid 6") + end + if valid_raid:match("raid1") then + r_level:value("1", "Raid 1") + end + if valid_raid:match("raid0") then + r_level:value("0", "Raid 0") + end + if valid_raid:match("raid10") then + r_level:value("10", "Raid 10") + end + r_level.write = function(self, section, value) + rlevel = value + end + local r_member = r:option(DynamicList, "_member", translate("Raid Member")) + for dev, info in pairs(disks) do + if not info.inuse and #info.partitions == 0 then + r_member:value(info.path, info.path.. " ".. info.size_formated) + end + for i, v in ipairs(info.partitions) do + if not v.inuse then + r_member:value("/dev/".. v.name, "/dev/".. v.name .. " ".. v.size_formated) + end + end + end + r_member.write = function(self, section, value) + rmembers = value + end + local r_create = r:option(Button, "_create") + r_create.render = function(self, section, scope) + self.title = " " + self.inputtitle = translate("Create Raid") + self.inputstyle = "add" + Button.render(self, section, scope) + end + r_create.write = function(self, section, value) + -- mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb6 /dev/sdc5 + local res = dm.create_raid(rname, rlevel, rmembers) + if res:match("^ERR") then + m.errmessage = translate(res) + return + end + dm.gen_mdadm_config() + luci.http.redirect(luci.dispatcher.build_url("admin/system/diskman")) + end +end + +-- mount point +local mount_point = dm.get_mount_points() +local _mount_point = {} +table.insert( mount_point, { device = 0 } ) +local table_mp = m:section(Table, mount_point, translate("Mount Point")) +table_mp.config = "mount_point" +local v_device = table_mp:option(Value, "device", translate("Device")) +v_device.render = function(self, section, scope) + if mount_point[section].device == 0 then + self.template = "cbi/value" + self.forcewrite = true + Value.render(self, section, scope) + else + self.template = "cbi/dvalue" + DummyValue.render(self, section, scope) + end +end +v_device.write = function(self, section, value) + _mount_point.device = value and value:gsub("%s+", "") or "" +end +local v_fs = table_mp:option(Value, "fs", translate("File System")) +v_fs.render = function(self, section, scope) + if mount_point[section].device == 0 then + self.template = "cbi/value" + self:value("auto", "auto") + self.default = "auto" + self.forcewrite = true + Value.render(self, section, scope) + else + self.template = "cbi/dvalue" + DummyValue.render(self, section, scope) + end +end +v_fs.write = function(self, section, value) + _mount_point.fs = value and value:gsub("%s+", "") or "" +end +local v_mount_option = table_mp:option(Value, "mount_options", translate("Mount Options")) +v_mount_option.render = function(self, section, scope) + if mount_point[section].device == 0 then + self.template = "cbi/value" + self.placeholder = "rw,noauto" + self.forcewrite = true + Value.render(self, section, scope) + else + self.template = "cbi/dvalue" + local mp = mount_point[section].mount_options + mount_point[section].mount_options = nil + for k in mp:gmatch("([^,]+)") do + mount_point[section].mount_options = mount_point[section].mount_options and mount_point[section].mount_options .. "," or "" + if #mount_point[section].mount_options > 50 then mount_point[section].mount_options = mount_point[section].mount_options.. " " end + mount_point[section].mount_options= mount_point[section].mount_options.. k + end + -- mount_point[section].mount_options = #mount_point[section].mount_options > 50 and mount_point[section].mount_options:sub(1,50) .. "..." or mount_point[section].mount_options + DummyValue.render(self, section, scope) + end +end +v_mount_option.write = function(self, section, value) + _mount_point.mount_options = value and value:gsub("%s+", "") or "" +end +local v_mount_point = table_mp:option(Value, "mount_point", translate("Mount Point")) +v_mount_point.render = function(self, section, scope) + if mount_point[section].device == 0 then + self.template = "cbi/value" + self.placeholder = "/media/diskX" + self.forcewrite = true + Value.render(self, section, scope) + else + self.template = "cbi/dvalue" + DummyValue.render(self, section, scope) + end +end +v_mount_point.write = function(self, section, value) + _mount_point.mount_point = value +end +local btn_umount = table_mp:option(Button, "_mount", translate("Mount")) +btn_umount.forcewrite = true +btn_umount.render = function(self, section, scope) + if mount_point[section].device == 0 then + self.inputtitle = translate("Mount") + btn_umount.inputstyle = "add" + else + self.inputtitle = translate("Umount") + btn_umount.inputstyle = "remove" + end + Button.render(self, section, scope) +end +btn_umount.write = function(self, section, value) + local res + if value == translate("Mount") then + luci.util.exec("mkdir -p ".. _mount_point.mount_point) + res = luci.util.exec("mount ".. _mount_point.device .. (_mount_point.fs and (" -t ".. _mount_point.fs )or "") .. (_mount_point.mount_options and (" -o " .. _mount_point.mount_options.. " ") or " ").._mount_point.mount_point .. " 2>&1") + elseif value == translate("Umount") then + res = luci.util.exec("umount "..mount_point[section].mount_point .. " 2>&1") + end + if res:match("^mount:") then + m.errmessage = luci.util.pcdata(res) + else + luci.http.redirect(luci.dispatcher.build_url("admin/system/diskman")) + end +end + +-- -- btrfs +if dm.command.btrfs then + tab_section.tabs.btrfs = translate("Btrfs") + local btrfs_devices = {} + local table_btrfs = m:section(Table, btrfs_devices, translate("Btrfs")) + table_btrfs.config = "btrfs" +end +return m diff --git a/package/ctcgfw/luci-app-diskman/luasrc/model/cbi/diskman/partition.lua b/package/ctcgfw/luci-app-diskman/luasrc/model/cbi/diskman/partition.lua new file mode 100644 index 0000000000..9de1a98dc3 --- /dev/null +++ b/package/ctcgfw/luci-app-diskman/luasrc/model/cbi/diskman/partition.lua @@ -0,0 +1,332 @@ +--[[ +LuCI - Lua Configuration Interface +Copyright 2019 lisaac +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +$Id$ +]]-- + +require "luci.util" +require("luci.tools.webadmin") +local dm = require "luci.model.diskman" +local dev = arg[1] + +if not dev then + luci.http.redirect(luci.dispatcher.build_url("admin/system/diskman")) +elseif not nixio.fs.access("/dev/"..dev) then + luci.http.redirect(luci.dispatcher.build_url("admin/system/diskman")) +end + +m = SimpleForm("partition", translate("Partition Management"), translate("Partition Disk over LuCI.")) +m.template = "diskman/cbi/xsimpleform" +m.redirect = luci.dispatcher.build_url("admin/system/diskman") +m:append(Template("diskman/partition_info")) +-- disable submit and reset button +m.submit = false +m.reset = false + +local disk_info = dm.get_disk_info(dev, true) +local format_cmd = dm.get_format_cmd() + +s = m:section(Table, {disk_info}, translate("Device Info")) +-- s:option(DummyValue, "key") +-- s:option(DummyValue, "value") +s:option(DummyValue, "path", translate("Path")) +s:option(DummyValue, "model", translate("Model")) +s:option(DummyValue, "sn", translate("Serial Number")) +s:option(DummyValue, "size_formated", translate("Size")) +s:option(DummyValue, "sec_size", translate("Sector Size ")) +local dv_p_table = s:option(ListValue, "p_table", translate("Partition Table")) +dv_p_table.render = function(self, section, scope) + if not disk_info.p_table:match("Raid") and (#disk_info.partitions == 0 or (#disk_info.partitions == 1 and disk_info.partitions[1].number == -1)) then + self:value(disk_info.p_table, disk_info.p_table) + self:value("GPT", "GPT") + self:value("MBR", "MBR") + self.default = disk_info.p_table + ListValue.render(self, section, scope) + else + self.template = "cbi/dvalue" + DummyValue.render(self, section, scope) + end +end +if disk_info.type:match("md") then + s:option(DummyValue, "level", translate("Level")) + s:option(DummyValue, "members_str", translate("Members")) +else + s:option(DummyValue, "temp", translate("Temp")) + s:option(DummyValue, "sata_ver", translate("SATA Version")) + s:option(DummyValue, "rota_rate", translate("Rotation Rate")) +end +s:option(DummyValue, "status", translate("Status")) +local btn_health = s:option(Button, "health", translate("Health")) +btn_health.render = function(self, section, scope) + if disk_info.health then + self.inputtitle = disk_info.health + if disk_info.health == "PASSED" then + self.inputstyle = "add" + else + self.inputstyle = "remove" + end + Button.render(self, section, scope) + else + self.template = "cbi/dvalue" + DummyValue.render(self, section, scope) + end +end + +local btn_eject = s:option(Button, "_eject") +btn_eject.template = "diskman/cbi/disabled_button" +btn_eject.inputstyle = "remove" +btn_eject.render = function(self, section, scope) + for i, p in ipairs(disk_info.partitions) do + if p.mount_point ~= "-" then + self.view_disabled = true + break + end + end + if disk_info.p_table:match("Raid") then + self.view_disabled = true + end + if disk_info.type:match("md") then + btn_eject.inputtitle = translate("Remove") + else + btn_eject.inputtitle = translate("Eject") + end + Button.render(self, section, scope) +end +btn_eject.forcewrite = true +btn_eject.write = function(self, section, value) + for i, p in ipairs(disk_info.partitions) do + if p.mount_point ~= "-" then + m.errmessage = p.name .. "is in use! please unmount it first!" + return + end + end + if disk_info.type:match("md") then + luci.util.exec(dm.command.mdadm .. " --stop /dev/" .. dev) + luci.util.exec(dm.command.mdadm .. " --remove /dev/" .. dev) + for _, disk in ipairs(disk_info.members) do + luci.util.exec(dm.command.mdadm .. " --zero-superblock " .. disk) + end + dm.gen_mdadm_config() + else + luci.util.exec("echo 1 > /sys/block/" .. dev .. "/device/delete") + end + luci.http.redirect(luci.dispatcher.build_url("admin/system/diskman")) +end +-- eject: echo 1 > /sys/block/(device)/device/delete +-- rescan: echo '- - -' | tee /sys/class/scsi_host/host*/scan > /dev/null + + +-- partitions info +if not disk_info.p_table:match("Raid") then + s_partition_table = m:section(Table, disk_info.partitions, translate("Partitions Info"), translate("Default 2048 sector alignment, support +size{b,k,m,g,t} in End Sector")) + + -- s_partition_table:option(DummyValue, "number", translate("Number")) + s_partition_table:option(DummyValue, "name", translate("Name")) + local val_sec_start = s_partition_table:option(Value, "sec_start", translate("Start Sector")) + val_sec_start.render = function(self, section, scope) + -- could create new partition + if disk_info.partitions[section].number == -1 and disk_info.partitions[section].size > 1 * 1024 * 1024 then + self.template = "cbi/value" + Value.render(self, section, scope) + else + self.template = "cbi/dvalue" + DummyValue.render(self, section, scope) + end + end + local val_sec_end = s_partition_table:option(Value, "sec_end", translate("End Sector")) + val_sec_end.render = function(self, section, scope) + -- could create new partition + if disk_info.partitions[section].number == -1 and disk_info.partitions[section].size > 1 * 1024 * 1024 then + self.template = "cbi/value" + Value.render(self, section, scope) + else + self.template = "cbi/dvalue" + DummyValue.render(self, section, scope) + end + end + val_sec_start.forcewrite = true + val_sec_start.write = function(self, section, value) + disk_info.partitions[section]._sec_start = value + end + val_sec_end.forcewrite = true + val_sec_end.write = function(self, section, value) + disk_info.partitions[section]._sec_end = value + end + s_partition_table:option(DummyValue, "size_formated", translate("Size")) + if disk_info.p_table == "MBR" then + s_partition_table:option(DummyValue, "type", translate("Type")) + end + s_partition_table:option(DummyValue, "useage", translate("Useage")) + s_partition_table:option(DummyValue, "mount_point", translate("Mount Point")) + local val_fs = s_partition_table:option(Value, "fs", translate("File System")) + val_fs.forcewrite = true + val_fs.write = function(self, section, value) + disk_info.partitions[section]._fs = value + end + val_fs.render = function(self, section, scope) + -- use listvalue when partition not mounted + if disk_info.partitions[section].mount_point == "-" and disk_info.partitions[section].number ~= -1 and disk_info.partitions[section].type ~= "extended" then + self.template = "cbi/value" + self:reset_values() + self.keylist = {} + self.vallist = {} + for k, v in pairs(format_cmd) do + self:value(k,k) + end + -- self.default = disk_info.partitions[section].fs + else + self:reset_values() + self.keylist = {} + self.vallist = {} + self.template = "cbi/dvalue" + end + DummyValue.render(self, section, scope) + end + btn_format = s_partition_table:option(Button, "_format") + btn_format.render = function(self, section, scope) + if disk_info.partitions[section].mount_point == "-" and disk_info.partitions[section].number ~= -1 and disk_info.partitions[section].type ~= "extended" then + self.inputtitle = translate("Format") + self.template = "diskman/cbi/disabled_button" + self.view_disabled = false + self.inputstyle = "reset" + for k, v in pairs(format_cmd) do + self:depends("val_fs", "k") + end + -- elseif disk_info.partitions[section].mount_point ~= "-" and disk_info.partitions[section].number ~= -1 then + -- self.inputtitle = "Format" + -- self.template = "diskman/cbi/disabled_button" + -- self.view_disabled = true + -- self.inputstyle = "reset" + else + self.inputtitle = "" + self.template = "cbi/dvalue" + end + Button.render(self, section, scope) + end + btn_format.forcewrite = true + btn_format.write = function(self, section, value) + local partition_name = "/dev/".. disk_info.partitions[section].name + if not nixio.fs.access(partition_name) then + m.errmessage = "Partition NOT found!" + return + end + local fs = disk_info.partitions[section]._fs + if not format_cmd[fs] then + m.errmessage = "Filesystem NOT support!" + return + end + local cmd = format_cmd[fs].cmd .. " " .. format_cmd[fs].option .. " " .. partition_name + -- luci.util.perror(cmd) + local res = luci.sys.exec(cmd) + luci.http.redirect(luci.dispatcher.build_url("admin/system/diskman/partition/" .. dev)) + end + + local btn_action = s_partition_table:option(Button, "_action") + btn_action.forcewrite = true + btn_action.template = "diskman/cbi/disabled_button" + btn_action.render = function(self, section, scope) + -- if partition is mounted or the size < 1mb, then disable the add action + if disk_info.partitions[section].mount_point ~= "-" or (disk_info.partitions[section].type ~= "extended" and disk_info.partitions[section].number == -1 and disk_info.partitions[section].size <= 1 * 1024 * 1024) then + self.view_disabled = true + -- self.inputtitle = "" + -- self.template = "cbi/dvalue" + elseif disk_info.partitions[section].type == "extended" and next(disk_info.partitions[section]["logicals"]) ~= nil then + self.view_disabled = true + else + -- self.template = "diskman/cbi/disabled_button" + self.view_disabled = false + end + if disk_info.partitions[section].number ~= -1 then + self.inputtitle = translate("Remove") + self.inputstyle = "remove" + else + self.inputtitle = translate("New") + self.inputstyle = "add" + end + Button.render(self, section, scope) + end + btn_action.write = function(self, section, value) + -- luci.util.perror(value) + if value == translate("New") then + local start_sec = disk_info.partitions[section]._sec_start and tonumber(disk_info.partitions[section]._sec_start) or tonumber(disk_info.partitions[section].sec_start) + local end_sec = disk_info.partitions[section]._sec_end + + if start_sec then + -- for sector alignment + local align = tonumber(disk_info.phy_sec) / tonumber(disk_info.logic_sec) + align = (align < 2048) and 2048 + if start_sec < 2048 then + start_sec = "2048" .. "s" + elseif math.fmod( start_sec, align ) ~= 0 then + start_sec = tostring(start_sec + align - math.fmod( start_sec, align )) .. "s" + else + start_sec = start_sec .. "s" + end + else + m.errmessage = "Invalid Start Sector!" + return + end + -- support +size format for End sector + local end_size, end_unit = end_sec:match("^+(%d-)([bkmgtsBKMGTS])$") + if tonumber(end_size) and end_unit then + local unit ={ + B=1, + S=512, + K=1024, + M=1048576, + G=1073741824, + T=1099511627776 + } + end_unit = end_unit:upper() + end_sec = tostring(tonumber(end_size) * unit[end_unit] / unit["S"] + tonumber(start_sec:sub(1,-2)) - 1 ) .. "s" + elseif tonumber(end_sec) then + end_sec = end_sec .. "s" + else + m.errmessage = "Invalid End Sector!" + return + end + local part_type = "primary" + -- create partition table if no partition table + if disk_info.p_table == "UNKNOWN" then + local cmd = dm.command.parted .. " -s /dev/" .. dev .. " mktable gpt" + elseif disk_info.p_table == "MBR" and disk_info["extended_partition_index"] then + if tonumber(disk_info.partitions[disk_info["extended_partition_index"]].sec_start) <= tonumber(start_sec:sub(1,-2)) and tonumber(disk_info.partitions[disk_info["extended_partition_index"]].sec_end) >= tonumber(end_sec:sub(1,-2)) then + part_type = "logical" + if tonumber(start_sec:sub(1,-2)) - tonumber(disk_info.partitions[section].sec_start) < 2048 then + start_sec = tonumber(start_sec:sub(1,-2)) + 2048 + start_sec = start_sec .."s" + end + end + end + + -- partiton + local cmd = dm.command.parted .. " -s -a optimal /dev/" .. dev .. " mkpart " .. part_type .." " .. start_sec .. " " .. end_sec + local res = luci.util.exec(cmd) + if res:match("Error.+") then + m.errmessage = res + else + luci.http.redirect(luci.dispatcher.build_url("admin/system/diskman/partition/" .. dev)) + end + elseif value == translate("Remove") then + -- remove partition + local number = tostring(disk_info.partitions[section].number) + if (not number) or (number == "") then + m.errmessage = "Partition not exists!" + return + end + local cmd = dm.command.parted .. " -s /dev/" .. dev .. " rm " .. number + local res = luci.util.exec(cmd) + if res:match("Error.+") then + m.errmessage = res + else + luci.http.redirect(luci.dispatcher.build_url("admin/system/diskman/partition/" .. dev)) + end + end + end +end + +return m \ No newline at end of file diff --git a/package/ctcgfw/luci-app-diskman/luasrc/model/diskman.lua b/package/ctcgfw/luci-app-diskman/luasrc/model/diskman.lua new file mode 100644 index 0000000000..ac979849d3 --- /dev/null +++ b/package/ctcgfw/luci-app-diskman/luasrc/model/diskman.lua @@ -0,0 +1,540 @@ +--[[ +LuCI - Lua Configuration Interface +Copyright 2019 lisaac +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +$Id$ +]]-- + +require "luci.util" +local ver = require "luci.version" + +local CMD = {"parted", "mdadm", "blkid", "smartctl", "df", "sgdisk", "btrfs"} + +local d = {command ={}} +for _, cmd in ipairs(CMD) do + local command = luci.sys.exec("/usr/bin/which " .. cmd) + d.command[cmd] = command:match("^.+"..cmd) or nil +end + +local mounts = nixio.fs.readfile("/proc/mounts") or "" +local swaps = nixio.fs.readfile("/proc/swaps") or "" +local df = luci.sys.exec(d.command.df) or "" + +function byte_format(byte) + local suff = {"B", "KB", "MB", "GB", "TB"} + for i=1, 5 do + if byte > 1024 and i < 5 then + byte = byte / 1024 + else + return string.format("%.2f %s", byte, suff[i]) + end + end +end + +local get_smart_info = function(device) + local section + local smart_info = {} + for _, line in ipairs(luci.util.execl(d.command.smartctl .. " -H -A -i -n standby -f brief /dev/" .. device)) do + local attrib, val + if section == 1 then + attrib, val = line:match "^(.-):%s+(.+)" + elseif section == 2 and device:match("nvme") then + attrib, val = line:match("^(.-):%s+(.+)") + if not smart_info.health then smart_info.health = line:match(".-overall%-health.-: (.+)") end + elseif section == 2 then + attrib, val = line:match("^([0-9 ]+)%s+[^ ]+%s+[POSRCK-]+%s+[0-9-]+%s+[0-9-]+%s+[0-9-]+%s+[0-9-]+%s+([0-9-]+)") + if not smart_info.health then smart_info.health = line:match(".-overall%-health.-: (.+)") end + else + attrib = line:match "^=== START OF (.*) SECTION ===" + if attrib and attrib:match("INFORMATION") then + section = 1 + elseif attrib and attrib:match("SMART DATA") then + section = 2 + elseif not smart_info.status then + val = line:match "^Device is in (.*) mode" + if val then smart_info.status = val end + end + end + + if not attrib then + if section ~= 2 then section = 0 end + elseif (attrib == "Power mode is") or + (attrib == "Power mode was") then + smart_info.status = val:match("(%S+)") + -- elseif attrib == "Sector Sizes" then + -- -- 512 bytes logical, 4096 bytes physical + -- smart_info.phy_sec = val:match "([0-9]*) bytes physical" + -- smart_info.logic_sec = val:match "([0-9]*) bytes logical" + -- elseif attrib == "Sector Size" then + -- -- 512 bytes logical/physical + -- smart_info.phy_sec = val:match "([0-9]*)" + -- smart_info.logic_sec = smart_info.phy_sec + elseif attrib == "Serial Number" then + smart_info.sn = val + elseif attrib == "194" or attrib == "Temperature" then + smart_info.temp = val:match("(%d+)") .. "°C" + elseif attrib == "Rotation Rate" then + smart_info.rota_rate = val + elseif attrib == "SATA Version is" then + smart_info.sata_ver = val + end + end + return smart_info +end + +local parse_parted_info = function(keys, line) + -- parse the output of parted command (machine parseable format) + -- /dev/sda:5860533168s:scsi:512:4096:gpt:ATA ST3000DM001-1ER1:; + -- 1:34s:2047s:2014s:free; + -- 1:2048s:1073743872s:1073741825s:ext4:primary:; + local result = {} + local values = {} + + for value in line:gmatch("(.-)[:;]") do table.insert(values, value) end + for i = 1,#keys do + result[keys[i]] = values[i] or "" + end + return result +end + +local is_raid_member = function(partition) + -- check if inuse as raid member + if nixio.fs.access("/proc/mdstat") then + for _, result in ipairs(luci.util.execl("grep md /proc/mdstat | sed 's/[][]//g'")) do + local md, buf + md, buf = result:match("(md.-):(.+)") + if buf:match(partition) then + return "Raid Member: ".. md + end + end + end + return nil +end + +local get_mount_point = function(partition) + local mount_point, dk_root_dir + -- if use luci-in-dokcer, exclude the docker overlay mounts + -- if ver.distname == "LuCI in Docker" then + local _o, dk = pcall(require,"luci.docker") + if _o and dk then + dk_root_dir = dk.new():info().body.DockerRootDir + end + -- end + + for m in mounts:gmatch("/dev/"..partition.." ([^ ]*)") do + if dk_root_dir and m:match(dk_root_dir) then + else + mount_point = (mount_point and (mount_point .. " ") or "") .. m + end + end + if mount_point then return mount_point end + -- result = luci.sys.exec('cat /proc/mounts | awk \'{if($1=="/dev/'.. partition ..'") print $2}\'') + -- if result ~= "" then return result end + + if swaps:match("\n/dev/" .. partition .."%s") then return "swap" end + -- result = luci.sys.exec("cat /proc/swaps | grep /dev/" .. partition) + -- if result ~= "" then return "swap" end + + return is_raid_member(partition) + +end + +local get_partition_useage = function(partition) + if not nixio.fs.access("/dev/"..partition) then return false end + local useage = df:match("\n/dev/" .. partition .. "%s+%d+%s+%d+%s+%d+%s+([0-9]+)%%%s") + useage = useage and (useage .. "%") or false + return useage +end + +local get_parted_info = function(device) + if not device then return end + local result = {partitions={}} + local DEVICE_INFO_KEYS = { "path", "size", "type", "logic_sec", "phy_sec", "p_table", "model", "flags" } + local PARTITION_INFO_KEYS = { "number", "sec_start", "sec_end", "size", "fs", "tag_name", "flags" } + local partition_temp + local partitions_temp = {} + local disk_temp + + for line in luci.util.execi(d.command.parted .. " -s -m /dev/" .. device .. " unit s print free", "r") do + if line:find("^/dev/"..device..":.+") then + disk_temp = parse_parted_info(DEVICE_INFO_KEYS, line) + disk_temp.partitions = {} + if disk_temp["size"] then + local length = disk_temp["size"]:gsub("^(%d+)s$", "%1") + local newsize = tostring(tonumber(length)*tonumber(disk_temp["logic_sec"])) + disk_temp["size"] = newsize + end + if disk_temp["p_table"] == "msdos" then + disk_temp["p_table"] = "MBR" + else + disk_temp["p_table"] = disk_temp["p_table"]:upper() + end + elseif line:find("^%d-:.+") then + partition_temp = parse_parted_info(PARTITION_INFO_KEYS, line) + -- use human-readable form instead of sector number + if partition_temp["size"] then + local length = partition_temp["size"]:gsub("^(%d+)s$", "%1") + local newsize = (tonumber(length) * tonumber(disk_temp["logic_sec"])) + partition_temp["size"] = newsize + partition_temp["size_formated"] = byte_format(newsize) + end + partition_temp["number"] = tonumber(partition_temp["number"]) or -1 + if partition_temp["fs"] == "free" then + partition_temp["number"] = -1 + partition_temp["fs"] = "Free Space" + partition_temp["name"] = "-" + elseif device:match("sd") or device:match("sata") then + partition_temp["name"] = device..partition_temp["number"] + elseif device:match("mmcblk") or device:match("md") or device:match("nvme") then + partition_temp["name"] = device.."p"..partition_temp["number"] + end + partition_temp["fs"] = partition_temp["fs"] == "" and "raw" or partition_temp["fs"] + partition_temp["sec_start"] = partition_temp["sec_start"] and partition_temp["sec_start"]:sub(1,-2) + partition_temp["sec_end"] = partition_temp["sec_end"] and partition_temp["sec_end"]:sub(1,-2) + partition_temp["mount_point"] = partition_temp["name"]~="-" and get_mount_point(partition_temp["name"]) or "-" + partition_temp["useage"] = partition_temp["mount_point"]~="-" and get_partition_useage(partition_temp["name"]) or "-" + -- if disk_temp["p_table"] == "MBR" and (partition_temp["number"] < 4) and (partition_temp["number"] > 0) then + -- local real_size_sec = tonumber(nixio.fs.readfile("/sys/block/"..device.."/"..partition_temp["name"].."/size")) * tonumber(disk_temp.phy_sec) + -- if real_size_sec ~= partition_temp["size"] then + -- disk_temp["extended_partition_index"] = partition_temp["number"] + -- partition_temp["type"] = "extended" + -- partition_temp["size"] = real_size_sec + -- partition_temp["fs"] = "-" + -- partition_temp["logicals"] = {} + -- else + -- partition_temp["type"] = "primary" + -- end + -- end + + table.insert(partitions_temp, partition_temp) + end + end + if disk_temp["p_table"] == "MBR" then + for i, p in ipairs(partitions_temp) do + if disk_temp["extended_partition_index"] and p["number"] > 4 then + if tonumber(p["sec_end"]) <= tonumber(partitions_temp[disk_temp["extended_partition_index"]]["sec_end"]) and tonumber(p["sec_start"]) >= tonumber(partitions_temp[disk_temp["extended_partition_index"]]["sec_start"]) then + p["type"] = "logical" + table.insert(partitions_temp[disk_temp["extended_partition_index"]]["logicals"], i) + end + elseif (p["number"] < 4) and (p["number"] > 0) then + local real_size_sec = tonumber(nixio.fs.readfile("/sys/block/"..device.."/"..p["name"].."/size")) * tonumber(disk_temp.phy_sec) + if real_size_sec ~= p["size"] then + disk_temp["extended_partition_index"] = i + p["type"] = "extended" + p["size"] = real_size_sec + p["fs"] = "-" + p["logicals"] = {} + else + p["type"] = "primary" + end + end + end + end + result = disk_temp + result.partitions = partitions_temp + + return result +end + +local mddetail = function(mdpath) + local detail = {} + local path = mdpath:match("^/dev/md%d+$") + if path then + local mdadm = io.popen(d.command.mdadm .. " --detail "..path, "r") + for line in mdadm:lines() do + local key, value = line:match("^%s*(.+) : (.+)") + if key then + detail[key] = value + end + end + mdadm:close() + end + return detail +end + +-- return {{device="", mount_points="", fs="", mount_options="", dump="", pass=""}..} +d.get_mount_points = function() + local mount, dk_root_dir + local res = {} + local h ={"device", "mount_point", "fs", "mount_options", "dump", "pass"} + local _o, dk = pcall(require,"luci.docker") + if _o and dk then + dk_root_dir = dk.new():info().body.DockerRootDir + end + for mount in mounts:gmatch("[^\n]+") do + local device = mount:match("^([^%s]+)%s+.+") + -- only show /dev/xxx device + if device and device:match("/dev/") then + -- not show docker root dir mounts + if dk_root_dir and mount and mount:match(dk_root_dir) then + else + res[#res+1] = {} + local i = 0 + for v in mount:gmatch("[^%s]+") do + i = i + 1 + res[#res][h[i]] = v + end + end + end + end + return res +end + +d.get_disk_info = function(device, wakeup) + --[[ return: + { + path, model, sn, size, size_mounted, flags, type, temp, p_table, logic_sec, phy_sec, sec_size, sata_ver, rota_rate, status, health, + partitions = { + 1 = { number, name, sec_start, sec_end, size, size_mounted, fs, tag_name, type, flags, mount_point, useage }, + 2 = { number, name, sec_start, sec_end, size, size_mounted, fs, tag_name, type, flags, mount_point, useage }, + ... + } + --raid devices only + level, members, members_str + } + --]] + if not device then return end + local disk_info + local smart_info = get_smart_info(device) + + -- check if divice is the member of raid + smart_info["p_table"] = is_raid_member(device..'0') + -- if status is not active(standby), only check smart_info. + -- if only weakup == true, weakup the disk and check parted_info. + if smart_info.status ~= "STANDBY" or wakeup or (smart_info["p_table"] and not smart_info["p_table"]:match("Raid")) or device:match("^md") then + disk_info = get_parted_info(device) + disk_info["sec_size"] = disk_info["logic_sec"] .. "/" .. disk_info["phy_sec"] + disk_info["size_formated"] = byte_format(tonumber(disk_info["size"])) + -- if status is standby, then get smart_info again + if smart_info.status ~= "ACTIVE" then smart_info = get_smart_info(device) end + else + disk_info = {} + end + + for k, v in pairs(smart_info) do + disk_info[k] = v + end + + if disk_info.type and disk_info.type:match("md") then + local raid_info = d.list_raid_devices()[disk_info["path"]:match("/dev/(.+)")] + for k, v in pairs(raid_info) do + disk_info[k] = v + end + end + return disk_info +end + +d.list_raid_devices = function() + local fs = require "nixio.fs" + + local raid_devices = {} + if not fs.access("/proc/mdstat") then return raid_devices end + local mdstat = io.open("/proc/mdstat", "r") + for line in mdstat:lines() do + + -- md1 : active raid1 sdb2[1] sda2[0] + -- md127 : active raid5 sdh1[6] sdg1[4] sdf1[3] sde1[2] sdd1[1] sdc1[0] + local device_info = {} + local mdpath, list = line:match("^(md%d+) : (.+)") + if mdpath then + local members = {} + for member in string.gmatch(list, "%S+") do + member_path = member:match("^(%S+)%[%d+%]") + if member_path then + member = '/dev/'..member_path + end + table.insert(members, member) + end + local active = table.remove(members, 1) + local level = "-" + if active == "active" then + level = table.remove(members, 1) + end + + local size = tonumber(fs.readfile(string.format("/sys/class/block/%s/size", mdpath))) + local ss = tonumber(fs.readfile(string.format("/sys/class/block/%s/queue/logical_block_size", mdpath))) + + device_info["path"] = "/dev/"..mdpath + device_info["size"] = size*ss + device_info["size_formated"] = byte_format(size*ss) + device_info["active"] = active:upper() + device_info["level"] = level + device_info["members"] = members + device_info["members_str"] = table.concat(members, ", ") + + -- Get more info from output of mdadm --detail + local detail = mddetail(device_info["path"]) + device_info["status"] = detail["State"]:upper() + + raid_devices[mdpath] = device_info + end + end + mdstat:close() + + return raid_devices +end + +-- Collect Devices information + --[[ return: + { + sda={ + path, model, inuse, size_formated, + partitions={ + { name, inuse, size_formated } + ... + } + } + .. + } + --]] +d.list_devices = function() + local fs = require "nixio.fs" + + -- get all device names (sdX and mmcblkX) + local target_devnames = {} + for dev in fs.dir("/dev") do + if dev:match("^sd[a-z]$") + or dev:match("^mmcblk%d+$") + or dev:match("^sata[a-z]$") + or dev:match("^nvme%d+n%d+$") + then + table.insert(target_devnames, dev) + end + end + + local devices = {} + for i, bname in pairs(target_devnames) do + local device_info = {} + local device = "/dev/" .. bname + local size = tonumber(fs.readfile(string.format("/sys/class/block/%s/size", bname))) + local ss = tonumber(fs.readfile(string.format("/sys/class/block/%s/queue/logical_block_size", bname))) + local model = fs.readfile(string.format("/sys/class/block/%s/device/model", bname)) + local partitions = {} + for part in nixio.fs.glob("/sys/block/" .. bname .."/" .. bname .. "*") do + local pname = nixio.fs.basename(part) + local psize = byte_format(tonumber(nixio.fs.readfile(part .. "/size"))*ss) + local mount_point = get_mount_point(pname) + if mount_point then device_info["inuse"] = true end + table.insert(partitions, {name = pname, size_formated = psize, inuse = mount_point}) + end + + device_info["path"] = device + device_info["size_formated"] = byte_format(size*ss) + device_info["model"] = model + device_info["partitions"] = partitions + -- true or false + device_info["inuse"] = device_info["inuse"] or get_mount_point(bname) + + local udevinfo = {} + if luci.sys.exec("which udevadm") ~= "" then + local udevadm = io.popen("udevadm info --query=property --name="..device) + for attr in udevadm:lines() do + local k, v = attr:match("(%S+)=(%S+)") + udevinfo[k] = v + end + udevadm:close() + + device_info["info"] = udevinfo + if udevinfo["ID_MODEL"] then device_info["model"] = udevinfo["ID_MODEL"] end + end + devices[bname] = device_info + end + -- luci.util.perror(luci.util.serialize_json(devices)) + return devices +end + +-- get formart cmd +d.get_format_cmd = function() + local AVAILABLE_FMTS = { + ext2 = { cmd = "mkfs.ext2", option = "-F -E lazy_itable_init=1" }, + ext3 = { cmd = "mkfs.ext3", option = "-F -E lazy_itable_init=1" }, + ext4 = { cmd = "mkfs.ext4", option = "-F -E lazy_itable_init=1" }, + fat32 = { cmd = "mkfs.fat", option = "-F 32 -I" }, + exfat = { cmd = "mkexfat", option = "-f" }, + hfsplus = { cmd = "mkhfs", option = "-f" }, + ntfs = { cmd = "mkntfs", option = "-f" }, + swap = { cmd = "mkswap", option = "-f" }, + btrfs = { cmd = "mkfs.btrfs", option = "-f" } + } + result = {} + for fmt, obj in pairs(AVAILABLE_FMTS) do + local cmd = luci.sys.exec("/usr/bin/which " .. obj["cmd"]) + if cmd:match(obj["cmd"]) then + result[fmt] = { cmd = cmd:match("^.+"..obj["cmd"]) ,option = obj["option"] } + end + end + return result +end + +d.create_raid = function(rname, rlevel, rmembers) + local mb = {} + for _, v in ipairs(rmembers) do + mb[v]=v + end + rmembers = {} + for _, v in pairs(mb) do + table.insert(rmembers, v) + end + if type(rname) == "string" then + if rname:match("^md%d-%s+") then + rname = "/dev/"..rname:match("^(md%d-)%s+") + elseif rname:match("^/dev/md%d-%s+") then + rname = "/dev/"..rname:match("^(/dev/md%d-)%s+") + elseif not rname:match("/") then + rname = "/dev/md/".. rname + else + return "ERR: Invalid raid name" + end + else + local mdnum = 0 + for num=1,127 do + local md = io.open("/dev/md"..tostring(num), "r") + if md == nil then + mdnum = num + break + else + io.close(md) + end + end + if mdnum == 0 then return "ERR: Cannot find proper md number" end + rname = "/dev/md"..mdnum + end + + if rlevel == "5" or rlevel == "6" then + if #rmembers < 3 then return "ERR: Not enough members" end + end + if rlevel == "10" then + if #rmembers < 4 then return "ERR: Not enough members" end + end + if #rmembers < 2 then return "ERR: Not enough members" end + local cmd = d.command.mdadm .. " --create "..rname.." --run --assume-clean --homehost=any --level=" .. rlevel .. " --raid-devices=" .. #rmembers .. " " .. table.concat(rmembers, " ") + local res = luci.util.exec(cmd) + return res +end + +d.gen_mdadm_config = function() + if not nixio.fs.access("/etc/config/mdadm") then return end + local uci = require "luci.model.uci" + local x = uci.cursor() + -- delete all array sections + x:foreach("mdadm", "array", function(s) x:delete("mdadm",s[".name"]) end) + local cmd = d.command.mdadm .. " -D -s" + --ARRAY /dev/md1 metadata=1.2 name=any:1 UUID=f998ae14:37621b27:5c49e850:051f6813 + --ARRAY /dev/md3 metadata=1.2 name=any:3 UUID=c068c141:4b4232ca:f48cbf96:67d42feb + for _, v in ipairs(luci.util.execl(cmd)) do + local device, uuid = v:match("^ARRAY%s-([^%s]+)%s-[^%s]-%s-[^%s]-%s-UUID=([^%s]+)%s-") + if device and uuid then + local section_name = x:add("mdadm", "array") + x:set("mdadm", section_name, "device", device) + x:set("mdadm", section_name, "uuid", uuid) + end + end + x:commit("mdadm") + -- enable mdadm + luci.util.exec("/etc/init.d/mdadm enable") +end + +return d diff --git a/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/cbi/disabled_button.htm b/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/cbi/disabled_button.htm new file mode 100644 index 0000000000..1ad4eca3be --- /dev/null +++ b/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/cbi/disabled_button.htm @@ -0,0 +1,7 @@ +<%+cbi/valueheader%> + <% if self:cfgvalue(section) ~= false then %> + " type="submit"<%= attr("name", cbid) .. attr("id", cbid) .. attr("value", self.inputtitle or self.title)%> <% if self.view_disabled then %> disabled <% end %>/> + <% else %> + - + <% end %> +<%+cbi/valuefooter%> \ No newline at end of file diff --git a/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/cbi/inlinebutton.htm b/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/cbi/inlinebutton.htm new file mode 100644 index 0000000000..b1b1932571 --- /dev/null +++ b/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/cbi/inlinebutton.htm @@ -0,0 +1,7 @@ +
+ <% if self:cfgvalue(section) ~= false then %> + " type="submit"" <% if self.disable then %>disabled <% end %><%= attr("name", cbid) .. attr("id", cbid) .. attr("value", self.inputtitle or self.title)%> /> + <% else %> + - + <% end %> +
diff --git a/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/cbi/xnullsection.htm b/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/cbi/xnullsection.htm new file mode 100644 index 0000000000..69aa65e003 --- /dev/null +++ b/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/cbi/xnullsection.htm @@ -0,0 +1,37 @@ +
+ <% if self.title and #self.title > 0 then -%> + <%=self.title%> + <%- end %> + <% if self.description and #self.description > 0 then -%> +
<%=self.description%>
+ <%- end %> +
+
+ <% self:render_children(1, scope or {}) %> +
+ <% if self.error and self.error[1] then -%> +
+
    <% for _, e in ipairs(self.error[1]) do -%> +
  • + <%- if e == "invalid" then -%> + <%:One or more fields contain invalid values!%> + <%- elseif e == "missing" then -%> + <%:One or more required fields have no value!%> + <%- else -%> + <%=pcdata(e)%> + <%- end -%> +
  • + <%- end %>
+
+ <%- end %> +
+
+<%- + if type(self.hidden) == "table" then + for k, v in pairs(self.hidden) do +-%> + +<%- + end + end +%> \ No newline at end of file diff --git a/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/cbi/xsimpleform.htm b/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/cbi/xsimpleform.htm new file mode 100644 index 0000000000..a831bfc779 --- /dev/null +++ b/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/cbi/xsimpleform.htm @@ -0,0 +1,88 @@ +<% if not self.embedded then %> +
> + + + <% + end + + %>
<% + + if self.title and #self.title > 0 then + %>

<%=self.title%>

<% + end + + if self.description and #self.description > 0 then + %>
<%=self.description%>
<% + end + + self:render_children() + + %>
<% + + if self.message then + %>
<%=self.message%>
<% + end + + if self.errmessage then + %>
<%=self.errmessage%>
<% + end + + if not self.embedded then + if type(self.hidden) == "table" then + local k, v + for k, v in pairs(self.hidden) do + %><% + end + end + + local display_back = (self.redirect) + local display_cancel = (self.cancel ~= false and self.on_cancel) + local display_skip = (self.flow and self.flow.skip) + local display_submit = (self.submit ~= false) + local display_reset = (self.reset ~= false) + + if display_back or display_cancel or display_skip or display_submit or display_reset then + %>
<% + + if display_back then + %> <% + end + + if display_cancel then + local label = pcdata(self.cancel or translate("Cancel")) + %> <% + end + + if display_skip then + %> <% + end + + if display_submit then + local label = pcdata(self.submit or translate("Submit")) + %> <% + end + + if display_reset then + local label = pcdata(self.reset or translate("Reset")) + %> <% + end + + %>
<% + end + + %>
<% + end +%> + + diff --git a/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/disk_info_tab.htm b/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/disk_info_tab.htm new file mode 100644 index 0000000000..be18e75a69 --- /dev/null +++ b/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/disk_info_tab.htm @@ -0,0 +1,143 @@ +
+
    + <% for k, v in pairs(self.tabs) do + local class = k == self.default_tab and "cbi-tab" or "cbi-tab-disabled" + local id = "tab.raid-tab." .. k + %> +
  • class=<%=class%> > + <%=v%> +
  • + <% end %> + +
+ + \ No newline at end of file diff --git a/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/partition_info.htm b/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/partition_info.htm new file mode 100644 index 0000000000..482fab8a35 --- /dev/null +++ b/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/partition_info.htm @@ -0,0 +1,34 @@ + \ No newline at end of file diff --git a/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/smart_detail.htm b/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/smart_detail.htm new file mode 100644 index 0000000000..1aa15b80fe --- /dev/null +++ b/package/ctcgfw/luci-app-diskman/luasrc/view/diskman/smart_detail.htm @@ -0,0 +1,77 @@ + + + S.M.A.R.T detail of <%=dev%> + + + + + +
+
+ <%:S.M.A.R.T Attrbutes%>: /dev/<%=dev%> + + + <% if dev:match("nvme") then %> + + <% else %> + + + + + + + + + + <% end %> + + + + +
<%:ID%><%:Attrbute%><%:Flag%><%:Value%><%:Worst%><%:Thresh%><%:Type%><%:Updated%><%:Raw%>

<%:Collecting data...%>
+
+
+ + \ No newline at end of file diff --git a/package/ctcgfw/luci-app-diskman/po/pl/diskman.po b/package/ctcgfw/luci-app-diskman/po/pl/diskman.po new file mode 100644 index 0000000000..53c33e8d66 --- /dev/null +++ b/package/ctcgfw/luci-app-diskman/po/pl/diskman.po @@ -0,0 +1,128 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8\n" + +msgid "DiskMan" +msgstr "Menadżer dysków" + +msgid "Manage Disks over LuCI." +msgstr "Zarządzaj dyskami przez LuCI." + +msgid "Rescan Disks" +msgstr "Skanuj dyski" + +msgid "Disks" +msgstr "Dyski" + +msgid "Path" +msgstr "Ścieżka" + +msgid "Serial Number" +msgstr "Numer seryjny" + +msgid "Temp" +msgstr "Temperatura" + +msgid "Partition Table" +msgstr "Tablica partycji" + +msgid "SATA Version" +msgstr "Wersja SATA" + +msgid "Health" +msgstr "Kondycja" + +msgid "File System" +msgstr "System plików" + +msgid "Mount Options" +msgstr "Opcje montowania" + +msgid "Mount" +msgstr "Montuj" + +msgid "Umount" +msgstr "Odmontuj" + +msgid "Eject" +msgstr "Wysuń" + +msgid "New" +msgstr "Nowa" + +msgid "Remove" +msgstr "Wysuń" + +msgid "Format" +msgstr "Formatuj" + +msgid "Start Sector" +msgstr "Sektor początkowy" + +msgid "End Sector" +msgstr "Sektor końcowy" + +msgid "Useage" +msgstr "Użycie" + +msgid "Model" +msgstr "Model urządzenia" + +msgid "Size" +msgstr "Rozmiar" + +msgid "Status" +msgstr "Status" + +msgid "Mount Point" +msgstr "Punkt montowania" + +msgid "Sector Size" +msgstr "Rozmiar sektora" + +msgid "Rotation Rate" +msgstr "Obroty" + +msgid "RAID Devices" +msgstr "Urządzenia RAID" + +msgid "RAID mode" +msgstr "Tryb RAID" + +msgid "Members" +msgstr "Członkowie" + +msgid "Active" +msgstr "Aktywny" + +msgid "RAID Creation" +msgstr "Kreator RAID" + +msgid "Raid Name" +msgstr "Nazwa RAID" + +msgid "Raid Level" +msgstr "Poziom RAID" + +msgid "Raid Member" +msgstr "Członek RAID" + +msgid "Create Raid" +msgstr "Utwórz RAID" + +msgid "Partition Management" +msgstr "Menadżer partycji" + +msgid "Partition Disk over LuCI." +msgstr "Zarządzaj partycjami przez LuCI." + +msgid "Device Info" +msgstr "Informacja o urządzeniu" + +msgid "Disk Man" +msgstr "Menadżer dysków" + +msgid "Partitions Info" +msgstr "Informacja o partycjach" + +msgid "Default 2048 sector alignment, support +size{b,k,m,g,t} in End Sector" +msgstr "Sektory wyrównywane są do wielokrotności 2048, sektor końcowy można podać jako rozmiar w postaci +size{b,k,m,g,t}" diff --git a/package/ctcgfw/luci-app-diskman/po/zh-cn/diskman.po b/package/ctcgfw/luci-app-diskman/po/zh-cn/diskman.po new file mode 100644 index 0000000000..6084864ced --- /dev/null +++ b/package/ctcgfw/luci-app-diskman/po/zh-cn/diskman.po @@ -0,0 +1,128 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8\n" + +msgid "DiskMan" +msgstr "DiskMan磁盘管理" + +msgid "Manage Disks over LuCI." +msgstr "通过LuCI管理磁盘" + +msgid "Rescan Disks" +msgstr "重新扫描磁盘" + +msgid "Disks" +msgstr "磁盘" + +msgid "Path" +msgstr "路径" + +msgid "Serial Number" +msgstr "序列号" + +msgid "Temp" +msgstr "温度" + +msgid "Partition Table" +msgstr "分区表" + +msgid "SATA Version" +msgstr "SATA版本" + +msgid "Health" +msgstr "健康" + +msgid "File System" +msgstr "文件系统" + +msgid "Mount Options" +msgstr "挂载选项" + +msgid "Mount" +msgstr "挂载" + +msgid "Umount" +msgstr "卸载" + +msgid "Eject" +msgstr "弹出" + +msgid "New" +msgstr "创建" + +msgid "Remove" +msgstr "移除" + +msgid "Format" +msgstr "格式化" + +msgid "Start Sector" +msgstr "起始扇区" + +msgid "End Sector" +msgstr "中止扇区" + +msgid "Useage" +msgstr "使用情况" + +msgid "Model" +msgstr "主机型号" + +msgid "Size" +msgstr "容量" + +msgid "Status" +msgstr "状态" + +msgid "Mount Point" +msgstr "挂载点" + +msgid "Sector Size" +msgstr "扇区/物理扇区大小" + +msgid "Rotation Rate" +msgstr "转速" + +msgid "RAID Devices" +msgstr "RAID 设备" + +msgid "RAID mode" +msgstr "RAID 模式" + +msgid "Members" +msgstr "成员" + +msgid "Active" +msgstr "活动" + +msgid "RAID Creation" +msgstr "RAID 创建" + +msgid "Raid Name" +msgstr "RAID 名称" + +msgid "Raid Level" +msgstr "RAID 级别" + +msgid "Raid Member" +msgstr "磁盘阵列成员" + +msgid "Create Raid" +msgstr "创建 RAID" + +msgid "Partition Management" +msgstr "分区管理" + +msgid "Partition Disk over LuCI." +msgstr "通过LuCI分区磁盘。" + +msgid "Device Info" +msgstr "设备信息" + +msgid "Disk Man" +msgstr "DiskMan磁盘管理" + +msgid "Partitions Info" +msgstr "分区信息" + +msgid "Default 2048 sector alignment, support +size{b,k,m,g,t} in End Sector" +msgstr "默认2048扇区对齐,【中止扇区】支持 +容量{b,k,m,g,t} 格式,例:+500m +10g +1t" diff --git a/package/ctcgfw/luci-app-dockerman/Makefile b/package/ctcgfw/luci-app-dockerman/Makefile new file mode 100644 index 0000000000..d66f23f6de --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/Makefile @@ -0,0 +1,45 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=luci-app-dockerman +PKG_VERSION:=v0.1.9 +PKG_RELEASE:=beta +PKG_MAINTAINER:=lisaac +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) +PKG_LICENSE:=Apache-2.0 + +include $(INCLUDE_DIR)/package.mk + +define Package/$(PKG_NAME) + SECTION:=luci + CATEGORY:=LuCI + SUBMENU:=3. Applications + TITLE:=Docker Manager interface for LuCI + PKGARCH:=all + DEPENDS:=+luci-lib-docker +luci-app-docker +endef + +define Package/$(PKG_NAME)/description + Docker Manager interface for LuCI +endef + +define Build/Prepare +endef + +define Build/Compile +endef + +define Package/$(PKG_NAME)/postinst +#!/bin/sh +rm -fr /tmp/luci-indexcache /tmp/luci-modulecache +endef + +define Package/$(PKG_NAME)/install + $(INSTALL_DIR) $(1)/usr/lib/lua/luci + cp -pR ./luasrc/* $(1)/usr/lib/lua/luci + $(INSTALL_DIR) $(1)/ + cp -pR ./root/* $(1)/ + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/i18n + po2lmo ./po/zh-cn/dockerman.po $(1)/usr/lib/lua/luci/i18n/dockerman.zh-cn.lmo +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/controller/dockerman.lua b/package/ctcgfw/luci-app-dockerman/luasrc/controller/dockerman.lua new file mode 100644 index 0000000000..0886cf92df --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/controller/dockerman.lua @@ -0,0 +1,158 @@ +--[[ +LuCI - Lua Configuration Interface +Copyright 2019 lisaac +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +$Id$ +]]-- +require "luci.util" +local docker = require "luci.model.docker" +local uci = require "luci.model.uci" + +module("luci.controller.dockerman",package.seeall) + +function index() + + entry({"admin", "docker"}, firstchild(), "Docker", 40).dependent = false + entry({"admin","docker","overview"},cbi("docker/overview"),_("Overview"),0).leaf=true + + local socket = luci.model.uci.cursor():get("docker", "local", "socket_path") + if not nixio.fs.access(socket) then return end + if (require "luci.model.docker").new():_ping().code ~= 200 then return end + entry({"admin","docker","containers"},form("docker/containers"),_("Containers"),1).leaf=true + entry({"admin","docker","images"},form("docker/images"),_("Images"),2).leaf=true + entry({"admin","docker","networks"},form("docker/networks"),_("Networks"),3).leaf=true + entry({"admin","docker","volumes"},form("docker/volumes"),_("Volumes"),4).leaf=true + entry({"admin","docker","events"},call("action_events"),_("Events"),5) + entry({"admin","docker","newcontainer"},form("docker/newcontainer")).leaf=true + entry({"admin","docker","newnetwork"},form("docker/newnetwork")).leaf=true + entry({"admin","docker","container"},form("docker/container")).leaf=true + entry({"admin","docker","container_stats"},call("action_get_container_stats")).leaf=true + entry({"admin","docker","confirm"},call("action_confirm")).leaf=true + +end + + +function action_events() + local logs = "" + local dk = docker.new() + local query ={} + query["until"] = os.time() + local events = dk:events(nil, query) + for _, v in ipairs(events.body) do + if v.Type == "container" then + logs = (logs ~= "" and (logs .. "\n") or logs) .. "[" .. os.date("%Y-%m-%d %H:%M:%S", v.time) .."] "..v.Type.. " " .. (v.Action or "null") .. " Container ID:".. (v.Actor.ID or "null") .. " Container Name:" .. (v.Actor.Attributes.name or "null") + elseif v.Type == "network" then + logs = (logs ~= "" and (logs .. "\n") or logs) .. "[" .. os.date("%Y-%m-%d %H:%M:%S", v.time) .."] "..v.Type.. " " .. v.Action .. " Container ID:"..( v.Actor.Attributes.container or "null" ) .. " Network Name:" .. (v.Actor.Attributes.name or "null") .. " Network type:".. v.Actor.Attributes.type or "" + elseif v.Type == "image" then + logs = (logs ~= "" and (logs .. "\n") or logs) .. "[" .. os.date("%Y-%m-%d %H:%M:%S", v.time) .."] "..v.Type.. " " .. v.Action .. " Image:".. (v.Actor.ID or "null").. " Image Name:" .. (v.Actor.Attributes.name or "null") + end + end + luci.template.render("docker/logs", {self={syslog = logs, title="Docker Events"}}) +end + +local calculate_cpu_percent = function(d) + if type(d) ~= "table" then return end + cpu_count = tonumber(d["cpu_stats"]["online_cpus"]) + cpu_percent = 0.0 + cpu_delta = tonumber(d["cpu_stats"]["cpu_usage"]["total_usage"]) - tonumber(d["precpu_stats"]["cpu_usage"]["total_usage"]) + system_delta = tonumber(d["cpu_stats"]["system_cpu_usage"]) - tonumber(d["precpu_stats"]["system_cpu_usage"]) + if system_delta > 0.0 then + cpu_percent = string.format("%.2f", cpu_delta / system_delta * 100.0 * cpu_count) + end + -- return cpu_percent .. "%" + return cpu_percent +end + +local get_memory = function(d) + if type(d) ~= "table" then return end + -- local limit = string.format("%.2f", tonumber(d["memory_stats"]["limit"]) / 1024 / 1024) + -- local usage = string.format("%.2f", (tonumber(d["memory_stats"]["usage"]) - tonumber(d["memory_stats"]["stats"]["total_cache"])) / 1024 / 1024) + -- return usage .. "MB / " .. limit.. "MB" + local limit =tonumber(d["memory_stats"]["limit"]) + local usage = tonumber(d["memory_stats"]["usage"]) - tonumber(d["memory_stats"]["stats"]["total_cache"]) + return usage, limit +end + +local get_rx_tx = function(d) + if type(d) ~="table" then return end + -- local data + -- if type(d["networks"]) == "table" then + -- for e, v in pairs(d["networks"]) do + -- data = (data and (data .. "
") or "") .. e .. " Total Tx:" .. string.format("%.2f",(tonumber(v.tx_bytes)/1024/1024)) .. "MB Total Rx: ".. string.format("%.2f",(tonumber(v.rx_bytes)/1024/1024)) .. "MB" + -- end + -- end + local data = {} + if type(d["networks"]) == "table" then + for e, v in pairs(d["networks"]) do + data[e] = { + bw_tx = tonumber(v.tx_bytes), + bw_rx = tonumber(v.rx_bytes) + } + end + end + return data +end + +function action_get_container_stats(container_id) + if container_id then + local dk = docker.new() + local response = dk.containers:inspect(container_id) + if response.code == 200 and response.body.State.Running then + response = dk.containers:stats(container_id, {stream=false}) + if response.code == 200 then + local container_stats = response.body + local cpu_percent = calculate_cpu_percent(container_stats) + local mem_useage, mem_limit = get_memory(container_stats) + local bw_rxtx = get_rx_tx(container_stats) + luci.http.status(response.code, response.body.message) + luci.http.prepare_content("application/json") + luci.http.write_json({ + cpu_percent = cpu_percent, + memory = { + mem_useage = mem_useage, + mem_limit = mem_limit + }, + bw_rxtx = bw_rxtx + }) + else + luci.http.status(response.code, response.body.message) + luci.http.prepare_content("text/plain") + luci.http.write(response.body.message) + end + else + if response.code == 200 then + luci.http.status(500, "container "..container_id.." not running") + luci.http.prepare_content("text/plain") + luci.http.write("Container "..container_id.." not running") + else + luci.http.status(response.code, response.body.message) + luci.http.prepare_content("text/plain") + luci.http.write(response.body.message) + end + end + else + luci.http.status(404, "No container name or id") + luci.http.prepare_content("text/plain") + luci.http.write("No container name or id") + end +end + +function action_confirm() + local status_path=luci.model.uci.cursor():get("docker", "local", "status_path") + local data = nixio.fs.readfile(status_path) + if data then + code = 202 + msg = data + else + code = 200 + msg = "finish" + data = "finish" + end + -- luci.util.perror(data) + luci.http.status(code, msg) + luci.http.prepare_content("application/json") + luci.http.write_json({info = data}) +end diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua b/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua new file mode 100644 index 0000000000..6e1f906fa4 --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua @@ -0,0 +1,487 @@ +--[[ +LuCI - Lua Configuration Interface +Copyright 2019 lisaac +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +$Id$ +]]-- + +require "luci.util" +local uci = luci.model.uci.cursor() +local docker = require "luci.model.docker" +local dk = docker.new() +container_id = arg[1] +local action = arg[2] or "info" + +local images, networks, containers_info +if not container_id then return end +local res = dk.containers:inspect(container_id) +if res.code < 300 then container_info = res.body else return end +res = dk.networks:list() +if res.code < 300 then networks = res.body else return end + +local get_ports = function(d) + local data + if d.HostConfig and d.HostConfig.PortBindings then + for inter, out in pairs(d.HostConfig.PortBindings) do + data = (data and (data .. "
") or "") .. out[1]["HostPort"] .. ":" .. inter + end + end + return data +end + +local get_env = function(d) + local data + if d.Config and d.Config.Env then + for _,v in ipairs(d.Config.Env) do + data = (data and (data .. "
") or "") .. v + end + end + return data +end + +local get_command = function(d) + local data + if d.Config and d.Config.Cmd then + for _,v in ipairs(d.Config.Cmd) do + data = (data and (data .. " ") or "") .. v + end + end + return data +end + +local get_mounts = function(d) + local data + if d.Mounts then + for _,v in ipairs(d.Mounts) do + local v_sorce_d, v_dest_d + local v_sorce = "" + local v_dest = "" + for v_sorce_d in v["Source"]:gmatch('[^/]+') do + if v_sorce_d and #v_sorce_d > 12 then + v_sorce = v_sorce .. "/" .. v_sorce_d:sub(1,12) .. "..." + else + v_sorce = v_sorce .."/".. v_sorce_d + end + end + for v_dest_d in v["Destination"]:gmatch('[^/]+') do + if v_dest_d and #v_dest_d > 12 then + v_dest = v_dest .. "/" .. v_dest_d:sub(1,12) .. "..." + else + v_dest = v_dest .."/".. v_dest_d + end + end + data = (data and (data .. "
") or "") .. v_sorce .. ":" .. v["Destination"] .. (v["Mode"] ~= "" and (":" .. v["Mode"]) or "") + end + end + return data +end + +local get_device = function(d) + local data + if d.HostConfig and d.HostConfig.Devices then + for _,v in ipairs(d.HostConfig.Devices) do + data = (data and (data .. "
") or "") .. v["PathOnHost"] .. ":" .. v["PathInContainer"] .. (v["CgroupPermissions"] ~= "" and (":" .. v["CgroupPermissions"]) or "") + end + end + return data +end + +local get_links = function(d) + local data + if d.HostConfig and d.HostConfig.Links then + for _,v in ipairs(d.HostConfig.Links) do + data = (data and (data .. "
") or "") .. v + end + end + return data +end + +local get_networks = function(d) + local data={} + if d.NetworkSettings and d.NetworkSettings.Networks and type(d.NetworkSettings.Networks) == "table" then + for k,v in pairs(d.NetworkSettings.Networks) do + data[k] = v.IPAddress or "" + end + end + return data +end + + +local start_stop_remove = function(m, cmd) + docker:clear_status() + docker:append_status("Containers: " .. cmd .. " " .. container_id .. "...") + local res + if cmd ~= "upgrade" then + res = dk.containers[cmd](dk, container_id) + else + res = dk.containers_upgrade(dk, container_id) + end + if res and res.code >= 300 then + docker:append_status("fail code:" .. res.code.." ".. (res.body.message and res.body.message or res.message)) + luci.http.redirect(luci.dispatcher.build_url("admin/docker/container/"..container_id)) + else + docker:clear_status() + if cmd ~= "remove" and cmd ~= "upgrade" then + luci.http.redirect(luci.dispatcher.build_url("admin/docker/container/"..container_id)) + else + luci.http.redirect(luci.dispatcher.build_url("admin/docker/containers")) + end + end +end + +m=SimpleForm("docker", container_info.Name:sub(2), translate("Docker Container") ) +m.template = "docker/cbi/xsimpleform" +m.redirect = luci.dispatcher.build_url("admin/docker/containers") +-- m:append(Template("docker/container")) +docker_status = m:section(SimpleSection) +docker_status.template="docker/apply_widget" +docker_status.err=nixio.fs.readfile(dk.options.status_path) +-- luci.util.perror(docker_status.err) +if docker_status.err then docker:clear_status() end + + +action_section = m:section(Table,{{}}) +action_section.notitle=true +action_section.rowcolors=false +action_section.template="cbi/nullsection" + +btnstart=action_section:option(Button, "_start") +btnstart.template="docker/cbi/inlinebutton" +btnstart.inputtitle=translate("Start") +btnstart.inputstyle = "apply" +btnstart.forcewrite = true +btnrestart=action_section:option(Button, "_restart") +btnrestart.template="docker/cbi/inlinebutton" +btnrestart.inputtitle=translate("Restart") +btnrestart.inputstyle = "reload" +btnrestart.forcewrite = true +btnstop=action_section:option(Button, "_stop") +btnstop.template="docker/cbi/inlinebutton" +btnstop.inputtitle=translate("Stop") +btnstop.inputstyle = "reset" +btnstop.forcewrite = true +btnupgrade=action_section:option(Button, "_upgrade") +btnupgrade.template="docker/cbi/inlinebutton" +btnupgrade.inputtitle=translate("Upgrade") +btnupgrade.inputstyle = "reload" +btnstop.forcewrite = true +btnduplicate=action_section:option(Button, "_duplicate") +btnduplicate.template="docker/cbi/inlinebutton" +btnduplicate.inputtitle=translate("Duplicate") +btnduplicate.inputstyle = "add" +btnstop.forcewrite = true +btnremove=action_section:option(Button, "_remove") +btnremove.template="docker/cbi/inlinebutton" +btnremove.inputtitle=translate("Remove") +btnremove.inputstyle = "remove" +btnremove.forcewrite = true + +btnstart.write = function(self, section) + start_stop_remove(m,"start") +end +btnrestart.write = function(self, section) + start_stop_remove(m,"restart") +end +btnupgrade.write = function(self, section) + start_stop_remove(m,"upgrade") +end +btnremove.write = function(self, section) + start_stop_remove(m,"remove") +end +btnstop.write = function(self, section) + start_stop_remove(m,"stop") +end +btnduplicate.write = function(self, section) + luci.http.redirect(luci.dispatcher.build_url("admin/docker/newcontainer/duplicate/"..container_id)) +end + +tab_section = m:section(SimpleSection) +tab_section.template="docker/container" + +if action == "info" then + m.submit = false + m.reset = false + table_info = { + ["01name"] = {_key = translate("Name"), _value = container_info.Name:sub(2) or "-", _button=translate("Update")}, + ["02id"] = {_key = translate("ID"), _value = container_info.Id or "-"}, + ["03image"] = {_key = translate("Image"), _value = container_info.Config.Image .. "
" .. container_info.Image}, + ["04status"] = {_key = translate("Status"), _value = container_info.State and container_info.State.Status or "-"}, + ["05created"] = {_key = translate("Created"), _value = container_info.Created or "-"}, + } + table_info["06start"] = container_info.State.Status == "running" and {_key = translate("Start Time"), _value = container_info.State and container_info.State.StartedAt or "-"} or {_key = translate("Finish Time"), _value = container_info.State and container_info.State.FinishedAt or "-"} + table_info["07healthy"] = {_key = translate("Healthy"), _value = container_info.State and container_info.State.Health and container_info.State.Health.Status or "-"} + table_info["08restart"] = {_key = translate("Restart Policy"), _value = container_info.HostConfig and container_info.HostConfig.RestartPolicy and container_info.HostConfig.RestartPolicy.Name or "-", _button=translate("Update")} + table_info["09device"] = {_key = translate("Device"), _value = get_device(container_info) or "-"} + table_info["09mount"] = {_key = translate("Mount/Volume"), _value = get_mounts(container_info) or "-"} + + table_info["10cmd"] = {_key = translate("Command"), _value = get_command(container_info) or "-"} + table_info["11env"] = {_key = translate("Env"), _value = get_env(container_info) or "-"} + table_info["12ports"] = {_key = translate("Ports"), _value = get_ports(container_info) or "-"} + table_info["13links"] = {_key = translate("Links"), _value = get_links(container_info) or "-"} + info_networks = get_networks(container_info) + list_networks = {} + for _, v in ipairs (networks) do + if v.Name then + local parent = v.Options and v.Options.parent or nil + local ip = v.IPAM and v.IPAM.Config and v.IPAM.Config[1] and v.IPAM.Config[1].Subnet or nil + ipv6 = v.IPAM and v.IPAM.Config and v.IPAM.Config[2] and v.IPAM.Config[2].Subnet or nil + local network_name = v.Name .. " | " .. v.Driver .. (parent and (" | " .. parent) or "") .. (ip and (" | " .. ip) or "").. (ipv6 and (" | " .. ipv6) or "") + list_networks[v.Name] = network_name + end + end + + if type(info_networks)== "table" then + for k,v in pairs(info_networks) do + table_info["14network"..k] = { + _key = translate("Network"), _value = k.. (v~="" and (" | ".. v) or ""), _button=translate("Disconnect") + } + list_networks[k]=nil + end + end + + table_info["15connect"] = {_key = translate("Connect Network"), _value = list_networks ,_opts = "", _button=translate("Connect")} + + + d_info = m:section(Table,table_info) + d_info.nodescr=true + d_info.formvalue=function(self, section) + return table_info + end + dv_key = d_info:option(DummyValue, "_key", translate("Info")) + dv_key.width = "20%" + dv_value = d_info:option(ListValue, "_value") + dv_value.render = function(self, section, scope) + if table_info[section]._key == translate("Name") then + self:reset_values() + self.template = "cbi/value" + self.size = 30 + self.keylist = {} + self.vallist = {} + self.default=table_info[section]._value + Value.render(self, section, scope) + elseif table_info[section]._key == translate("Restart Policy") then + self.template = "cbi/lvalue" + self:reset_values() + self.size = nil + self:value("no", "No") + self:value("unless-stopped", "Unless stopped") + self:value("always", "Always") + self:value("on-failure", "On failure") + self.default=table_info[section]._value + ListValue.render(self, section, scope) + elseif table_info[section]._key == translate("Connect Network") then + self.template = "cbi/lvalue" + self:reset_values() + self.size = nil + for k,v in pairs(list_networks) do + self:value(k,v) + end + self.default=table_info[section]._value + ListValue.render(self, section, scope) + else + self:reset_values() + self.rawhtml=true + self.template = "cbi/dvalue" + self.default=table_info[section]._value + DummyValue.render(self, section, scope) + end + end + dv_value.forcewrite = true -- for write function using simpleform + dv_value.write = function(self, section, value) + table_info[section]._value=value + end + dv_value.validate = function(self, value) + return value + end + dv_opts = d_info:option(Value, "_opts") + dv_opts.forcewrite = true -- for write function using simpleform + dv_opts.write = function(self, section, value) + + table_info[section]._opts=value + end + dv_opts.validate = function(self, value) + return value + end + dv_opts.render = function(self, section, scope) + if table_info[section]._key==translate("Connect Network") then + self.template="cbi/value" + self.keylist = {} + self.vallist = {} + self.placeholder = "10.1.1.254" + self.datatype = "ip4addr" + self.default=table_info[section]._opts + Value.render(self, section, scope) + else + self.rawhtml=true + self.template = "cbi/dvalue" + self.default=table_info[section]._opts + DummyValue.render(self, section, scope) + end + end + btn_update = d_info:option(Button, "_button") + btn_update.forcewrite = true + btn_update.render = function(self, section, scope) + if table_info[section]._button and table_info[section]._value ~= nil then + btn_update.inputtitle=table_info[section]._button + self.template = "cbi/button" + Button.render(self, section, scope) + else + self.template = "docker/cbi/dummyvalue" + self.default="" + DummyValue.render(self, section, scope) + end + end + btn_update.write = function(self, section, value) + -- luci.util.perror(section) + local res + docker:clear_status() + if section == "01name" then + docker:append_status("Containers: rename " .. container_id .. "...") + local new_name = table_info[section]._value + res = dk.containers:rename(container_id,{name=new_name}) + elseif section == "08restart" then + docker:append_status("Containers: update " .. container_id .. "...") + local new_restart = table_info[section]._value + res = dk.containers:update(container_id, nil, {RestartPolicy = {Name = new_restart}}) + elseif table_info[section]._key == translate("Network") then + local _,_,leave_network = table_info[section]._value:find("(.-) | .+") + leave_network = leave_network or table_info[section]._value + docker:append_status("Network: disconnect " .. leave_network .. container_id .. "...") + res = dk.networks:disconnect(leave_network, nil, {Container = container_id}) + elseif section == "15connect" then + local connect_network = table_info[section]._value + local network_opiton + if connect_network ~= "none" and connect_network ~= "bridge" and connect_network ~= "host" then + -- luci.util.perror(table_info[section]._opts) + network_opiton = table_info[section]._opts ~= "" and { + IPAMConfig={ + IPv4Address=table_info[section]._opts + } + } or nil + end + docker:append_status("Network: connect " .. connect_network .. container_id .. "...") + res = dk.networks:connect(connect_network, nil, {Container = container_id, EndpointConfig= network_opiton}) + end + if res and res.code > 300 then + docker:append_status("fail code:" .. res.code.." ".. (res.body.message and res.body.message or res.message)) + else + docker:clear_status() + end + luci.http.redirect(luci.dispatcher.build_url("admin/docker/container/"..container_id.."/info")) + end + +-- info end +elseif action == "edit" then + editsection= m:section(SimpleSection) + d = editsection:option( Value, "cpus", translate("CPUs"), translate("Number of CPUs. Number is a fractional number. 0.000 means no limit.")) + d.placeholder = "1.5" + d.rmempty = true + d.datatype="ufloat" + d.default = container_info.HostConfig.NanoCpus / (10^9) + + d = editsection:option(Value, "cpushares", translate("CPU Shares Weight"), translate("CPU shares relative weight, if 0 is set, the system will ignore the value and use the default of 1024.")) + d.placeholder = "1024" + d.rmempty = true + d.datatype="uinteger" + d.default = container_info.HostConfig.CpuShares + + d = editsection:option(Value, "memory", translate("Memory"), translate("Memory limit (format: []). Number is a positive integer. Unit can be one of b, k, m, or g. Minimum is 4M.")) + d.placeholder = "128m" + d.rmempty = true + d.default = container_info.HostConfig.Memory ~=0 and ((container_info.HostConfig.Memory / 1024 /1024) .. "M") or 0 + + d = editsection:option(Value, "blkioweight", translate("Block IO Weight"), translate("Block IO weight (relative weight) accepts a weight value between 10 and 1000.")) + d.placeholder = "500" + d.rmempty = true + d.datatype="uinteger" + d.default = container_info.HostConfig.BlkioWeight + + m.handle = function(self, state, data) + if state == FORM_VALID then + local memory = data.memory + if memory and memory ~= 0 then + _,_,n,unit = memory:find("([%d%.]+)([%l%u]+)") + if n then + unit = unit and unit:sub(1,1):upper() or "B" + if unit == "M" then + memory = tonumber(n) * 1024 * 1024 + elseif unit == "G" then + memory = tonumber(n) * 1024 * 1024 * 1024 + elseif unit == "K" then + memory = tonumber(n) * 1024 + else + memory = tonumber(n) + end + end + end + request_body = { + BlkioWeight = tonumber(data.blkioweight), + NanoCPUs = tonumber(data.cpus)*10^9, + Memory = tonumber(memory), + CpuShares = tonumber(data.cpushares) + } + docker:clear_status() + docker:append_status("Containers: update " .. container_id .. "...") + local res = dk.containers:update(container_id, nil, request_body) + if res and res.code >= 300 then + docker:append_status("fail code:" .. res.code.." ".. (res.body.message and res.body.message or res.message)) + else + docker:clear_status() + end + luci.http.redirect(luci.dispatcher.build_url("admin/docker/container/"..container_id.."/edit")) + end + end +elseif action == "logs" then + logsection= m:section(SimpleSection) + local logs = "" + local query ={ + stdout = 1, + stderr = 1, + tail = 1000 + } + local logs = dk.containers:logs(container_id, query) + if logs.code == 200 then + logsection.syslog=logs.body + else + logsection.syslog="Get Logs ERROR\n"..logs.code..": "..logs.body + end + logsection.title=translate("Container Logs") + logsection.template="docker/logs" + m.submit = false + m.reset = false +elseif action == "stats" then + local response = dk.containers:top(container_id, {ps_args="-aux"}) + local container_top + if response.code == 200 then + container_top=response.body + else + response = dk.containers:top(container_id) + if response.code == 200 then + container_top=response.body + end + end + + if type(container_top) == "table" then + container_top=response.body + stat_section = m:section(SimpleSection) + stat_section.container_id = container_id + stat_section.template="docker/stats" + table_stats = {cpu={key=translate("CPU Useage"),value='-'},memory={key=translate("Memory Useage"),value='-'}} + stat_section = m:section(Table, table_stats, translate("Stats")) + stat_section:option(DummyValue, "key", translate("Stats")).width="33%" + + stat_section:option(DummyValue, "value") + top_section= m:section(Table, container_top.Processes, translate("TOP")) + for i, v in ipairs(container_top.Titles) do + top_section:option(DummyValue, i, translate(v)) + end +end +m.submit = false +m.reset = false +end + + +return m \ No newline at end of file diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/containers.lua b/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/containers.lua new file mode 100644 index 0000000000..6939f05d36 --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/containers.lua @@ -0,0 +1,203 @@ +--[[ +LuCI - Lua Configuration Interface +Copyright 2019 lisaac +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +$Id$ +]]-- + +require "luci.util" +local http = require "luci.http" +local uci = luci.model.uci.cursor() +local docker = require "luci.model.docker" +local dk = docker.new() + +local images, networks, containers +local res = dk.images:list() +if res.code <300 then images = res.body else return end +res = dk.networks:list() +if res.code <300 then networks = res.body else return end +res = dk.containers:list(nil, {all=true}) +if res.code <300 then containers = res.body else return end + +local urlencode = luci.http.protocol and luci.http.protocol.urlencode or luci.util.urlencode + +function get_containers() + local data = {} + if type(containers) ~= "table" then return nil end + for i, v in ipairs(containers) do + local index = v.Created .. v.Id + data[index]={} + data[index]["_selected"] = 0 + data[index]["_id"] = v.Id:sub(1,12) + data[index]["_name"] = v.Names[1]:sub(2) + data[index]["_status"] = v.Status + if v.Status:find("^Up") then + data[index]["_status"] = ''.. data[index]["_status"] .. "" + else + data[index]["_status"] = ''.. data[index]["_status"] .. "" + end + if (type(v.NetworkSettings) == "table" and type(v.NetworkSettings.Networks) == "table") then + for networkname, netconfig in pairs(v.NetworkSettings.Networks) do + data[index]["_network"] = (data[index]["_network"] ~= nil and (data[index]["_network"] .." | ") or "").. networkname .. (netconfig.IPAddress ~= "" and (": " .. netconfig.IPAddress) or "") + end + end + -- networkmode = v.HostConfig.NetworkMode ~= "default" and v.HostConfig.NetworkMode or "bridge" + -- data[index]["_network"] = v.NetworkSettings.Networks[networkmode].IPAddress or nil + -- local _, _, image = v.Image:find("^sha256:(.+)") + -- if image ~= nil then + -- image=image:sub(1,12) + -- end + + if v.Ports then + data[index]["_ports"] = nil + for _,v2 in ipairs(v.Ports) do + data[index]["_ports"] = (data[index]["_ports"] and (data[index]["_ports"] .. ", ") or "") .. (v2.PublicPort and (v2.PublicPort .. ":") or "") .. (v2.PrivatePort and (v2.PrivatePort .."/") or "") .. (v2.Type and v2.Type or "") + end + end + for ii,iv in ipairs(images) do + if iv.Id == v.ImageID then + data[index]["_image"] = iv.RepoTags and iv.RepoTags[1] or (iv.RepoDigests[1]:gsub("(.-)@.+", "%1") .. ":none") + end + end + + data[index]["_image_id"] = v.ImageID:sub(8,20) + data[index]["_command"] = v.Command + end + return data +end + +local c_lists = get_containers() +-- list Containers +-- m = Map("docker", translate("Docker")) +m = SimpleForm("docker", translate("Docker")) +m.template = "docker/cbi/xsimpleform" +m.submit=false +m.reset=false + +docker_status = m:section(SimpleSection) +docker_status.template="docker/apply_widget" +docker_status.err=nixio.fs.readfile(dk.options.status_path) +-- luci.util.perror(docker_status.err) +if docker_status.err then docker:clear_status() end + +c_table = m:section(Table, c_lists, translate("Containers")) +c_table.nodescr=true +-- v.template = "cbi/tblsection" +-- v.sortable = true +container_selecter = c_table:option(Flag, "_selected","") +container_selecter.disabled = 0 +container_selecter.enabled = 1 +container_selecter.default = 0 + +container_id = c_table:option(DummyValue, "_id", translate("ID")) +container_id.width="10%" +container_name = c_table:option(DummyValue, "_name", translate("Name")) +container_name.width="20%" +container_name.template="docker/cbi/dummyvalue" +container_name.href = function (self, section) + return luci.dispatcher.build_url("admin/docker/container/" .. urlencode(container_id:cfgvalue(section))) +end +container_status = c_table:option(DummyValue, "_status", translate("Status")) +container_status.width="15%" +container_status.rawhtml=true +container_ip = c_table:option(DummyValue, "_network", translate("Network")) +container_ip.width="15%" +container_ports = c_table:option(DummyValue, "_ports", translate("Ports")) +container_ports.width="10%" +container_image = c_table:option(DummyValue, "_image", translate("Image")) +container_image.template="docker/cbi/dummyvalue" +container_image.width="10%" +-- container_image.href = function (self, section) +-- return luci.dispatcher.build_url("admin/docker/image/" .. urlencode(c_lists[section]._image_id)) +-- end +container_command = c_table:option(DummyValue, "_command", translate("Command")) +container_command.width="20%" + +container_selecter.write=function(self, section, value) + c_lists[section]._selected = value +end + +local start_stop_remove = function(m,cmd) + -- luci.template.render("admin_uci/apply", { + -- changes = next(changes) and changes, + -- configs = reload + -- }) + + local c_selected = {} + -- 遍历table中sectionid + local c_table_sids = c_table:cfgsections() + for _, c_table_sid in ipairs(c_table_sids) do + -- 得到选中项的名字 + if c_lists[c_table_sid]._selected == 1 then + c_selected[#c_selected+1] = container_name:cfgvalue(c_table_sid) + end + end + if #c_selected >0 then + -- luci.util.perror(dk.options.status_path) + docker:clear_status() + local success = true + for _,cont in ipairs(c_selected) do + docker:append_status("Containers: " .. cmd .. " " .. cont .. "...") + local res = dk.containers[cmd](dk, cont) + if res and res.code >= 300 then + success = false + docker:append_status("fail code:" .. res.code.." ".. (res.body.message and res.body.message or res.message).. "
") + else + docker:append_status("done
") + end + end + if success then docker:clear_status() end + luci.http.redirect(luci.dispatcher.build_url("admin/docker/containers")) + end +end + +action_section = m:section(Table,{{}}) +action_section.notitle=true +action_section.rowcolors=false +action_section.template="cbi/nullsection" + +btnnew=action_section:option(Button, "_new") +btnnew.inputtitle= translate("New") +btnnew.template="docker/cbi/inlinebutton" +btnnew.inputstyle = "add" +btnnew.forcewrite = true +btnstart=action_section:option(Button, "_start") +btnstart.template="docker/cbi/inlinebutton" +btnstart.inputtitle=translate("Start") +btnstart.inputstyle = "apply" +btnstart.forcewrite = true +btnrestart=action_section:option(Button, "_restart") +btnrestart.template="docker/cbi/inlinebutton" +btnrestart.inputtitle=translate("Restart") +btnrestart.inputstyle = "reload" +btnrestart.forcewrite = true +btnstop=action_section:option(Button, "_stop") +btnstop.template="docker/cbi/inlinebutton" +btnstop.inputtitle=translate("Stop") +btnstop.inputstyle = "reset" +btnstop.forcewrite = true +btnremove=action_section:option(Button, "_remove") +btnremove.template="docker/cbi/inlinebutton" +btnremove.inputtitle=translate("Remove") +btnremove.inputstyle = "remove" +btnremove.forcewrite = true +btnnew.write = function(self, section) + luci.http.redirect(luci.dispatcher.build_url("admin/docker/newcontainer")) +end +btnstart.write = function(self, section) + start_stop_remove(m,"start") +end +btnrestart.write = function(self, section) + start_stop_remove(m,"restart") +end +btnremove.write = function(self, section) + start_stop_remove(m,"remove") +end +btnstop.write = function(self, section) + start_stop_remove(m,"stop") +end + +return m \ No newline at end of file diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/images.lua b/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/images.lua new file mode 100644 index 0000000000..6cbb208589 --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/images.lua @@ -0,0 +1,178 @@ +--[[ +LuCI - Lua Configuration Interface +Copyright 2019 lisaac +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +$Id$ +]]-- + +require "luci.util" +local uci = luci.model.uci.cursor() +local docker = require "luci.model.docker" +local dk = docker.new() + +local containers, images +local res = dk.images:list() +if res.code <300 then images = res.body else return end +res = dk.containers:list(nil, {all=true}) +if res.code <300 then containers = res.body else return end + +function get_images() + local data = {} + for i, v in ipairs(images) do + local index = v.Created .. v.Id + data[index]={} + data[index]["_selected"] = 0 + data[index]["_id"] = v.Id:sub(8,20) + if v.RepoTags then + for i, v1 in ipairs(v.RepoTags) do + data[index]["_tags"] =(data[index]["_tags"] and ( data[index]["_tags"] .. "" )or "") .. v1 + end + else + _,_, data[index]["_tags"] = v.RepoDigests[1]:find("^(.-)@.+") + data[index]["_tags"]=data[index]["_tags"]..":none" + end + for ci,cv in ipairs(containers) do + if v.Id == cv.ImageID then + data[index]["_containers"] = (data[index]["_containers"] and (data[index]["_containers"] .. " | ") or "").. + "".. cv.Names[1]:sub(2).."" + end + end + data[index]["_size"] = string.format("%.2f", tostring(v.Size/1024/1024)).."MB" + data[index]["_created"] = os.date("%Y/%m/%d %H:%M:%S",v.Created) + end + return data +end + +local image_list = get_images() + +-- m = Map("docker", translate("Docker")) +m = SimpleForm("docker", translate("Docker")) +m.template = "docker/cbi/xsimpleform" +m.submit=false +m.reset=false + +local pull_value={{_image_tag_name="", _registry="index.docker.io"}} +local pull_section = m:section(Table,pull_value, translate("Pull Image")) +pull_section.template="cbi/nullsection" +local tag_name = pull_section:option(Value, "_image_tag_name") +tag_name.template="docker/cbi/inlinevalue" +tag_name.placeholder="lisaac/luci:latest" +local registry = pull_section:option(Value, "_registry") +registry.template="docker/cbi/inlinevalue" +registry:value("index.docker.io", "DockerHub") +local action_pull = pull_section:option(Button, "_pull") +action_pull.inputtitle= translate("Pull") +action_pull.template="docker/cbi/inlinebutton" +action_pull.inputstyle = "add" +tag_name.write = function(self, section,value) + local hastag = value:find(":") + if not hastag then + value = value .. ":latest" + end + pull_value[section]["_image_tag_name"] = value +end +registry.write = function(self, section,value) + pull_value[section]["_registry"] = value +end +action_pull.write = function(self, section) + local tag = pull_value[section]["_image_tag_name"] + local server = pull_value[section]["_registry"] + --去掉协议前缀和后缀 + local _,_,tmp = server:find(".-://([%.%w%-%_]+)") + if not tmp then + _,_,server = server:find("([%.%w%-%_]+)") + end + local json_stringify = luci.json and luci.json.encode or luci.jsonc.stringify + if tag then + docker:clear_status() + docker:append_status("Images: " .. "pulling" .. " " .. tag .. "...") + local x_auth = nixio.bin.b64encode(json_stringify({serveraddress= server})) + local res = dk.images:create(nil, {fromImage=tag,_header={["X-Registry-Auth"]=x_auth}}) + if res and res.code >=300 then + docker:append_status("fail code:" .. res.code.." ".. (res.body.message and res.body.message or res.message).. "
") + else + docker:append_status("done
") + end + luci.http.redirect(luci.dispatcher.build_url("admin/docker/images")) + end +end + +image_table = m:section(Table, image_list, translate("Images")) + +image_selecter = image_table:option(Flag, "_selected","") +image_selecter.disabled = 0 +image_selecter.enabled = 1 +image_selecter.default = 0 + +image_id = image_table:option(DummyValue, "_id", translate("ID")) +image_table:option(DummyValue, "_tags", translate("RepoTags")).rawhtml = true +image_table:option(DummyValue, "_containers", translate("Containers")).rawhtml = true +image_table:option(DummyValue, "_size", translate("Size")) +image_table:option(DummyValue, "_created", translate("Created")) +image_selecter.write = function(self, section, value) + image_list[section]._selected = value +end + +local remove_action = function(force) + local image_selected = {} + -- 遍历table中sectionid + local image_table_sids = image_table:cfgsections() + for _, image_table_sid in ipairs(image_table_sids) do + -- 得到选中项的名字 + if image_list[image_table_sid]._selected == 1 then + image_selected[#image_selected+1] = image_id:cfgvalue(image_table_sid) + end + end + if next(image_selected) ~= nil then + local success = true + docker:clear_status() + for _,img in ipairs(image_selected) do + docker:append_status("Images: " .. "remove" .. " " .. img .. "...") + local query_body ={} + if force then + query_body.force = true + end + local msg = dk.images["remove"](dk, img, query_body) + if msg.code ~= 200 then + docker:append_status("fail code:" .. msg.code.." ".. (msg.body.message and msg.body.message or msg.message).. "
") + success = false + else + docker:append_status("done
") + end + end + if success then docker:clear_status() end + luci.http.redirect(luci.dispatcher.build_url("admin/docker/images")) + end +end + +docker_status = m:section(SimpleSection) +docker_status.template="docker/apply_widget" +docker_status.err=nixio.fs.readfile(dk.options.status_path) +if docker_status.err then docker:clear_status() end + +action = m:section(Table,{{}}) +action.notitle=true +action.rowcolors=false +action.template="cbi/nullsection" + +btnremove = action:option(Button, "remove") +btnremove.inputtitle= translate("Remove") +btnremove.template="docker/cbi/inlinebutton" +btnremove.inputstyle = "remove" +btnremove.forcewrite = true +btnremove.write = function(self, section) + remove_action() +end + +btnforceremove = action:option(Button, "forceremove") +btnforceremove.inputtitle= translate("Force Remove") +btnforceremove.template="docker/cbi/inlinebutton" +btnforceremove.inputstyle = "remove" +btnforceremove.forcewrite = true +btnforceremove.write = function(self, section) + remove_action(true) +end +return m \ No newline at end of file diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/networks.lua b/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/networks.lua new file mode 100644 index 0000000000..b1e924228e --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/networks.lua @@ -0,0 +1,128 @@ +--[[ +LuCI - Lua Configuration Interface +Copyright 2019 lisaac +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +$Id$ +]]-- + +require "luci.util" +local uci = luci.model.uci.cursor() +local docker = require "luci.model.docker" +local dk = docker.new() +local networks +local res = dk.networks:list() +if res.code < 300 then networks = res.body else return end + +local get_networks = function () + local data = {} + + if type(networks) ~= "table" then return nil end + for i, v in ipairs(networks) do + local index = v.Created .. v.Id + data[index]={} + data[index]["_selected"] = 0 + data[index]["_id"] = v.Id:sub(1,12) + data[index]["_name"] = v.Name + data[index]["_driver"] = v.Driver + if v.Driver == "bridge" then + data[index]["_interface"] = v.Options["com.docker.network.bridge.name"] + elseif v.Driver == "macvlan" then + data[index]["_interface"] = v.Options.parent + end + data[index]["_subnet"] = v.IPAM and v.IPAM.Config[1] and v.IPAM.Config[1].Subnet or nil + data[index]["_gateway"] = v.IPAM and v.IPAM.Config[1] and v.IPAM.Config[1].Gateway or nil + end + return data +end + +local network_list = get_networks() +-- m = Map("docker", translate("Docker")) +m = SimpleForm("docker", translate("Docker")) +m.template = "docker/cbi/xsimpleform" +m.submit=false +m.reset=false + +network_table = m:section(Table, network_list, translate("Networks")) +network_table.nodescr=true + +network_selecter = network_table:option(Flag, "_selected","") +network_selecter.template = "docker/cbi/xfvalue" +network_id = network_table:option(DummyValue, "_id", translate("ID")) +network_selecter.disabled = 0 +network_selecter.enabled = 1 +network_selecter.default = 0 +network_selecter.render = function(self, section, scope) + self.disable = 0 + if network_list[section]["_name"] == "bridge" or network_list[section]["_name"] == "none" or network_list[section]["_name"] == "host" then + self.disable = 1 + end + Flag.render(self, section, scope) +end + +network_name = network_table:option(DummyValue, "_name", translate("Name")) +network_driver = network_table:option(DummyValue, "_driver", translate("Driver")) +network_interface = network_table:option(DummyValue, "_interface", translate("Parent Interface")) +network_subnet = network_table:option(DummyValue, "_subnet", translate("Subnet")) +network_gateway = network_table:option(DummyValue, "_gateway", translate("Gateway")) + +network_selecter.write = function(self, section, value) + network_list[section]._selected = value +end + +docker_status = m:section(SimpleSection) +docker_status.template="docker/apply_widget" +docker_status.err=nixio.fs.readfile(dk.options.status_path) +if docker_status.err then docker:clear_status() end + +action = m:section(Table,{{}}) +action.notitle=true +action.rowcolors=false +action.template="cbi/nullsection" +btnnew=action:option(Button, "_new") +btnnew.inputtitle= translate("New") +btnnew.template="docker/cbi/inlinebutton" +btnnew.notitle=true +btnnew.inputstyle = "add" +btnnew.forcewrite = true +btnnew.write = function(self, section) + luci.http.redirect(luci.dispatcher.build_url("admin/docker/newnetwork")) +end +btnremove = action:option(Button, "_remove") +btnremove.inputtitle= translate("Remove") +btnremove.template="docker/cbi/inlinebutton" +btnremove.inputstyle = "remove" +btnremove.forcewrite = true +btnremove.write = function(self, section) + local network_selected = {} + -- 遍历table中sectionid + local network_table_sids = network_table:cfgsections() + for _, network_table_sid in ipairs(network_table_sids) do + -- 得到选中项的名字 + if network_list[network_table_sid]._selected == 1 then + network_selected[#network_selected+1] = network_name:cfgvalue(network_table_sid) + end + end + if next(network_selected) ~= nil then + local success = true + docker:clear_status() + for _,net in ipairs(network_selected) do + docker:append_status("Networks: " .. "remove" .. " " .. net .. "...") + local res = dk.networks["remove"](dk, net) + if res and res.code >= 300 then + docker:append_status("fail code:" .. res.code.." ".. (res.body.message and res.body.message or res.message).. "
") + success = false + else + docker:append_status("done
") + end + end + if success then + docker:clear_status() + end + luci.http.redirect(luci.dispatcher.build_url("admin/docker/networks")) + end +end + +return m \ No newline at end of file diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua b/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua new file mode 100644 index 0000000000..dbe5c6392b --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua @@ -0,0 +1,504 @@ +--[[ +LuCI - Lua Configuration Interface +Copyright 2019 lisaac +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +$Id$ +]]-- + +require "luci.util" +local uci = luci.model.uci.cursor() +local docker = require "luci.model.docker" +local dk = docker.new() +local cmd_line = table.concat(arg, '/') +local create_body = {} + +local images = dk.images:list().body +local networks = dk.networks:list().body +local containers = dk.containers:list(nil, {all=true}).body + +-- reslvo default config +local default_config = { } +if cmd_line and cmd_line:match("^docker.+") then + local key = nil + --cursor = 0: docker run + --cursor = 1: resloving para + --cursor = 2: resloving image + --cursor > 2: resloving command + local cursor = 0 + for w in cmd_line:gmatch("[^%s]+") do + -- skip '\' + if w == '\\' then + -- start with '-' + elseif w:match("^%-+.+") and cursor <= 1 then + --key=value + local val + key, val = w:match("^%-%-(.-)=(.+)") + -- -dit + if not key then key = w:match("^%-%-(.+)") end + + if not key then + key = w:match("^%-(.+)") + if key:match("i") or key:match("t") or key:match("d") then + if key:match("i") then default_config["interactive"] = true end + if key:match("t") then default_config["tty"] = true end + -- clear key + key = nil + end + end + + if key == "v" or key == "volume" then + key = "mount" + elseif key == "p" then + key = "port" + elseif key == "e" then + key = "env" + elseif key == "net" then + key = "network" + elseif key == "cpu-shares" then + key = "cpushares" + elseif key == "m" then + key = "memory" + elseif key == "blkio-weight" then + key = "blkioweight" + elseif key == "privileged" then + default_config["privileged"] = true + key = nil + end + --key=value + if val then + if key == "mount" or key == "link" or key == "env" or key == "port" or key == "device" or key == "tmpfs" then + if not default_config[key] then default_config[key] = {} end + table.insert( default_config[key], val ) + else + default_config[key] = val + end + -- clear key + key = nil + end + cursor = 1 + -- value + elseif key and type(key) == "string" and cursor == 1 then + if key == "mount" or key == "link" or key == "env" or key == "port" or key == "device" or key == "tmpfs" then + if not default_config[key] then default_config[key] = {} end + table.insert( default_config[key], w ) + else + default_config[key] = w + end + if key == "cpus" or key == "cpushare" or key == "memory" or key == "blkioweight" or key == "device" or key == "tmpfs" then + default_config["advance"] = 1 + end + key = nil + cursor = 1 + --image and command + elseif cursor >= 1 and key == nil then + if cursor == 1 then + default_config["image"] = w + elseif cursor > 1 then + default_config["command"] = (default_config["command"] and (default_config["command"] .. " " )or "") .. w + end + cursor = cursor + 1 + end + end +elseif cmd_line and cmd_line:match("^duplicate/[^/]+$") then + local container_id = cmd_line:match("^duplicate/(.+)") + create_body = dk:containers_duplicate_config(container_id) + if not create_body.HostConfig then create_body.HostConfig = {} end + if next(create_body) ~= nil then + default_config.name = nil + default_config.image = create_body.Image + default_config.tty = create_body.Tty and true or false + default_config.interactive = create_body.OpenStdin and true or false + default_config.privileged = create_body.HostConfig.Privileged and true or false + default_config.restart = create_body.HostConfig.RestartPolicy and create_body.HostConfig.RestartPolicy.name or nil + -- default_config.network = create_body.HostConfig.NetworkMode == "default" and "bridge" or create_body.HostConfig.NetworkMode + -- if container has leave original network, and add new network, .HostConfig.NetworkMode is INcorrect, so using first child of .NetworkingConfig.EndpointsConfig + default_config.network = next(create_body.NetworkingConfig.EndpointsConfig) + default_config.ip = default_config.network and default_config.network ~= "bridge" and default_config.network ~= "host" and default_config.network ~= "null" and create_body.NetworkingConfig.EndpointsConfig[default_config.network].IPAMConfig and create_body.NetworkingConfig.EndpointsConfig[default_config.network].IPAMConfig.IPv4Address or nil + default_config.link = create_body.HostConfig.Links + default_config.env = create_body.Env + default_config.mount = create_body.HostConfig.Binds + + if create_body.HostConfig.PortBindings and type(create_body.HostConfig.PortBindings) == "table" then + default_config.port = {} + for k, v in pairs(create_body.HostConfig.PortBindings) do + table.insert( default_config.port, v[1].HostPort..":"..k:match("^(%d+)/.+").."/"..k:match("^%d+/(.+)") ) + end + end + + default_config.user = create_body.User or nil + default_config.command = create_body.Cmd and type(create_body.Cmd) == "table" and table.concat(create_body.Cmd, " ") or nil + default_config.advance = 1 + default_config.cpus = create_body.HostConfig.NanoCPUs + default_config.cpushares = create_body.HostConfig.CpuShares + default_config.memory = create_body.HostConfig.Memory + default_config.blkioweight = create_body.HostConfig.BlkioWeight + + if create_body.HostConfig.Devices and type(create_body.HostConfig.Devices) == "table" then + default_config.device = {} + for _, v in ipairs(create_body.HostConfig.Devices) do + table.insert( default_config.device, v.PathOnHost..":"..v.PathInContainer..(v.CgroupPermissions ~= "" and (":" .. v.CgroupPermissions) or "") ) + end + end + + default_config.tmpfs = create_body.HostConfig.Tmpfs + end +end + +local m = SimpleForm("docker", translate("Docker")) +m.template = "docker/cbi/xsimpleform" +m.redirect = luci.dispatcher.build_url("admin", "docker", "containers") +-- m.reset = false +-- m.submit = false +-- new Container + +docker_status = m:section(SimpleSection) +docker_status.template="docker/apply_widget" +docker_status.err=nixio.fs.readfile(dk.options.status_path) +if docker_status.err then docker:clear_status() end + +local s = m:section(SimpleSection, translate("New Container")) +s.addremove = true +s.anonymous = true + +local d = s:option(DummyValue,"cmd_line", translate("Resolv CLI")) +d.rawhtml = true +d.template = "docker/resolv_container" + +d = s:option(Value, "name", translate("Container Name")) +d.rmempty = true +d.default = default_config.name or nil + +d = s:option(Flag, "interactive", translate("Interactive (-i)")) +d.rmempty = true +d.disabled = 0 +d.enabled = 1 +d.default = default_config.interactive and 1 or 0 + +d = s:option(Flag, "tty", translate("TTY (-t)")) +d.rmempty = true +d.disabled = 0 +d.enabled = 1 +d.default = default_config.tty and 1 or 0 + +d = s:option(Flag, "_force_pull", translate("Always pull image first")) +d.rmempty = true +d.disabled = 0 +d.enabled = 1 +d.default = 0 + +d = s:option(Value, "image", translate("Docker Image")) +d.rmempty = true +d.default = default_config.image or nil +for _, v in ipairs (images) do + if v.RepoTags then + d:value(v.RepoTags[1], v.RepoTags[1]) + end +end + +d = s:option(Flag, "privileged", translate("Privileged")) +d.rmempty = true +d.disabled = 0 +d.enabled = 1 +d.default = default_config.privileged and 1 or 0 + +d = s:option(ListValue, "restart", translate("Restart Policy")) +d.rmempty = true + +d:value("no", "No") +d:value("unless-stopped", "Unless stopped") +d:value("always", "Always") +d:value("on-failure", "On failure") +d.default = default_config.restart or "unless-stopped" + +local d_network = s:option(ListValue, "network", translate("Networks")) +d_network.rmempty = true +d_network.default = default_config.network or "bridge" + +local d_ip = s:option(Value, "ip", translate("IPv4 Address")) +d_ip.datatype="ip4addr" +d_ip:depends("network", "nil") +d_ip.default = default_config.ip or nil + +d = s:option(Value, "user", translate("User")) +d.placeholder = "1000:1000" +d.rmempty = true +d.default = default_config.user or nil + +d = s:option(DynamicList, "link", translate("Links with other containers")) +d.template = "docker/cbi/xdynlist" +d.placeholder = "container_name:alias" +d.rmempty = true +d:depends("network", "bridge") +d.default = default_config.link or nil + +d = s:option(DynamicList, "env", translate("Environmental Variable")) +d.template = "docker/cbi/xdynlist" +d.placeholder = "TZ=Asia/Shanghai" +d.rmempty = true +d.default = default_config.env or nil + +d = s:option(DynamicList, "mount", translate("Bind Mount")) +d.template = "docker/cbi/xdynlist" +d.placeholder = "/media:/media:slave" +d.rmempty = true +d.default = default_config.mount or nil + +local d_ports = s:option(DynamicList, "port", translate("Exposed Ports")) +d_ports.template = "docker/cbi/xdynlist" +d_ports.placeholder = "2200:22/tcp" +d_ports.rmempty = true +d_ports.default = default_config.port or nil + +d = s:option(Value, "command", translate("Run command")) +d.placeholder = "/bin/sh init.sh" +d.rmempty = true +d.default = default_config.command or nil + +d = s:option(Flag, "advance", translate("Advance")) +d.rmempty = true +d.disabled = 0 +d.enabled = 1 +d.default = default_config.advance or 0 + +d = s:option(Value, "cpus", translate("CPUs"), translate("Number of CPUs. Number is a fractional number. 0.000 means no limit.")) +d.placeholder = "1.5" +d.rmempty = true +d:depends("advance", 1) +d.datatype="ufloat" +d.default = default_config.cpus or nil + +d = s:option(Value, "cpushares", translate("CPU Shares Weight"), translate("CPU shares (relative weight, if 0 is set, the system will ignore the value and use the default of 1024.")) +d.placeholder = "1024" +d.rmempty = true +d:depends("advance", 1) +d.datatype="uinteger" +d.default = default_config.cpushares or nil + +d = s:option(Value, "memory", translate("Memory"), translate("Memory limit (format: []). Number is a positive integer. Unit can be one of b, k, m, or g. Minimum is 4M.")) +d.placeholder = "128m" +d.rmempty = true +d:depends("advance", 1) +d.default = default_config.memory or nil + +d = s:option(Value, "blkioweight", translate("Block IO Weight"), translate("Block IO weight (relative weight) accepts a weight value between 10 and 1000.")) +d.placeholder = "500" +d.rmempty = true +d:depends("advance", 1) +d.datatype="uinteger" +d.default = default_config.blkioweight or nil + +d = s:option(DynamicList, "device", translate("Device")) +d.template = "docker/cbi/xdynlist" +d.placeholder = "/dev/sda:/dev/xvdc:rwm" +d.rmempty = true +d:depends("advance", 1) +d.default = default_config.device or nil + +d = s:option(DynamicList, "tmpfs", translate("Tmpfs"), translate("Mount tmpfs filesystems")) +d.template = "docker/cbi/xdynlist" +d.placeholder = "/run:rw,noexec,nosuid,size=65536k" +d.rmempty = true +d:depends("advance", 1) +d.default = default_config.tmpfs or nil + +for _, v in ipairs (networks) do + if v.Name then + local parent = v.Options and v.Options.parent or nil + local ip = v.IPAM and v.IPAM.Config and v.IPAM.Config[1] and v.IPAM.Config[1].Subnet or nil + ipv6 = v.IPAM and v.IPAM.Config and v.IPAM.Config[2] and v.IPAM.Config[2].Subnet or nil + local network_name = v.Name .. " | " .. v.Driver .. (parent and (" | " .. parent) or "") .. (ip and (" | " .. ip) or "").. (ipv6 and (" | " .. ipv6) or "") + d_network:value(v.Name, network_name) + + if v.Name ~= "none" and v.Name ~= "bridge" and v.Name ~= "host" then + d_ip:depends("network", v.Name) + end + + if v.Driver == "bridge" then + d_ports:depends("network", v.Name) + end + end +end + +m.handle = function(self, state, data) + if state ~= FORM_VALID then return end + local tmp + local name = data.name + local tty = type(data.tty) == "number" and (data.tty == 1 and true or false) or default_config.tty or false + local interactive = type(data.interactive) == "number" and (data.interactive == 1 and true or false) or default_config.interactive or false + local image = data.image + local user = data.user + if image and not image:match(".-:.+") then + image = image .. ":latest" + end + local privileged = type(data.privileged) == "number" and (data.privileged == 1 and true or false) or default_config.privileged or false + local restart = data.restart + local env = data.env + local network = data.network + local ip = (network ~= "bridge" and network ~= "host" and network ~= "none") and data.ip or nil + local mount = data.mount + local memory = data.memory or 0 + local cpushares = data.cpushares or 0 + local cpus = data.cpus or 0 + local blkioweight = data.blkioweight or 500 + + local portbindings = {} + local exposedports = {} + local tmpfs = {} + tmp = data.tmpfs + if type(tmp) == "table" then + for i, v in ipairs(tmp)do + local _,_, k,v1 = v:find("(.-):(.+)") + if k and v1 then + tmpfs[k]=v1 + end + end + end + + local device = {} + tmp = data.device + if type(tmp) == "table" then + for i, v in ipairs(tmp) do + local t = {} + local _,_, h, c, p = v:find("(.-):(.-):(.+)") + if h and c then + t['PathOnHost'] = h + t['PathInContainer'] = c + t['CgroupPermissions'] = p or nil + else + local _,_, h, c = v:find("(.-):(.+)") + if h and c then + t['PathOnHost'] = h + t['PathInContainer'] = c + end + end + if next(t) ~= nil then + table.insert( device, t ) + end + end + end + + tmp = data.port or {} + for i, v in ipairs(tmp) do + for v1 ,v2 in string.gmatch(v, "(%d+):([^%s]+)") do + local _,_,p= v2:find("^%d+/(%w+)") + if p == nil then + v2=v2..'/tcp' + end + portbindings[v2] = {{HostPort=v1}} + exposedports[v2] = {HostPort=v1} + end + end + + local link = data.link + tmp = data.command + local command = {} + if tmp ~= nil then + for v in string.gmatch(tmp, "[^%s]+") do + command[#command+1] = v + end + end + if memory ~= 0 then + _,_,n,unit = memory:find("([%d%.]+)([%l%u]+)") + if n then + unit = unit and unit:sub(1,1):upper() or "B" + if unit == "M" then + memory = tonumber(n) * 1024 * 1024 + elseif unit == "G" then + memory = tonumber(n) * 1024 * 1024 * 1024 + elseif unit == "K" then + memory = tonumber(n) * 1024 + else + memory = tonumber(n) + end + end + end + + create_body.Hostname = network ~= "host" and name or nil + create_body.Tty = tty and true or false + create_body.OpenStdin = interactive and true or false + create_body.User = user + create_body.Cmd = (#command ~= 0) and command or nil + create_body.Env = env + create_body.Image = image + create_body.ExposedPorts = (next(exposedports) ~= nil) and exposedports or nil + create_body.HostConfig = create_body.HostConfig or {} + create_body.HostConfig.Binds = (#mount ~= 0) and mount or nil + create_body.HostConfig.NetworkMode = network + create_body.HostConfig.RestartPolicy = { Name = restart, MaximumRetryCount = 0 } + create_body.HostConfig.Privileged = privileged and true or false + create_body.HostConfig.PortBindings = (next(portbindings) ~= nil) and portbindings or nil + create_body.HostConfig.Memory = tonumber(memory) + create_body.HostConfig.CpuShares = tonumber(cpushares) + create_body.HostConfig.NanoCPUs = tonumber(cpus) * 10 ^ 9 + create_body.HostConfig.BlkioWeight = tonumber(blkioweight) + if ip then + if create_body.NetworkingConfig and create_body.NetworkingConfig.EndpointsConfig and type(create_body.NetworkingConfig.EndpointsConfig) == "table" then + for k, v in pairs (create_body.NetworkingConfig.EndpointsConfig) do + if k == network and v.IPAMConfig and v.IPAMConfig.IPv4Address then + v.IPAMConfig.IPv4Address = ip + else + create_body.NetworkingConfig.EndpointsConfig = { [network] = { IPAMConfig = { IPv4Address = ip } } } + end + break + end + else + create_body.NetworkingConfig = { EndpointsConfig = { [network] = { IPAMConfig = { IPv4Address = ip } } } } + end + elseif not create_body.NetworkingConfig then + create_body.NetworkingConfig = nil + end + + if next(tmpfs) ~= nil then + create_body["HostConfig"]["Tmpfs"] = tmpfs + end + if next(device) ~= nil then + create_body["HostConfig"]["Devices"] = device + end + + if network == "bridge" and next(link) ~= nil then + create_body["HostConfig"]["Links"] = link + end + local pull_image = function(image) + local server = "index.docker.io" + local json_stringify = luci.json and luci.json.encode or luci.jsonc.stringify + docker:append_status("Images: " .. "pulling" .. " " .. image .. "...") + local x_auth = nixio.bin.b64encode(json_stringify({serveraddress= server})) + local res = dk.images:create(nil, {fromImage=image,_header={["X-Registry-Auth"]=x_auth}}) + if res and res.code < 300 then + docker:append_status("done
") + else + docker:append_status("fail code:" .. res.code.." ".. (res.body.message and res.body.message or res.message).. "
") + luci.http.redirect(luci.dispatcher.build_url("admin/docker/newcontainer")) + end + end + docker:clear_status() + local exist_image = false + if image then + for _, v in ipairs (images) do + if v.RepoTags and v.RepoTags[1] == image then + exist_image = true + break + end + end + if not exist_image then + pull_image(image) + elseif data._force_pull == 1 then + pull_image(image) + end + end + + docker:append_status("Container: " .. "create" .. " " .. name .. "...") + local res = dk.containers:create(name, nil, create_body) + if res and res.code == 201 then + docker:clear_status() + luci.http.redirect(luci.dispatcher.build_url("admin/docker/containers")) + else + docker:append_status("fail code:" .. res.code.." ".. (res.body.message and res.body.message or res.message)) + luci.http.redirect(luci.dispatcher.build_url("admin/docker/newcontainer")) + end +end + +return m \ No newline at end of file diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua b/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua new file mode 100644 index 0000000000..7cd15dbc42 --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua @@ -0,0 +1,210 @@ +--[[ +LuCI - Lua Configuration Interface +Copyright 2019 lisaac +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +$Id$ +]]-- + +require "luci.util" +local uci = luci.model.uci.cursor() +local docker = require "luci.model.docker" +local dk = docker.new() + +m = SimpleForm("docker", translate("Docker")) +m.template = "docker/cbi/xsimpleform" +m.redirect = luci.dispatcher.build_url("admin", "docker", "networks") + +docker_status = m:section(SimpleSection) +docker_status.template="docker/apply_widget" +docker_status.err=nixio.fs.readfile(dk.options.status_path) +if docker_status.err then docker:clear_status() end + +s = m:section(SimpleSection, translate("New Network")) +s.addremove = true +s.anonymous = true + +d = s:option(Value, "name", translate("Network Name")) +d.rmempty = true + +d = s:option(ListValue, "dirver", translate("Driver")) +d.rmempty = true +d:value("bridge", "bridge") +d:value("macvlan", "macvlan") +d:value("ipvlan", "ipvlan") +d:value("overlay", "overlay") + +d = s:option(Value, "parent", translate("Parent Interface")) +d.rmempty = true +d:depends("dirver", "macvlan") +d.placeholder="eth0" + +d = s:option(Value, "macvlan_mode", translate("Macvlan Mode")) +d.rmempty = true +d:depends("dirver", "macvlan") +d.default="bridge" +d:value("bridge", "bridge") +d:value("private", "private") +d:value("vepa", "vepa") +d:value("passthru", "passthru") + +d = s:option(Value, "ipvlan_mode", translate("Ipvlan Mode")) +d.rmempty = true +d:depends("dirver", "ipvlan") +d.default="l3" +d:value("l2", "l2") +d:value("l3", "l3") + +d = s:option(Flag, "ingress", translate("Ingress"), translate("Ingress network is the network which provides the routing-mesh in swarm mode.")) +d.rmempty = true +d.disabled = 0 +d.enabled = 1 +d.default = 0 +d:depends("dirver", "overlay") + +d = s:option(DynamicList, "options", translate("Options")) +d.template = "docker/cbi/xdynlist" +d.rmempty = true +d.placeholder="com.docker.network.driver.mtu=1500" + +d = s:option(Flag, "internal", translate("Internal"), translate("Restrict external access to the network")) +d.rmempty = true +d.disabled = 0 +d.enabled = 1 +d.default = 0 + +d = s:option(Value, "subnet", translate("Subnet")) +d.rmempty = true +d.placeholder="10.1.0.0/16" +d.datatype="ip4addr" + +d = s:option(Value, "gateway", translate("Gateway")) +d.rmempty = true +d.placeholder="10.1.1.1" +d.datatype="ip4addr" + +d = s:option(Value, "ip_range", translate("IP range")) +d.rmempty = true +d.placeholder="10.1.1.0/24" +d.datatype="ip4addr" + +d = s:option(DynamicList, "aux_address", translate("Exclude IPs")) +d.template = "docker/cbi/xdynlist" +d.rmempty = true +d.placeholder="my-route=10.1.1.1" + +d = s:option(Flag, "ipv6", translate("Enable IPv6")) +d.rmempty = true +d.disabled = 0 +d.enabled = 1 +d.default = 0 + +d = s:option(Value, "subnet6", translate("IPv6 Subnet")) +d.rmempty = true +d.placeholder="fe80::/10" +d.datatype="ip6addr" +d:depends("ipv6", 1) + +d = s:option(Value, "gateway6", translate("IPv6 Gateway")) +d.rmempty = true +d.placeholder="fe80::1" +d.datatype="ip6addr" +d:depends("ipv6", 1) + +m.handle = function(self, state, data) + if state == FORM_VALID then + local name = data.name + local driver = data.dirver + + local internal = data.internal == 1 and true or false + + local subnet = data.subnet + local gateway = data.gateway + local ip_range = data.ip_range + + local aux_address = {} + local tmp = data.aux_address or {} + for i,v in ipairs(tmp) do + _,_,k1,v1 = v:find("(.-)=(.+)") + aux_address[k1] = v1 + end + + local options = {} + tmp = data.options or {} + for i,v in ipairs(tmp) do + _,_,k1,v1 = v:find("(.-)=(.+)") + options[k1] = v1 + end + + local ipv6 = data.ipv6 == 1 and true or false + + local create_body={ + Name = name, + Driver = driver, + EnableIPv6 = ipv6, + IPAM = { + Driver= "default" + }, + Internal = internal + } + + if subnet or gateway or ip_range then + create_body["IPAM"]["Config"] = { + { + Subnet = subnet, + Gateway = gateway, + IPRange = ip_range, + -- AuxAddress = aux_address + -- AuxiliaryAddresses = aux_address + } + } + end + if next(aux_address)~=nil then + create_body["IPAM"]["Config"]["AuxiliaryAddresses"] = aux_address + end + if driver == "macvlan" then + create_body["Options"] = { + macvlan_mode = data.macvlan_mode, + parent = data.parent + } + elseif driver == "ipvlan" then + create_body["Options"] = { + ipvlan_mode = data.ipvlan_mode + } + elseif driver == "overlay" then + create_body["Ingress"] = data.ingerss == 1 and true or false + end + + if ipv6 and data.subnet6 and data.subnet6 then + if type(create_body["IPAM"]["Config"]) ~= "table" then + create_body["IPAM"]["Config"] = {} + end + local index = #create_body["IPAM"]["Config"] + create_body["IPAM"]["Config"][index+1] = { + Subnet = data.subnet6, + Gateway = data.gateway6 + } + end + + if next(options) ~= nil then + create_body["Options"] = create_body["Options"] or {} + for k, v in pairs(options) do + create_body["Options"][k] = v + end + end + + docker:append_status("Network: " .. "create" .. " " .. create_body.Name .. "...") + local res = dk.networks:create(nil, nil, create_body) + if res and res.code == 201 then + docker:clear_status() + luci.http.redirect(luci.dispatcher.build_url("admin/docker/networks")) + else + docker:append_status("fail code:" .. res.code.." ".. (res.body.message and res.body.message or res.message).. "
") + luci.http.redirect(luci.dispatcher.build_url("admin/docker/newnetwork")) + end + end +end + +return m \ No newline at end of file diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/overview.lua b/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/overview.lua new file mode 100644 index 0000000000..b56fe7dfdf --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/overview.lua @@ -0,0 +1,95 @@ +--[[ +LuCI - Lua Configuration Interface +Copyright 2019 lisaac +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +$Id$ +]]-- + +require "luci.util" +local docker = require "luci.model.docker" +local uci = require "luci.model.uci" + +function byte_format(byte) + local suff = {"B", "KB", "MB", "GB", "TB"} + for i=1, 5 do + if byte > 1024 and i < 5 then + byte = byte / 1024 + else + return string.format("%.2f %s", byte, suff[i]) + end + end +end + +local m = Map("docker", translate("Docker")) +local docker_info_table = {} +-- docker_info_table['0OperatingSystem'] = {_key=translate("Operating System"),_value='-'} +-- docker_info_table['1Architecture'] = {_key=translate("Architecture"),_value='-'} +-- docker_info_table['2KernelVersion'] = {_key=translate("Kernel Version"),_value='-'} +docker_info_table['3ServerVersion'] = {_key=translate("Docker Version"),_value='-'} +docker_info_table['4ApiVersion'] = {_key=translate("Api Version"),_value='-'} +docker_info_table['5NCPU'] = {_key=translate("CPUs"),_value='-'} +docker_info_table['6MemTotal'] = {_key=translate("Total Memory"),_value='-'} +docker_info_table['7DockerRootDir'] = {_key=translate("Docker Root Dir"),_value='-'} +docker_info_table['8IndexServerAddress'] = {_key=translate("Index Server Address"),_value='-'} + +s = m:section(Table, docker_info_table) +s:option(DummyValue, "_key", translate("Info")) +s:option(DummyValue, "_value") + +s = m:section(SimpleSection) +s.containers_running = '-' +s.images_used = '-' +s.containers_total = '-' +s.images_total = '-' +s.networks_total = '-' +s.volumes_total = '-' +local socket = luci.model.uci.cursor():get("docker", "local", "socket_path") +if nixio.fs.access(socket) and (require "luci.model.docker").new():_ping().code == 200 then + local dk = docker.new() + -- local containers_list = dk.containers:list(nil, {all=true}).body + -- local images_list = dk.images:list().body + local volumes_list = dk.volumes:list().body.Volumes + local networks_list = dk.networks:list().body + local docker_info = dk:info() + -- docker_info_table['0OperatingSystem']._value = docker_info.body.OperatingSystem + -- docker_info_table['1Architecture']._value = docker_info.body.Architecture + -- docker_info_table['2KernelVersion']._value = docker_info.body.KernelVersion + docker_info_table['3ServerVersion']._value = docker_info.body.ServerVersion + docker_info_table['4ApiVersion']._value = docker_info.headers["Api-Version"] + docker_info_table['5NCPU']._value = tostring(docker_info.body.NCPU) + docker_info_table['6MemTotal']._value = tostring(byte_format(docker_info.body.MemTotal)) + docker_info_table['7DockerRootDir']._value = docker_info.body.DockerRootDir + docker_info_table['8IndexServerAddress']._value = docker_info.body.IndexServerAddress + + -- s.images_used = 0 + -- for i, v in ipairs(images_list) do + -- for ci,cv in ipairs(containers_list) do + -- if v.Id == cv.ImageID then + -- s.images_used = s.images_used + 1 + -- break + -- end + -- end + -- end + s.containers_running = tostring(docker_info.body.ContainersRunning) + -- s.images_used = tostring(s.images_used) + s.containers_total = tostring(docker_info.body.Containers) + s.images_total = tostring(docker_info.body.Images) + s.networks_total = tostring(#networks_list) + s.volumes_total = tostring(#volumes_list) +end +s.template = "docker/overview" + + +s = m:section(NamedSection, "local", "section", translate("Setting")) + +socket_path = s:option(Value, "socket_path", translate("Socket Path")) +status_path = s:option(Value, "status_path", translate("Action Status Tempfile Path"), translate("Where you want to save the docker status file")) +debug = s:option(Flag, "debug", translate("Enable Debug"), translate("For debug, It shows all docker API actions of luci-app-docker in Debug Tempfile Path")) +debug.enabled="true" +debug.disabled="false" +debug_path = s:option(Value, "debug_path", translate("Debug Tempfile Path"), translate("Where you want to save the debug tempfile")) + +return m diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/volumes.lua b/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/volumes.lua new file mode 100644 index 0000000000..f5e3281ade --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/volumes.lua @@ -0,0 +1,121 @@ +--[[ +LuCI - Lua Configuration Interface +Copyright 2019 lisaac +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +$Id$ +]]-- + +require "luci.util" +local uci = luci.model.uci.cursor() +local docker = require "luci.model.docker" +local dk = docker.new() + +local containers, volumes +local res = dk.volumes:list() +if res.code <300 then volumes = res.body.Volumes else return end +res = dk.containers:list(nil, {all=true}) +if res.code <300 then containers = res.body else return end + +function get_volumes() + local data = {} + for i, v in ipairs(volumes) do + -- local index = v.CreatedAt .. v.Name + local index = v.Name + data[index]={} + data[index]["_selected"] = 0 + data[index]["_nameraw"] = v.Name + data[index]["_name"] = v.Name:sub(1,12) + for ci,cv in ipairs(containers) do + if cv.Mounts and type(cv.Mounts) ~= "table" then break end + for vi, vv in ipairs(cv.Mounts) do + if v.Name == vv.Name then + data[index]["_containers"] = (data[index]["_containers"] and (data[index]["_containers"] .. " | ") or "").. + "".. cv.Names[1]:sub(2).."" + end + end + end + data[index]["_driver"] = v.Driver + data[index]["_mountpoint"] = nil + for v1 in v.Mountpoint:gmatch('[^/]+') do + if v1 == index then + data[index]["_mountpoint"] = data[index]["_mountpoint"] .."/" .. v1:sub(1,12) .. "..." + else + data[index]["_mountpoint"] = (data[index]["_mountpoint"] and data[index]["_mountpoint"] or "").."/".. v1 + end + end + data[index]["_created"] = v.CreatedAt + end + return data +end + +local volume_list = get_volumes() + +-- m = Map("docker", translate("Docker")) +m = SimpleForm("docker", translate("Docker")) +m.template = "docker/cbi/xsimpleform" +m.submit=false +m.reset=false + + +volume_table = m:section(Table, volume_list, translate("Volumes")) + +volume_selecter = volume_table:option(Flag, "_selected","") +volume_selecter.disabled = 0 +volume_selecter.enabled = 1 +volume_selecter.default = 0 + +volume_id = volume_table:option(DummyValue, "_name", translate("Name")) +volume_table:option(DummyValue, "_driver", translate("Driver")) +volume_table:option(DummyValue, "_containers", translate("Containers")).rawhtml = true +volume_table:option(DummyValue, "_mountpoint", translate("Mount Point")) +volume_table:option(DummyValue, "_created", translate("Created")) +volume_selecter.write = function(self, section, value) + volume_list[section]._selected = value +end + +docker_status = m:section(SimpleSection) +docker_status.template="docker/apply_widget" +docker_status.err=nixio.fs.readfile(dk.options.status_path) +if docker_status.err then docker:clear_status() end + +action = m:section(Table,{{}}) +action.notitle=true +action.rowcolors=false +action.template="cbi/nullsection" +btnremove = action:option(Button, "remove") +btnremove.inputtitle= translate("Remove") +btnremove.template="docker/cbi/inlinebutton" +btnremove.inputstyle = "remove" +btnremove.forcewrite = true +btnremove.write = function(self, section) + local volume_selected = {} + -- 遍历table中sectionid + local volume_table_sids = volume_table:cfgsections() + for _, volume_table_sid in ipairs(volume_table_sids) do + -- 得到选中项的名字 + if volume_list[volume_table_sid]._selected == 1 then + -- volume_selected[#volume_selected+1] = volume_id:cfgvalue(volume_table_sid) + volume_selected[#volume_selected+1] = volume_table_sid + end + end + if next(volume_selected) ~= nil then + local success = true + docker:clear_status() + for _,vol in ipairs(volume_selected) do + docker:append_status("Volumes: " .. "remove" .. " " .. vol .. "...") + local msg = dk.volumes["remove"](dk, vol) + if msg.code ~= 204 then + docker:append_status("fail code:" .. msg.code.." ".. (msg.body.message and msg.body.message or msg.message).. "
") + success = false + else + docker:append_status("done
") + end + end + if success then docker:clear_status() end + luci.http.redirect(luci.dispatcher.build_url("admin/docker/volumes")) + end +end +return m \ No newline at end of file diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/model/docker.lua b/package/ctcgfw/luci-app-dockerman/luasrc/model/docker.lua new file mode 100644 index 0000000000..e1e3a943db --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/model/docker.lua @@ -0,0 +1,234 @@ +--[[ +LuCI - Lua Configuration Interface +Copyright 2019 lisaac +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +$Id$ +]]-- + +require "luci.util" +local docker = require "luci.docker" +local uci = (require "luci.model.uci").cursor() + +local _docker = {} + +--pull image and return iamge id +local update_image = function(self, image_name) + local server = "index.docker.io" + + local json_stringify = luci.json and luci.json.encode or luci.jsonc.stringify + _docker:append_status("Images: " .. "pulling" .. " " .. image_name .. "...") + local x_auth = nixio.bin.b64encode(json_stringify({serveraddress= server})) + local res = self.images:create(nil, {fromImage=image_name, _header={["X-Registry-Auth"]=x_auth}}) + if res and res.code < 300 then + _docker:append_status("done
") + else + _docker:append_status("fail code:" .. res.code.." ".. (res.body.message and res.body.message or res.message).. "
") + end + new_image_id = self.images:inspect(image_name).body.Id + return new_image_id, res +end + +local table_equal = function(t1, t2) + if not t1 then return true end + if not t2 then return false end + if #t1 ~= #t2 then return false end + for i, v in ipairs(t1) do + if t1[i] ~= t2[i] then return false end + end + return true +end + +local table_subtract = function(t1, t2) + if not t1 or next(t1) == nil then return nil end + if not t2 or next(t2) == nil then return t1 end + local res = {} + for _, v1 in ipairs(t1) do + local found = false + for _, v2 in ipairs(t2) do + if v1 == v2 then + found= true + break + end + end + if not found then + table.insert(res, v1) + end + end + return next(res) == nil and nil or res +end + +local map_subtract = function(t1, t2) + if not t1 or next(t1) == nil then return nil end + if not t2 or next(t2) == nil then return t1 end + local res = {} + for k1, v1 in pairs(t1) do + local found = false + for k2, v2 in ipairs(t2) do + if k1 == k2 and luci.util.serialize_data(v1) == luci.util.serialize_data(v2) then + found= true + break + end + end + if not found then + if v1 and type(v1) == "table" then + if next(v1) == nil then + res[k1] = { k = 'v' } + else + res[k1] = v1 + end + end + end + end + + return next(res) ~= nil and res or nil +end + +-- return create_body, extra_network +local get_config = function(old_config, old_host_config, old_network_setting, image_config) + local config = old_config + if config.WorkingDir == image_config.WorkingDir then config.WorkingDir = "" end + if config.User == image_config.User then config.User = "" end + if table_equal(config.Cmd, image_config.Cmd) then config.Cmd = nil end + if table_equal(config.Entrypoint, image_config.Entrypoint) then config.Entrypoint = nil end + if table_equal(config.ExposedPorts, image_config.ExposedPorts) then config.ExposedPorts = nil end + config.Env = table_subtract(config.Env, image_config.Env) + config.Labels = table_subtract(config.Labels, image_config.Labels) + config.Volumes = map_subtract(config.Volumes, image_config.Volumes) + -- subtract ports exposed in image from container + if old_host_config.PortBindings and next(old_host_config.PortBindings) ~= nil then + config.ExposedPorts = {} + for p, v in pairs(old_host_config.PortBindings) do + config.ExposedPorts[p] = { HostPort=v[1] and v[1].HostPort } + end + end + + -- handle network config, we need only one network, extras need to network connect action + local network_setting = {} + local multi_network = false + local extra_network = {} + for k, v in pairs(old_network_setting) do + if multi_network then + extra_network[k] = v + else + network_setting[k] = v + end + multi_network = true + end + + -- handle hostconfig + local host_config = old_host_config + if host_config.PortBindings and next(host_config.PortBindings) == nil then host_config.PortBindings = nil end + host_config.LogConfig = nil + + -- merge configs + local create_body = config + create_body["HostConfig"] = host_config + create_body["NetworkingConfig"] = {EndpointsConfig = network_setting} + + return create_body, extra_network +end + +local upgrade = function(self, container_id) + _docker:clear_status() + -- get image name, image id, container name, configuration information + local container_info = self.containers:inspect(container_id) + if container_info.code > 300 and type(container_info.body) == "table" then + return container_info + end + local image_name = container_info.body.Config.Image + if not image_name:match(".-:.+") then image_name = image_name .. ":latest" end + local old_image_id = container_info.body.Image + local container_name = container_info.body.Name:sub(2) + local old_config = container_info.body.Config + local old_host_config = container_info.body.HostConfig + local old_network_setting = container_info.body.NetworkSettings.Networks or {} + + local image_id, res = update_image(self, image_name) + if res and res.code > 300 then return res end + if image_id == old_image_id then + return {code = 305, body = {message = "Already up to date"}} + end + + _docker:append_status("Container: " .. "Stop" .. " " .. container_name .. "...") + res = self.containers:stop(container_name) + if res and res.code < 305 then + _docker:append_status("done
") + else + return res + end + + _docker:append_status("Container: rename" .. " " .. container_name .. " to ".. container_name .. "_old ...") + res = self.containers:rename(container_name,{ name = container_name .. "_old" }) + if res and res.code < 300 then + _docker:append_status("done
") + else + return res + end + + -- handle config + local image_config = self.images:inspect(old_image_id).body.Config + local create_body, extra_network = get_config(old_config, old_host_config, old_network_setting, image_config) + + -- create new container + _docker:append_status("Container: Create" .. " " .. container_name .. "...") + res = self.containers:create(container_name, nil, create_body) + if res and res.code > 300 then return res end + _docker:append_status("done
") + + -- extra networks need to network connect action + for k, v in pairs(extra_network) do + if v.IPAMConfig and next(v.IPAMConfig) == nil then v.IPAMConfig =nil end + if v.DriverOpts and next(v.DriverOpts) == nil then v.DriverOpts =nil end + if v.Aliases and next(v.Aliases) == nil then v.Aliases =nil end + + _docker:append_status("Networks: Connect" .. " " .. container_name .. "...") + res = self.networks:connect(k, nil, {Container = container_name, EndpointConfig = v}) + if res.code > 300 then return res end + + _docker:append_status("done
") + end + _docker:clear_status() + return res +end + +local duplicate_config = function (self, container_id) + local container_info = self.containers:inspect(container_id) + if container_info.code > 300 and type(container_info.body) == "table" then return nil end + local old_image_id = container_info.body.Image + local old_config = container_info.body.Config + local old_host_config = container_info.body.HostConfig + local old_network_setting = container_info.body.NetworkSettings.Networks or {} + local image_config = self.images:inspect(old_image_id).body.Config + return get_config(old_config, old_host_config, old_network_setting, image_config) +end + +_docker.new = function(option) + local option = option or {} + options = { + socket_path = option.socket_path or uci:get("docker", "local", "socket_path"), + debug = option.debug or uci:get("docker", "local", "debug") == 'true' and true or false, + debug_path = option.debug_path or uci:get("docker", "local", "debug_path") + } + local _new = docker.new(options) + _new.options.status_path = uci:get("docker", "local", "status_path") + _new.containers_upgrade = upgrade + _new.containers_duplicate_config = duplicate_config + return _new +end +_docker.options={} +_docker.options.status_path = uci:get("docker", "local", "status_path") + +_docker.append_status=function(self,val) + local file_docker_action_status=io.open(self.options.status_path, "a+") + file_docker_action_status:write(val) + file_docker_action_status:close() +end + +_docker.clear_status=function(self) + nixio.fs.remove(self.options.status_path) +end + +return _docker diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/apply_widget.htm b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/apply_widget.htm new file mode 100644 index 0000000000..d43cbb2e3b --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/apply_widget.htm @@ -0,0 +1,144 @@ + + \ No newline at end of file diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/dummyvalue.htm b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/dummyvalue.htm new file mode 100644 index 0000000000..b82589e07d --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/dummyvalue.htm @@ -0,0 +1,13 @@ +<%+cbi/valueheader%> +<% if self.href then %><% end -%> + <% + local val = self:cfgvalue(section) or self.default or "" + if not self.rawhtml then + write(pcdata(val)) + else + write(val) + end + %> +<%- if self.href then %><%end%> +" /> +<%+cbi/valuefooter%> \ No newline at end of file diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/inlinebutton.htm b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/inlinebutton.htm new file mode 100644 index 0000000000..b1b1932571 --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/inlinebutton.htm @@ -0,0 +1,7 @@ +
+ <% if self:cfgvalue(section) ~= false then %> + " type="submit"" <% if self.disable then %>disabled <% end %><%= attr("name", cbid) .. attr("id", cbid) .. attr("value", self.inputtitle or self.title)%> /> + <% else %> + - + <% end %> +
diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/inlinevalue.htm b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/inlinevalue.htm new file mode 100644 index 0000000000..cfbf44a217 --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/inlinevalue.htm @@ -0,0 +1,33 @@ +
+ <%- if self.title then -%> + + <%- end -%> + <%- if self.password then -%> + /> + <%- end -%> + 0, "data-choices", { self.keylist, self.vallist }) + %> /> + <%- if self.password then -%> +
+ <% end %> +
diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/xdynlist.htm b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/xdynlist.htm new file mode 100644 index 0000000000..549c4ce319 --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/xdynlist.htm @@ -0,0 +1,27 @@ +<%+cbi/valueheader%> +> +<% + local vals = self:cfgvalue(section) or self.default or {} + for i=1, #vals + 1 do + local val = vals[i] + if (val and #val > 0) or (i == 1) then +%> + />
+<% end end %> + +<%+cbi/valuefooter%> diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/xfvalue.htm b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/xfvalue.htm new file mode 100644 index 0000000000..04f7bc2ee8 --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/xfvalue.htm @@ -0,0 +1,10 @@ +<%+cbi/valueheader%> + /> + disabled <% end %><%= + attr("id", cbid) .. attr("name", cbid) .. attr("value", self.enabled or 1) .. + ifattr((self:cfgvalue(section) or self.default) == self.enabled, "checked", "checked") + %> /> + > +<%+cbi/valuefooter%> diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/xsimpleform.htm b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/xsimpleform.htm new file mode 100644 index 0000000000..7cfe8bf218 --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/xsimpleform.htm @@ -0,0 +1,89 @@ +<% + if not self.embedded then + %>
> + + + <% + end + + %>
<% + + if self.title and #self.title > 0 then + %>

<%=self.title%>

<% + end + + if self.description and #self.description > 0 then + %>
<%=self.description%>
<% + end + + self:render_children() + + %>
<% + + if self.message then + %>
<%=self.message%>
<% + end + + if self.errmessage then + %>
<%=self.errmessage%>
<% + end + + if not self.embedded then + if type(self.hidden) == "table" then + local k, v + for k, v in pairs(self.hidden) do + %><% + end + end + + local display_back = (self.redirect) + local display_cancel = (self.cancel ~= false and self.on_cancel) + local display_skip = (self.flow and self.flow.skip) + local display_submit = (self.submit ~= false) + local display_reset = (self.reset ~= false) + + if display_back or display_cancel or display_skip or display_submit or display_reset then + %>
<% + + if display_back then + %> <% + end + + if display_cancel then + local label = pcdata(self.cancel or translate("Cancel")) + %> <% + end + + if display_skip then + %> <% + end + + if display_submit then + local label = pcdata(self.submit or translate("Submit")) + %> <% + end + + if display_reset then + local label = pcdata(self.reset or translate("Reset")) + %> <% + end + + %>
<% + end + + %>
<% + end +%> + + diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/container.htm b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/container.htm new file mode 100644 index 0000000000..51c7f0acf4 --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/container.htm @@ -0,0 +1,24 @@ +
+ + + \ No newline at end of file diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/logs.htm b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/logs.htm new file mode 100644 index 0000000000..6147e95290 --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/logs.htm @@ -0,0 +1,24 @@ +<%# +LuCI - Lua Configuration Interface +Copyright 2008 Steven Barth +Copyright 2008 Jo-Philipp Wich + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +$Id$ + +-%> +<% if self.title == translate("Docker Events") then %> +<%+header%> +<% end %> +

<%=self.title%>

+
+ +
+<% if self.title == translate("Docker Events") then %> +<%+footer%> +<% end %> \ No newline at end of file diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/overview.htm b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/overview.htm new file mode 100644 index 0000000000..8684ca4218 --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/overview.htm @@ -0,0 +1,287 @@ + + +
+
+
+
+
+ + Docker icon + + +
+
+
+

<%:Containers%>

+

+ <%- if self.containers_total ~= "-" then -%><%- end -%> + <%=self.containers_running%> + /<%=self.containers_total%> + <%- if self.containers_total ~= "-" then -%><%- end -%> +

+
+
+
+
+
+
+
+ + + + + +
+
+
+

<%:Images%>

+

+ <%- if self.images_total ~= "-" then -%><%- end -%> + <%=self.images_total%> + + <%- if self.images_total ~= "-" then -%><%- end -%> +

+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + +
+
+
+

<%:Networks%>

+

+ <%- if self.networks_total ~= "-" then -%><%- end -%> + <%=self.networks_total%> + + <%- if self.networks_total ~= "-" then -%><%- end -%> +

+
+
+
+
+
+
+
+ + + +
+
+
+

<%:Volumes%>

+

+ <%- if self.volumes_total ~= "-" then -%><%- end -%> + <%=self.volumes_total%> + + <%- if self.volumes_total ~= "-" then -%><%- end -%> +

+
+
+
+
\ No newline at end of file diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/resolv_container.htm b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/resolv_container.htm new file mode 100644 index 0000000000..c8db55874c --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/resolv_container.htm @@ -0,0 +1,23 @@ +<%+cbi/valueheader%> + + + +<%+cbi/valuefooter%> \ No newline at end of file diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/stats.htm b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/stats.htm new file mode 100644 index 0000000000..5320db9dbf --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/stats.htm @@ -0,0 +1,60 @@ + \ No newline at end of file diff --git a/package/ctcgfw/luci-app-dockerman/po/zh-cn/dockerman.po b/package/ctcgfw/luci-app-dockerman/po/zh-cn/dockerman.po new file mode 100644 index 0000000000..a2bcb293aa --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/po/zh-cn/dockerman.po @@ -0,0 +1,299 @@ +msgid "Containers" +msgstr "容器" + +msgid "Images" +msgstr "镜像" + +msgid "Networks" +msgstr "网络" + +msgid "Volumes" +msgstr "存储卷" + +msgid "Events" +msgstr "事件" + +msgid "Docker Contaienr" +msgstr "Docker 容器" + +msgid "Start" +msgstr "启动" + +msgid "Restart" +msgstr "重启" + +msgid "Stop" +msgstr "停止" + +msgid "Upgrade" +msgstr "升级容器" + +msgid "Duplicate" +msgstr "复制容器" + +msgid "Remove" +msgstr "移除" + +msgid "Name" +msgstr "名称" + +msgid "Image" +msgstr "镜像" + +msgid "Status" +msgstr "状态" + +msgid "Created" +msgstr "创建时间" + +msgid "Start Time" +msgstr "启动时间" + +msgid "Healthy" +msgstr "健康" + +msgid "Restart Policy" +msgstr "重启策略" + +msgid "Update" +msgstr "更新" + +msgid "Device" +msgstr "设备" + +msgid "Mount/Volume" +msgstr "挂载/存储卷" + +msgid "Command" +msgstr "启动命令" + +msgid "Setting" +msgstr "设置" + +msgid "Driver" +msgstr "驱动" + +msgid "Env" +msgstr "环境变量" + +msgid "Ports" +msgstr "端口" + +msgid "Links" +msgstr "链接" + +msgid "Disconnect" +msgstr "断开" + +msgid "Connect Network" +msgstr "连接网络" + +msgid "Connect" +msgstr "连接" + +msgid "Info" +msgstr "信息" + +msgid "CPUs" +msgstr "CPU数量" + +msgid "Number of CPUs. Number is a fractional number. 0.000 means no limit." +msgstr "CPU数量,数字是小数,0.000表示没有限制。" + +msgid "CPU Shares Weight" +msgstr "CPU份额权重" + +msgid "" +"CPU shares relative weight, if 0 is set, the system will ignore the value and use the default of 1024." +msgstr "" +"CPU份额相对权重,如果设置为0,则系统将忽略该值,并使用默认值1024。" + +msgid "Memory" +msgstr "内存" + +msgid "" +"Memory limit (format: []). Number is a positive integer. Unit can be one of b, k, m, or g. Minimum is 4M." +msgstr "" +"内存限制 (格式: <容量>[<单位>]). 数字是一个正整数。单位可以是b,k,m或g之一。最小为4M。" + +msgid "Block IO Weight" +msgstr "IO 权重" + +msgid "" +"Block IO weight (relative weight) accepts a weight value between 10 and 1000." +msgstr "" +"IO 权重(相对权重)接受10到1000之间的权重值。" + +msgid "Container Logs" +msgstr "容器日志" + +msgid "RepoTags" +msgstr "标签" + +msgid "Size" +msgstr "大小" + +msgid "Force Remove" +msgstr "强制移除" + +msgid "Subnet" +msgstr "子网络" + +msgid "Gateway" +msgstr "网关" + +msgid "New" +msgstr "新建" + +msgid "Resolv CLI" +msgstr "解析命令行" + +msgid "Docker Image" +msgstr "Docker 镜像" + +msgid "User" +msgstr "用户" + +msgid "New Container" +msgstr "新容器" + +msgid "Container Name" +msgstr "容器名称" + +msgid "Interactive (-i)" +msgstr "互动式 (-i)" + +msgid "Always pull image first" +msgstr "始终先拉取镜像" + +msgid "Privileged" +msgstr "特权模式(Privileged)" + +msgid "IPv4 Address" +msgstr "IPv4 地址" + +msgid "Links with other containers" +msgstr "与其他容器的链接(Links)" + +msgid "Environmental Variable" +msgstr "环境变量(Env)" + +msgid "Bind Mount" +msgstr "挂载(-v)" + +msgid "Exposed Ports" +msgstr "暴露端口" + +msgid "Run command" +msgstr "运行命令" + +msgid "Advance" +msgstr "高级" + +msgid "Mount tmpfs filesystems" +msgstr "挂载tmpfs文件系统" + +msgid "New Network" +msgstr "新网络" + +msgid "Network Name" +msgstr "网络名称" + +msgid "Parent Interface" +msgstr "父接口" + +msgid "Macvlan Mode" +msgstr "Macvlan模式" + +msgid "Ipvlan Mode" +msgstr "Ipvlan模式" + +msgid "Ingress network is the network which provides the routing-mesh in swarm mode." +msgstr "Ingress网络是在群集模式下提供路由网的网络。" + +msgid "Options" +msgstr "选项" + +msgid "Restrict external access to the network" +msgstr "限制外部访问网络" + +msgid "IP range" +msgstr "IP范围" + +msgid "Exclude IPs" +msgstr "排除IP" + +msgid "Enable IPv6" +msgstr "启用IPv6" + +msgid "IPv6 Subnet" +msgstr "IPv6子网" + +msgid "IPv6 Gateway" +msgstr "IPv6网关" + +msgid "Docker Version" +msgstr "Docker版本" + +msgid "Api Version" +msgstr "API版本" + +msgid "Total Memory" +msgstr "总内存" + +msgid "Docker Root Dir" +msgstr "Docker根目录" + +msgid "Index Server Address" +msgstr "默认服务器地址" + +msgid "Socket Path" +msgstr "Socket路径" + +msgid "Action Status Tempfile Path" +msgstr "docker 动作状态的临时文件路径" + +msgid "Where you want to save the docker status file" +msgstr "保存docker status文件的位置" + +msgid "Enable Debug" +msgstr "启用调试" + +msgid "For debug, It shows all docker API actions of luci-app-docker in Debug Tempfile Path" +msgstr "用于调试,它在调试临时文件路径中显示luci-app-docker的所有docker API操作" + +msgid "Debug Tempfile Path" +msgstr "调试临时文件路径" + +msgid "Where you want to save the debug tempfile" +msgstr "保存调试临时文件的位置" + +msgid "Edit" +msgstr "编辑" + +msgid "Stats" +msgstr "状态" + +msgid "Logs" +msgstr "日志" + +msgid "Network TX/RX" +msgstr "网络发送/接收" + +msgid "CPU Useage" +msgstr "CPU用量" + +msgid "Memory Useage" +msgstr "内存用量" + +msgid "Docker Container" +msgstr "Docker 容器" + +msgid "Overview" +msgstr "概况" + +msgid "Pull Image" +msgstr "拉取镜像" + +msgid "Pull" +msgstr "拉取" \ No newline at end of file diff --git a/package/ctcgfw/luci-app-dockerman/root/etc/config/docker b/package/ctcgfw/luci-app-dockerman/root/etc/config/docker new file mode 100644 index 0000000000..fe78698788 --- /dev/null +++ b/package/ctcgfw/luci-app-dockerman/root/etc/config/docker @@ -0,0 +1,5 @@ +config section 'local' + option socket_path '/var/run/docker.sock' + option status_path '/tmp/.docker_action_status' + option debug_path '/tmp/.docker_debug' + option debug 'false' \ No newline at end of file diff --git a/package/ctcgfw/luci-app-filebrowser/Makefile b/package/ctcgfw/luci-app-filebrowser/Makefile new file mode 100644 index 0000000000..a34075954a --- /dev/null +++ b/package/ctcgfw/luci-app-filebrowser/Makefile @@ -0,0 +1,21 @@ +# Copyright (C) 2016 Openwrt.org +# +# This is free software, licensed under the Apache License, Version 2.0 . +# + +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=LuCI Support for FileBrowser +LUCI_DEPENDS:=+filebrowser +LUCI_PKGARCH:=all + +PKG_NAME:=luci-app-filebrowser +PKG_VERSION:=snapshot +PKG_RELEASE:=118071b + +PKG_LICENSE:=GPLv3 +PKG_MAINTAINER:=[CTCGFW] Project OpenWRT + +include $(TOPDIR)/feeds/luci/luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/package/ctcgfw/luci-app-filebrowser/luasrc/controller/filebrowser.lua b/package/ctcgfw/luci-app-filebrowser/luasrc/controller/filebrowser.lua new file mode 100644 index 0000000000..12b2396fbd --- /dev/null +++ b/package/ctcgfw/luci-app-filebrowser/luasrc/controller/filebrowser.lua @@ -0,0 +1,10 @@ +module("luci.controller.filebrowser", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/filebrowser") then + return + end + local page + page = entry({"admin", "services", "filebrowser"}, cbi("filebrowser"), _("文件管理器"), 100) + page.dependent = true +end diff --git a/package/ctcgfw/luci-app-filebrowser/luasrc/model/cbi/filebrowser.lua b/package/ctcgfw/luci-app-filebrowser/luasrc/model/cbi/filebrowser.lua new file mode 100644 index 0000000000..bcfa0405ea --- /dev/null +++ b/package/ctcgfw/luci-app-filebrowser/luasrc/model/cbi/filebrowser.lua @@ -0,0 +1,65 @@ +require("luci.sys") +require("luci.util") +require("luci.model.ipkg") +local fs = require "nixio.fs" + +local uci = require "luci.model.uci".cursor() + +local m, s + +local running=(luci.sys.call("pidof filebrowser > /dev/null") == 0) + +local button = "" +local state_msg = "" +local trport = uci:get("filebrowser", "config", "port") +if running then + button = "      " +end + +if running then + state_msg = "" .. translate("FileBrowser运行中") .. "" +else + state_msg = "" .. translate("FileBrowser未运行") .. "" +end + +m = Map("filebrowser", translate("文件管理器"), translate("FileBrowser是一个基于Go的在线文件管理器,助您方便的管理设备上的文件。") .. button + .. "

" .. translate("FileBrowser运行状态").. " : " .. state_msg .. "
") + +s = m:section(TypedSection, "filebrowser", "") +s.addremove = false +s.anonymous = true + +enable = s:option(Flag, "enabled", translate("启用")) +enable.rmempty = false + +o = s:option(ListValue, "addr_type", translate("监听地址")) +o:value("local", translate("监听本机地址")) +o:value("lan", translate("监听局域网地址")) +o:value("wan", translate("监听全部地址")) +o.default = "lan" +o.rmempty = false + +o = s:option(Value, "port", translate("监听端口")) +o.placeholder = 8989 +o.default = 8989 +o.datatype = "port" +o.rmempty = false + +o = s:option(Value, "root_dir", translate("开放目录")) +o.placeholder = "/" +o.default = "/" +o.rmempty = false + +o = s:option(Value, "db_dir", translate("数据库目录")) +o.placeholder = "/etc" +o.default = "/etc" +o.rmempty = false +o.description = translate("普通用户请勿随意更改") + +o = s:option(Value, "db_name", translate("数据库名")) +o.placeholder = "filebrowser.db" +o.default = "filebrowser.db" +o.rmempty = false +o.description = translate("普通用户请勿随意更改") + +return m diff --git a/package/ctcgfw/luci-app-filebrowser/root/etc/config/filebrowser b/package/ctcgfw/luci-app-filebrowser/root/etc/config/filebrowser new file mode 100644 index 0000000000..3db6585e48 --- /dev/null +++ b/package/ctcgfw/luci-app-filebrowser/root/etc/config/filebrowser @@ -0,0 +1,10 @@ + +config filebrowser 'config' + option addr_type 'lan' + option db_dir '/etc' + option db_name 'filebrowser.db' + option enabled '0' + option port '8989' + option root_dir '/' + option username 'admin' + option password 'admin' diff --git a/package/ctcgfw/luci-app-filebrowser/root/etc/init.d/filebrowser b/package/ctcgfw/luci-app-filebrowser/root/etc/init.d/filebrowser new file mode 100755 index 0000000000..158588be48 --- /dev/null +++ b/package/ctcgfw/luci-app-filebrowser/root/etc/init.d/filebrowser @@ -0,0 +1,33 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2019 [CTCGFW] Project OpenWRT + +START=90 +STOP=10 + +addr_type="$(uci get filebrowser.config.addr_type)" +db_dir="$(uci get filebrowser.config.db_dir)" +[ "${db_dir}" == "/" ] || db_dir="${db_dir%*/}" +db_name="$(uci get filebrowser.config.db_name| sed 's#/##g')" +enabled="$(uci get filebrowser.config.enabled)" +port="$(uci get filebrowser.config.port)" +root_dir="$(uci get filebrowser.config.root_dir)" + +if [ "${addr_type}" == "local" ];then + addr="127.0.0.1" +elif [ "${addr_type}" == "lan" ];then + addr="$(uci get network.lan.ipaddr)" +elif [ "${addr_type}" == "wan" ];then + addr="0.0.0.0" +fi + +start() { + stop + [ "$enabled" == "1" ] || exit 0 + mkdir -p "${root_dir}" + mkdir -p "${db_dir}" + filebrowser -a "${addr}" -d "${db_dir}/${db_name}" -p "${port}" -r "${root_dir}" >/dev/null 2>&1 & +} + +stop() { + killall -9 filebrowser >/dev/null 2>&1 +} diff --git a/package/ctcgfw/luci-app-filebrowser/root/etc/uci-defaults/luci-filebrowser b/package/ctcgfw/luci-app-filebrowser/root/etc/uci-defaults/luci-filebrowser new file mode 100755 index 0000000000..8fece8810e --- /dev/null +++ b/package/ctcgfw/luci-app-filebrowser/root/etc/uci-defaults/luci-filebrowser @@ -0,0 +1,11 @@ +#!/bin/sh + +uci -q batch <<-EOF >/dev/null + delete ucitrack.@filebrowser[-1] + add ucitrack filebrowser + set ucitrack.@filebrowser[-1].init=filebrowser + commit ucitrack +EOF + +rm -f /tmp/luci-indexcache +exit 0 \ No newline at end of file diff --git a/package/ctcgfw/luci-app-iptvhelper/Makefile b/package/ctcgfw/luci-app-iptvhelper/Makefile new file mode 100644 index 0000000000..17ccaf2a55 --- /dev/null +++ b/package/ctcgfw/luci-app-iptvhelper/Makefile @@ -0,0 +1,19 @@ +# Copyright 2019 Shun Li +# Licensed to the public under the GNU General Public License v3. + +include $(TOPDIR)/rules.mk + +PKG_NAME:=luci-app-iptvhelper +PKG_VERSION:=0.1.1 +PKG_RELEASE:=1 + +PKG_MAINTAINER:=Shun Li +PKG_LICENSE:=GPL-3.0 + +LUCI_TITLE:=LuCI support for iptvhelper +LUCI_DEPENDS:=+luci-compat +iptvhelper +LUCI_PKGARCH:=all + +include $(TOPDIR)/feeds/luci/luci.mk + +# call BuildPackage - OpenWrt buildroot signature \ No newline at end of file diff --git a/package/ctcgfw/luci-app-iptvhelper/luasrc/controller/iptvhelper.lua b/package/ctcgfw/luci-app-iptvhelper/luasrc/controller/iptvhelper.lua new file mode 100644 index 0000000000..8290207e41 --- /dev/null +++ b/package/ctcgfw/luci-app-iptvhelper/luasrc/controller/iptvhelper.lua @@ -0,0 +1,14 @@ +-- Copyright 2019 Shun Li +-- Licensed to the public under the GNU General Public License v3. + +module("luci.controller.iptvhelper", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/iptvhelper") then + return + end + + local page = entry({"admin", "services", "iptvhelper"}, cbi("iptvhelper"), _("IPTV Helper")) + page.dependent = true + +end \ No newline at end of file diff --git a/package/ctcgfw/luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua b/package/ctcgfw/luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua new file mode 100644 index 0000000000..e4a106b05a --- /dev/null +++ b/package/ctcgfw/luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua @@ -0,0 +1,34 @@ +-- Copyright 2019 Shun Li +-- Licensed to the public under the GNU General Public License v3. + +local sys = require "luci.sys" + +m = Map("iptvhelper", translate("IPTV Helper"), translate("Help you configure IPTV easily. Github")) + +s = m:section(TypedSection, "tvbox", translate("IPTV topbox parameters")) +s.addremove = true +s.anonymous = false + +enable=s:option(Flag, "disabled", translate("Enabled")) +enable.enabled = "0" +enable.disabled = "1" +enable.default = "1" +enable.rmempty = false +respawn=s:option(Flag, "respawn", translate("Respawn")) +respawn.default = false +ipset=s:option(Flag, "ipset", translate("Create ipset"), + translate("You can use it in mwan3.")) +ipset.default = true +dns_redir=s:option(Flag, "dns_redir", translate("Redirect topbox's DNS"), + translate("You may need it to jailbreak your topbox.")) +dns_redir.default = false + +host = s:option(Value, "mac", translate("Topbox MAC Address"), + translate("It is usually on the bottom side of topbox.")) +host.rmempty = false +host.datatype = "macaddr" +sys.net.mac_hints(function(mac, name) + host:value(mac, "%s (%s)" %{ mac, name }) +end) + +return m \ No newline at end of file diff --git a/package/ctcgfw/luci-app-iptvhelper/po/templates/iptvhelper.pot b/package/ctcgfw/luci-app-iptvhelper/po/templates/iptvhelper.pot new file mode 100644 index 0000000000..808b51ba8b --- /dev/null +++ b/package/ctcgfw/luci-app-iptvhelper/po/templates/iptvhelper.pot @@ -0,0 +1,49 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:19 +msgid "Create ipset" +msgstr "" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:12 +msgid "Enabled" +msgstr "" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:6 +msgid "" +"Help you configure IPTV easily. Github" +msgstr "" + +#: luci-app-iptvhelper/luasrc/controller/iptvhelper.lua:11 +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:6 +msgid "IPTV Helper" +msgstr "" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:8 +msgid "IPTV topbox parameters" +msgstr "" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:27 +msgid "It is usually on the bottom side of topbox." +msgstr "" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:22 +msgid "Redirect topbox's DNS" +msgstr "" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:17 +msgid "Respawn" +msgstr "" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:26 +msgid "Topbox MAC Address" +msgstr "" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:20 +msgid "You can use it in mwan3." +msgstr "" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:23 +msgid "You may need it to jailbreak your topbox." +msgstr "" diff --git a/package/ctcgfw/luci-app-iptvhelper/po/zh-cn/iptvhelper.po b/package/ctcgfw/luci-app-iptvhelper/po/zh-cn/iptvhelper.po new file mode 100644 index 0000000000..04f74b8fe4 --- /dev/null +++ b/package/ctcgfw/luci-app-iptvhelper/po/zh-cn/iptvhelper.po @@ -0,0 +1,50 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8\n" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:19 +msgid "Create ipset" +msgstr "创建 ipset" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:12 +msgid "Enabled" +msgstr "启用" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:6 +msgid "" +"Help you configure IPTV easily. Github" +msgstr "帮助你轻松配置IPTV。Github" + +#: luci-app-iptvhelper/luasrc/controller/iptvhelper.lua:11 +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:6 +msgid "IPTV Helper" +msgstr "IPTV 帮手" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:8 +msgid "IPTV topbox parameters" +msgstr "IPTV 机顶盒参数" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:27 +msgid "It is usually on the bottom side of topbox." +msgstr "它通常贴在机顶盒的底部" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:22 +msgid "Redirect topbox's DNS" +msgstr "重定向机顶盒的DNS" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:17 +msgid "Respawn" +msgstr "进程守护" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:26 +msgid "Topbox MAC Address" +msgstr "机顶盒MAC地址" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:20 +msgid "You can use it in mwan3." +msgstr "你可以在mwan3中使用它" + +#: luci-app-iptvhelper/luasrc/model/cbi/iptvhelper.lua:23 +msgid "You may need it to jailbreak your topbox." +msgstr "想要破解机顶盒可能会用到它" diff --git a/package/ctcgfw/luci-app-iptvhelper/root/etc/uci-defaults/40_iptvhelper b/package/ctcgfw/luci-app-iptvhelper/root/etc/uci-defaults/40_iptvhelper new file mode 100755 index 0000000000..8ee6587be0 --- /dev/null +++ b/package/ctcgfw/luci-app-iptvhelper/root/etc/uci-defaults/40_iptvhelper @@ -0,0 +1,12 @@ +#!/bin/sh + +# needed for "Save and Apply" to restart iptvhelper +uci -q batch <<-EOF >/dev/null + delete ucitrack.@iptvhelper[-1] + add ucitrack iptvhelper + set ucitrack.@iptvhelper[-1].init="iptvhelper" + commit ucitrack +EOF + +rm -f /tmp/luci-indexcache +exit 0 \ No newline at end of file diff --git a/package/ctcgfw/luci-app-k3screenctrl/Makefile b/package/ctcgfw/luci-app-k3screenctrl/Makefile new file mode 100644 index 0000000000..7666b5b568 --- /dev/null +++ b/package/ctcgfw/luci-app-k3screenctrl/Makefile @@ -0,0 +1,49 @@ +# Copyright (C) 2018 XiaoShan mivm.cn + +include $(TOPDIR)/rules.mk + +PKG_NAME:=luci-app-k3screenctrl +PKG_VERSION:=1.1.0 +PKG_RELEASE:=1 + +PKG_LICENSE:=GPLv3 +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Hill + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) + +include $(INCLUDE_DIR)/package.mk + +define Build/Configure +endef + +define Build/Compile +endef + +define Package/$(PKG_NAME) + SECTION:=luci + CATEGORY:=LuCI + SUBMENU:=3. Applications + TITLE:=LuCI Support for k3screenctrl + DEPENDS:=@PACKAGE_phicomm-k3screenctrl +phicomm-k3screenctrl +@BUSYBOX_CONFIG_ARPING +endef + +define Package/$(PKG_NAME)/description + LuCI Support for k3screenctrl. +endef + +define Build/Prepare + $(foreach po,$(wildcard ${CURDIR}/files/luci/i18n/*.po), \ + po2lmo $(po) $(PKG_BUILD_DIR)/$(patsubst %.po,%.lmo,$(notdir $(po)));) +endef + +define Package/$(PKG_NAME)/install + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller + $(INSTALL_DATA) ./files/luci/controller/k3screenctrl.lua $(1)/usr/lib/lua/luci/controller/ + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/i18n + $(INSTALL_DATA) $(PKG_BUILD_DIR)/k3screenctrl.*.lmo $(1)/usr/lib/lua/luci/i18n/ + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi + $(INSTALL_DATA) ./files/luci/model/cbi/k3screenctrl.lua $(1)/usr/lib/lua/luci/model/cbi/ +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/package/ctcgfw/luci-app-k3screenctrl/files/luci/controller/k3screenctrl.lua b/package/ctcgfw/luci-app-k3screenctrl/files/luci/controller/k3screenctrl.lua new file mode 100644 index 0000000000..e241c60cb7 --- /dev/null +++ b/package/ctcgfw/luci-app-k3screenctrl/files/luci/controller/k3screenctrl.lua @@ -0,0 +1,10 @@ +-- Copyright (C) 2018 XiaoShan mivm.cn + +module("luci.controller.k3screenctrl", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/k3screenctrl") then + return + end + entry({"admin","system","k3screenctrl"}, cbi("k3screenctrl"), _("Screen"),60) +end diff --git a/package/ctcgfw/luci-app-k3screenctrl/files/luci/i18n/k3screenctrl.zh-cn.lmo b/package/ctcgfw/luci-app-k3screenctrl/files/luci/i18n/k3screenctrl.zh-cn.lmo new file mode 100644 index 0000000000..4ee5539d5e Binary files /dev/null and b/package/ctcgfw/luci-app-k3screenctrl/files/luci/i18n/k3screenctrl.zh-cn.lmo differ diff --git a/package/ctcgfw/luci-app-k3screenctrl/files/luci/i18n/k3screenctrl.zh-cn.po b/package/ctcgfw/luci-app-k3screenctrl/files/luci/i18n/k3screenctrl.zh-cn.po new file mode 100644 index 0000000000..ac97e0f195 --- /dev/null +++ b/package/ctcgfw/luci-app-k3screenctrl/files/luci/i18n/k3screenctrl.zh-cn.po @@ -0,0 +1,155 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8\n" + +msgid "Screen" +msgstr "屏幕" + +msgid "Customize your device screen" +msgstr "自定义你的设备屏幕" + +msgid "General Setting" +msgstr "基本设置" + +msgid "Screen time :" +msgstr "亮屏时间:" + +msgid "This time no action, the screen will close." +msgstr "这段时间没有操作,屏幕将关闭。" + +msgid "Refresh interval :" +msgstr "刷新间隔:" + +msgid "Screen data refresh interval." +msgstr "屏幕数据刷新间隔" + +msgid "Hide Wireless password" +msgstr "隐藏无线密码" + +msgid "Display CPU temperature" +msgstr "显示 CPU 温度" + +msgid "The first page shows the CPU temperature." +msgstr "第一页显示 CPU 温度" + +msgid "Test" +msgstr "测试" + +msgid "Print info" +msgstr "输出信息" + +msgid "Execute k3screenctrl -t and return the result" +msgstr "执行 k3screenctrl -t 并返回结果" + +msgid "Output results" +msgstr "输出结果" + +msgid "Device customization" +msgstr "设备自定义" + +msgid "Customize the fifth page of device information" +msgstr "自定义第五页设备信息" + +msgid "Device" +msgstr "设备" + +msgid "Icon" +msgstr "图标" + +msgid "2 s" +msgstr "2 秒" + +msgid "5 s" +msgstr "5 秒" + +msgid "10 s" +msgstr "10 秒" + +msgid "30 s" +msgstr "30 秒" + +msgid "60 s" +msgstr "60 秒" + +msgid "5 m" +msgstr "5 分" + +msgid "10 m" +msgstr "10 分" + +msgid "15 m" +msgstr "15 分" + +msgid "30 m" +msgstr "30 分" + +msgid "60 m" +msgid "60 分" + +msgid "Auto" +msgstr "自动" + +msgid "OnePlus" +msgstr "一加" + +msgid "Asus" +msgstr "华硕" + +msgid "Coolpad" +msgstr "酷派" + +msgid "Dell" +msgstr "戴尔" + +msgid "Haier" +msgstr "海尔" + +msgid "Hasee" +msgstr "神舟" + +msgid "Honor" +msgid "荣耀" + +msgid "HP" +msgstr "惠普" + +msgid "Huawei" +msgstr "华为" + +msgid "Apple" +msgstr "苹果" + +msgid "Lenovo" +msgid "联想" + +msgid "LeEco" +msgstr "乐视" + +msgid "Meitu" +msgstr "美图" + +msgid "Meizu" +msgstr "魅族" + +msgid "Phicomm" +msgstr "斐讯" + +msgid "Samsung" +msgstr "三星" + +msgid "Smartisan" +msgstr "锤子" + +msgid "Sony" +msgstr "索尼" + +msgid "TongfangPC" +msgstr "清华同方" + +msgid "Microsoft" +msgstr "微软" + +msgid "XiaoMi" +msgstr "小米" + +msgid "ZTE" +msgstr "中兴" \ No newline at end of file diff --git a/package/ctcgfw/luci-app-k3screenctrl/files/luci/model/cbi/k3screenctrl.lua b/package/ctcgfw/luci-app-k3screenctrl/files/luci/model/cbi/k3screenctrl.lua new file mode 100644 index 0000000000..cef52d8c16 --- /dev/null +++ b/package/ctcgfw/luci-app-k3screenctrl/files/luci/model/cbi/k3screenctrl.lua @@ -0,0 +1,99 @@ +-- Copyright (C) 2018 XiaoShan mivm.cn + +local m, s ,o + +m = Map("k3screenctrl", translate("Screen"), translate("Customize your device screen")) + +s = m:section(TypedSection, "general", translate("General Setting") ) +s.anonymous = true + +o = s:option(ListValue, "screen_time", translate("Screen time :"), translate("This time no action, the screen will close.")) +o:value("10",translate("10 s")) +o:value("30",translate("30 s")) +o:value("60",translate("60 s")) +o:value("300",translate("5 m")) +o:value("600",translate("10 m")) +o:value("900",translate("15 m")) +o:value("1800",translate("30 m")) +o:value("3600",translate("60 m")) +o.default = 10 +o.rmempty = false + +o = s:option(ListValue, "refresh_time", translate("Refresh interval :"), translate("Screen data refresh interval.")) +o:value("2",translate("2 s")) +o:value("5",translate("5 s")) +o:value("10",translate("10 s")) +o.default = 2 +o.rmempty = false + +o = s:option(Flag, "psk_hide", translate("Hide Wireless password")) +o.default = 0 + +o = s:option(Flag, "cputemp", translate("Display CPU temperature"), translate("The first page shows the CPU temperature.")) +o.default = 0 + +o = s:option(Button,"test_print",translate("Test"),translate("Execute k3screenctrl -t and return the result")) +o.inputtitle = translate("Print info") +o.write = function() + luci.sys.call("k3screenctrl -t > /tmp/k3screenctrl/test") + luci.http.redirect(luci.dispatcher.build_url("admin","system","k3screenctrl")) +end + +s = m:section(TypedSection, "device_custom", translate("Device customization") ,translate("Customize the fifth page of device information")) +s.template = "cbi/tblsection" +s.addremove = true +s.anonymous = true + +o = s:option(Value,"mac",translate("Device")) +o.datatype = "macaddr" +o.rmempty = false +luci.sys.net.mac_hints(function(t,a) + o:value(t,"%s (%s)"%{a,t}) +end) + +o = s:option(Value,"name",translate("Hostname")) + +o = s:option(ListValue,"icon",translate("Icon")) +o:value("0",translate("Auto")) +o:value("1",translate("OnePlus")) +o:value("2","360") +o:value("3",translate("Asus")) +o:value("4",translate("Coolpad")) +o:value("5",translate("Dell")) +o:value("6",translate("Haier")) +o:value("7",translate("Hasee")) +o:value("8",translate("Honor")) +o:value("9",translate("HP")) +o:value("10","HTC") +o:value("11",translate("Huawei")) +o:value("12",translate("Apple")) +o:value("13",translate("Lenovo")) +o:value("14",translate("LeEco")) +o:value("15","LG") +o:value("16",translate("Meitu")) +o:value("17",translate("Meizu")) +o:value("18","OPPO") +o:value("19",translate("Phicomm")) +o:value("20",translate("Samsung")) +o:value("21",translate("Smartisan")) +o:value("22",translate("Sony")) +o:value("23","TCL") +o:value("24","ThinkPad") +o:value("25",translate("TongfangPC")) +o:value("26","VIVO") +o:value("27",translate("Microsoft")) +o:value("28",translate("XiaoMi")) +o:value("29",translate("ZTE")) + +if nixio.fs.access("/tmp/k3screenctrl/test") then + s = m:section(TypedSection, "general", translate("Output results")) + s.anonymous = true + o = s:option(TextValue,"test_output_results") + o.readonly = true + o.rows = 30 + o.cfgvalue = function() + return luci.sys.exec("cat /tmp/k3screenctrl/test && rm -f /tmp/k3screenctrl/test") + end +end + +return m diff --git a/package/ctcgfw/luci-app-koolproxyR/Makefile b/package/ctcgfw/luci-app-koolproxyR/Makefile new file mode 100644 index 0000000000..cfc4e3e65e --- /dev/null +++ b/package/ctcgfw/luci-app-koolproxyR/Makefile @@ -0,0 +1,95 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=luci-app-koolproxyR +PKG_VERSION:=3.8.4 +PKG_RELEASE:=5 + +PKG_MAINTAINER:=panda-mute +PKG_LICENSE:=GPLv3 +PKG_LICENSE_FILES:=LICENSE + +PKG_BUILD_PARALLEL:=1 + +RSTRIP:=true + +include $(INCLUDE_DIR)/package.mk + +define Package/luci-app-koolproxyR + SECTION:=luci + CATEGORY:=LuCI + SUBMENU:=3. Applications + TITLE:=LuCI support for koolproxyR + DEPENDS:=+openssl-util +ipset +dnsmasq-full +@BUSYBOX_CONFIG_DIFF +iptables-mod-nat-extra +wget + MAINTAINER:=panda-mute +endef + +define Package/luci-app-koolproxyR/description + This package contains LuCI configuration pages for koolproxy. +endef + +define Build/Compile +endef + +define Package/luci-app-koolproxyR/postinst +#!/bin/sh +if [ -z "$${IPKG_INSTROOT}" ]; then + ( . /etc/uci-defaults/luci-koolproxy ) && rm -f /etc/uci-defaults/luci-koolproxy + rm -f /tmp/luci-indexcache +fi +exit 0 +endef + +define Package/luci-app-koolproxyR/install + $(INSTALL_DIR) $(1)/etc/uci-defaults + $(INSTALL_DIR) $(1)/etc/config + $(INSTALL_DIR) $(1)/etc/adblocklist + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_DIR) $(1)/lib/upgrade/keep.d + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/i18n/ + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/koolproxy + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/view + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/view/koolproxy + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_DIR) $(1)/usr/share/koolproxy + $(INSTALL_DIR) $(1)/usr/share/koolproxy/data + $(INSTALL_DIR) $(1)/usr/share/koolproxy/data/rules/ + + $(INSTALL_BIN) ./files/etc/uci-defaults/luci-koolproxy $(1)/etc/uci-defaults/luci-koolproxy + $(INSTALL_BIN) ./files/etc/init.d/* $(1)/etc/init.d/ + $(INSTALL_DATA) ./files/etc/config/* $(1)/etc/config/ + $(INSTALL_DATA) ./files/etc/adblocklist/* $(1)/etc/adblocklist/ + $(INSTALL_DATA) ./files/lib/upgrade/keep.d/koolproxy $(1)/lib/upgrade/keep.d/ + $(INSTALL_DATA) ./files/usr/lib/lua/luci/model/cbi/koolproxy/global.lua $(1)/usr/lib/lua/luci/model/cbi/koolproxy/global.lua + $(INSTALL_DATA) ./files/usr/lib/lua/luci/model/cbi/koolproxy/rss_rule.lua $(1)/usr/lib/lua/luci/model/cbi/koolproxy/rss_rule.lua + $(INSTALL_DATA) ./files/usr/lib/lua/luci/controller/koolproxy.lua $(1)/usr/lib/lua/luci/controller/koolproxy.lua + $(INSTALL_DATA) ./files/usr/lib/lua/luci/view/koolproxy/* $(1)/usr/lib/lua/luci/view/koolproxy/ + $(INSTALL_DATA) ./files/usr/lib/lua/luci/i18n/koolproxy.zh-cn.lmo $(1)/usr/lib/lua/luci/i18n/koolproxy.zh-cn.lmo + $(INSTALL_BIN) ./files/usr/sbin/* $(1)/usr/sbin/ + $(INSTALL_BIN) ./files/usr/share/koolproxy/data/gen_ca.sh $(1)/usr/share/koolproxy/data/ + $(INSTALL_DATA) ./files/usr/share/koolproxy/data/openssl.cnf $(1)/usr/share/koolproxy/data/ + $(INSTALL_DATA) ./files/usr/share/koolproxy/data/user.txt $(1)/usr/share/koolproxy/data/ + $(INSTALL_DATA) ./files/usr/share/koolproxy/data/source.list $(1)/usr/share/koolproxy/data/ + $(INSTALL_DATA) ./files/usr/share/koolproxy/data/rules/* $(1)/usr/share/koolproxy/data/rules/ + $(INSTALL_BIN) ./files/usr/share/koolproxy/camanagement $(1)/usr/share/koolproxy/camanagement + $(INSTALL_BIN) ./files/usr/share/koolproxy/kpupdate $(1)/usr/share/koolproxy/kpupdate + $(INSTALL_DATA) ./files/usr/share/koolproxy/koolproxy_ipset.conf $(1)/usr/share/koolproxy/koolproxy_ipset.conf + $(INSTALL_DATA) ./files/usr/share/koolproxy/dnsmasq.adblock $(1)/usr/share/koolproxy/dnsmasq.adblock +ifeq ($(ARCH),mipsel) + $(INSTALL_BIN) ./files/bin/mipsel $(1)/usr/share/koolproxy/koolproxy +endif +ifeq ($(ARCH),mips) + $(INSTALL_BIN) ./files/bin/mips $(1)/usr/share/koolproxy/koolproxy +endif +ifeq ($(ARCH),i386) + $(INSTALL_BIN) ./files/bin/i386 $(1)/usr/share/koolproxy/koolproxy +endif +ifeq ($(ARCH),x86_64) + $(INSTALL_BIN) ./files/bin/x86_64 $(1)/usr/share/koolproxy/koolproxy +endif +ifeq ($(ARCH),arm) + $(INSTALL_BIN) ./files/bin/arm $(1)/usr/share/koolproxy/koolproxy +endif +endef + +$(eval $(call BuildPackage,luci-app-koolproxyR)) diff --git a/package/ctcgfw/luci-app-koolproxyR/files/bin/arm b/package/ctcgfw/luci-app-koolproxyR/files/bin/arm new file mode 100755 index 0000000000..f80c1cecaa Binary files /dev/null and b/package/ctcgfw/luci-app-koolproxyR/files/bin/arm differ diff --git a/package/ctcgfw/luci-app-koolproxyR/files/bin/i386 b/package/ctcgfw/luci-app-koolproxyR/files/bin/i386 new file mode 100755 index 0000000000..c295815493 Binary files /dev/null and b/package/ctcgfw/luci-app-koolproxyR/files/bin/i386 differ diff --git a/package/ctcgfw/luci-app-koolproxyR/files/bin/mips b/package/ctcgfw/luci-app-koolproxyR/files/bin/mips new file mode 100755 index 0000000000..2673deff6f Binary files /dev/null and b/package/ctcgfw/luci-app-koolproxyR/files/bin/mips differ diff --git a/package/ctcgfw/luci-app-koolproxyR/files/bin/mipsel b/package/ctcgfw/luci-app-koolproxyR/files/bin/mipsel new file mode 100755 index 0000000000..f398b91c5f Binary files /dev/null and b/package/ctcgfw/luci-app-koolproxyR/files/bin/mipsel differ diff --git a/package/ctcgfw/luci-app-koolproxyR/files/bin/x86_64 b/package/ctcgfw/luci-app-koolproxyR/files/bin/x86_64 new file mode 100755 index 0000000000..fe5cfc15e7 Binary files /dev/null and b/package/ctcgfw/luci-app-koolproxyR/files/bin/x86_64 differ diff --git a/package/ctcgfw/luci-app-koolproxyR/files/etc/adblocklist/adblock b/package/ctcgfw/luci-app-koolproxyR/files/etc/adblocklist/adblock new file mode 100644 index 0000000000..e69de29bb2 diff --git a/package/ctcgfw/luci-app-koolproxyR/files/etc/adblocklist/adblockip b/package/ctcgfw/luci-app-koolproxyR/files/etc/adblocklist/adblockip new file mode 100644 index 0000000000..b456b97f97 --- /dev/null +++ b/package/ctcgfw/luci-app-koolproxyR/files/etc/adblocklist/adblockip @@ -0,0 +1 @@ +61.160.200.252 \ No newline at end of file diff --git a/package/ctcgfw/luci-app-koolproxyR/files/etc/adblocklist/adbypass b/package/ctcgfw/luci-app-koolproxyR/files/etc/adblocklist/adbypass new file mode 100644 index 0000000000..6f1e51b67b --- /dev/null +++ b/package/ctcgfw/luci-app-koolproxyR/files/etc/adblocklist/adbypass @@ -0,0 +1 @@ +v2ex.com diff --git a/package/ctcgfw/luci-app-koolproxyR/files/etc/adblocklist/adbypassip b/package/ctcgfw/luci-app-koolproxyR/files/etc/adblocklist/adbypassip new file mode 100644 index 0000000000..e69de29bb2 diff --git a/package/ctcgfw/luci-app-koolproxyR/files/etc/config/koolproxy b/package/ctcgfw/luci-app-koolproxyR/files/etc/config/koolproxy new file mode 100644 index 0000000000..47c5bb7c0d --- /dev/null +++ b/package/ctcgfw/luci-app-koolproxyR/files/etc/config/koolproxy @@ -0,0 +1,17 @@ +config global + option time_update '4' + option koolproxy_port '0' + option startup_delay '5' + option enabled '0' + option koolproxy_ipv6 '0' + option koolproxy_mode '1' + option koolproxy_rules 'easylistchina.txt fanboy.txt yhosts.txt kp.dat user.txt' + option koolproxy_acl_default '3' + +config rss_rule + option load '1' + option name 'kpr_our_rule.txt' + option url 'https://github.com/user1121114685/koolproxyR_rule_list/raw/master/kpr_our_rule.txt' + option file 'kpr_our_rule.txt' + option load '0' + diff --git a/package/ctcgfw/luci-app-koolproxyR/files/etc/init.d/koolproxy b/package/ctcgfw/luci-app-koolproxyR/files/etc/init.d/koolproxy new file mode 100755 index 0000000000..974ca87494 --- /dev/null +++ b/package/ctcgfw/luci-app-koolproxyR/files/etc/init.d/koolproxy @@ -0,0 +1,475 @@ +#!/bin/sh /etc/rc.common +# +# Copyright (C) 2015 OpenWrt-dist +# Copyright (C) 2016 fw867 +# +# This is free software, licensed under the GNU General Public License v3. +# See /LICENSE for more information. +# + +START=99 +USE_PROCD=1 + +CONFIG=koolproxy +KP_DIR=/usr/share/koolproxy +TMP_DIR=/tmp + +alias echo_date='echo $(date +%Y年%m月%d日\ %X):' + +config_n_get() { + local ret=$(uci get $CONFIG.$1.$2 2>/dev/null) + echo ${ret:=$3} +} + +config_t_get() { + local index=0 + [ -n "$4" ] && index=$4 + local ret=$(uci get $CONFIG.@$1[$index].$2 2>/dev/null) + echo ${ret:=$3} +} + +add_ipset_conf() { + if [ -s /etc/adblocklist/adbypass ]; then + echo_date 添加白名单软连接... + cat /etc/adblocklist/adbypass | sed "s/,/\n/g" | sed "s/^/ipset=&\/./g" | sed "s/$/\/white_kp_list/g" >> /tmp/adbypass.conf + rm -rf /tmp/dnsmasq.d/adbypass.conf + ln -sf /tmp/adbypass.conf /tmp/dnsmasq.d/adbypass.conf + + dnsmasq_restart=1 + fi + + if [ "$koolproxy_mode" == "2" ]; then + if [ "$koolproxy_host" == "1" ];then + echo_date 添加Adblock Plus Host软连接... + ln -sf $KP_DIR/dnsmasq.adblock /tmp/dnsmasq.d/dnsmasq.adblock + fi + + echo_date 添加黑名单软连接... + rm -rf /tmp/dnsmasq.d/koolproxy_ipset.conf + ln -sf $KP_DIR/koolproxy_ipset.conf /tmp/dnsmasq.d/koolproxy_ipset.conf + + echo_date 添加自定义黑名单软连接... + if [ -s /etc/adblocklist/adblock ]; then + cat /etc/adblocklist/adblock | sed "s/,/\n/g" | sed "s/^/ipset=&\/./g" | sed "s/$/\/black_koolproxy/g" >> /tmp/adblock.conf + rm -rf /tmp/dnsmasq.d/adblock.conf + ln -sf /tmp/adblock.conf /tmp/dnsmasq.d/adblock.conf + fi + + dnsmasq_restart=1 + fi +} + +remove_ipset_conf() { + if [ -L "/tmp/dnsmasq.d/adbypass.conf" ]; then + echo_date 移除白名单软连接... + rm -rf /tmp/adbypass.conf + rm -rf /tmp/dnsmasq.d/adbypass.conf + dnsmasq_restart=1 + fi + + if [ -L "/tmp/dnsmasq.d/koolproxy_ipset.conf" ]; then + echo_date 移除黑名单软连接... + rm -rf /tmp/dnsmasq.d/koolproxy_ipset.conf + dnsmasq_restart=1 + fi + + if [ -L "/tmp/dnsmasq.d/adblock.conf" ]; then + echo_date 移除自定义黑名单软连接... + rm -rf /tmp/dnsmasq.d/adblock.conf + rm -rf /tmp/adblock.conf + dnsmasq_restart=1 + fi + + if [ -L "/tmp/dnsmasq.d/dnsmasq.adblock" ]; then + echo_date 移除Adblock Plus Host软连接... + rm -rf /tmp/dnsmasq.d/dnsmasq.adblock + dnsmasq_restart=1 + fi +} + + +restart_dnsmasq() { + if [ "$dnsmasq_restart" == "1" ]; then + echo_date 重启dnsmasq进程... + /etc/init.d/dnsmasq restart > /dev/null 2>&1 + fi +} + +creat_ipset() { + echo_date 创建ipset名单 + # Load ipset netfilter kernel modules and kernel modules + ipset -! create white_kp_list nethash + ipset -! create black_koolproxy iphash + cat $KP_DIR/data/rules/yhosts.txt $KP_DIR/data/rules/easylistchina.txt $KP_DIR/data/rules/fanboy.txt $KP_DIR/data/rules/user.txt | grep -Eo "(.\w+\:[1-9][0-9]{1,4})/" | grep -Eo "([0-9]{1,5})" | sort -un | sed -e '$a\80' -e '$a\443' | sed -e "s/^/-A kp_full_port &/g" -e "1 i\-N kp_full_port bitmap:port range 0-65535 " | ipset -R -! +} + +add_white_black_ip() { + echo_date 添加ipset名单 + ip_lan="0.0.0.0/8 10.0.0.0/8 100.64.0.0/10 127.0.0.0/8 169.254.0.0/16 172.16.0.0/12 192.168.0.0/16 224.0.0.0/4 240.0.0.0/4" + for ip in $ip_lan + do + ipset -A white_kp_list $ip >/dev/null 2>&1 + + done + sed -e "s/^/add white_kp_list &/g" /etc/adblocklist/adbypassip | awk '{print $0} END{print "COMMIT"}' | ipset -R 2>/dev/null + ipset -A black_koolproxy 110.110.110.110 >/dev/null 2>&1 + sed -e "s/^/add black_koolproxy &/g" /etc/adblocklist/adblockip | awk '{print $0} END{print "COMMIT"}' | ipset -R 2>/dev/null +} + +load_config() { + ENABLED=$(config_t_get global enabled 0) + [ $ENABLED -ne 1 ] && return 0 + koolproxy_mode=$(config_t_get global koolproxy_mode 1) + koolproxy_host=$(config_t_get global koolproxy_host 0) + koolproxy_acl_default=$(config_t_get global koolproxy_acl_default 1) + koolproxy_port=$(config_t_get global koolproxy_port 0) + koolproxy_bp_port=$(config_t_get global koolproxy_bp_port) + koolproxy_ipv6=$(config_t_get global koolproxy_ipv6 0) + config_load $CONFIG + return 1 +} + +__load_lan_acl() { + local mac + local ipaddr + local proxy_mode + config_get mac $1 mac + config_get ipaddr $1 ipaddr + config_get proxy_mode $1 proxy_mode + [ -n "$ipaddr" ] && [ -z "$mac" ] && echo_date 加载ACL规则:【$ipaddr】模式为:$(get_mode_name $proxy_mode) + [ -z "$ipaddr" ] && [ -n "$mac" ] && echo_date 加载ACL规则:【$mac】模式为:$(get_mode_name $proxy_mode) + [ -n "$ipaddr" ] && [ -n "$mac" ] && echo_date 加载ACL规则:【$ipaddr】【$mac】模式为:$(get_mode_name $proxy_mode) + #echo iptables -t nat -A KOOLPROXY $(factor $ipaddr "-s") $(factor $mac "-m mac --mac-source") -p tcp $(get_jump_mode $proxy_mode) $(get_action_chain $proxy_mode) + iptables -t nat -A KOOLPROXY $(factor $ipaddr "-s") $(factor $mac "-m mac --mac-source") -p tcp $(get_jump_mode $proxy_mode) $(get_action_chain $proxy_mode) + + acl_nu=`expr $acl_nu + 1` +} + +lan_acess_control() { + acl_nu=0 + [ -z "$koolproxy_acl_default" ] && koolproxy_acl_default=1 + config_foreach __load_lan_acl acl_rule + if [ $acl_nu -ne 0 ]; then + echo_date 加载ACL规则:其余主机模式为:$(get_mode_name $koolproxy_acl_default) + else + echo_date 加载ACL规则:所有模式为:$(get_mode_name $koolproxy_acl_default) + fi +} + +__load_exrule() { + local file + local exrule + local enable + config_get file $1 file + config_get exrule $1 url + config_get enable $1 load + if [ -n "$exrule" ]; then + if [ $enable -ne 1 ]; then + [ -n "$file" ] && [ -f $KP_DIR/data/rules/$file ] && rm -f $KP_DIR/data/rules/$file + uci set koolproxy.$1.time="" + uci commit koolproxy + return + fi + + if [ -z "$file" ]; then + file=$(echo $exrule |awk -F "/" '{print $NF}') + uci set koolproxy.$1.file="$file" + uci commit koolproxy + fi + + if [ ! -f $KP_DIR/data/rules/$file ]; then + wget-ssl --quiet --timeout=5 --no-check-certificate $exrule -O $TMP_DIR/$file + if [ "$?" == "0" ]; then + uci set koolproxy.$1.time="`date +%Y-%m-%d" "%H:%M`" + uci commit koolproxy + mv $TMP_DIR/$file $KP_DIR/data/rules/$file + else + echo "koolproxy download rule $file failed!" + [ -f $TMP_DIR/$file ] && rm -f $TMP_DIR/$file + fi + fi + cat $KP_DIR/data/rules/$file >>$KP_DIR/data/rules/user.txt + fi +} + +load_user_rules() { + cp $KP_DIR/data/user.txt $KP_DIR/data/rules/user.txt + config_foreach __load_exrule rss_rule +} + +load_rules() { + sed -i '1,7s/1/0/g' $KP_DIR/data/source.list + + local rulelist="$(uci -q get koolproxy.@global[0].koolproxy_rules)" + for rule in $rulelist + do + case "$rule" in + yhosts.txt) + sed -i '1s/0/1/g' $KP_DIR/data/source.list + ;; + kp.dat) + sed -i '2s/0/1/g' $KP_DIR/data/source.list + ;; + user.txt) + sed -i '3s/0/1/g' $KP_DIR/data/source.list + ;; + easylistchina.txt) + sed -i '4s/0/1/g' $KP_DIR/data/source.list + ;; + fanboy.txt) + sed -i '5s/0/1/g' $KP_DIR/data/source.list + ;; + esac + done + + local rulelist="$(uci -q get koolproxy.@global[0].thirdparty_rules)" + for rule in $rulelist + do + case "$rule" in + easylistchina.txt) + sed -i '5s/0/1/g' $KP_DIR/data/source.list + ;; + chengfeng.txt) + sed -i '6s/0/1/g' $KP_DIR/data/source.list + ;; + fanboy.txt) + sed -i '7s/0/1/g' $KP_DIR/data/source.list + ;; + esac + done +} + +get_mode_name() { + case "$1" in + 0) + echo "不过滤" + ;; + 1) + echo "http模式" + ;; + 2) + echo "http + https" + ;; + 3) + echo "full port" + ;; + esac +} + +get_jump_mode() { + case "$1" in + 0) + echo "-j" + ;; + *) + echo "-g" + ;; + esac +} + +get_action_chain() { + case "$1" in + 0) + echo "RETURN" + ;; + 1) + echo "KP_HTTP" + ;; + 2) + echo "KP_HTTPS" + ;; + 3) + echo "KP_ALL_PORT" + ;; + esac +} + +factor() { + if [ -z "$1" ] || [ -z "$2" ]; then + echo "" + else + echo "$2 $1" + fi +} + +load_nat() { + echo_date 加载nat规则! + #----------------------BASIC RULES--------------------- + echo_date 写入iptables规则到nat表中... + # 创建KOOLPROXY nat rule + iptables -t nat -N KOOLPROXY + # 局域网地址不走KP + iptables -t nat -A KOOLPROXY -m set --match-set white_kp_list dst -j RETURN + # 生成对应CHAIN + iptables -t nat -N KP_HTTP + iptables -t nat -A KP_HTTP -p tcp -m multiport --dport 80 -j REDIRECT --to-ports 3000 + iptables -t nat -N KP_HTTPS + iptables -t nat -A KP_HTTPS -p tcp -m multiport --dport 80,443 -j REDIRECT --to-ports 3000 + iptables -t nat -N KP_ALL_PORT + #iptables -t nat -A KP_ALL_PORT -p tcp -j REDIRECT --to-ports 3000 + # 端口控制 + if [ "$koolproxy_port" == "1" ]; then + echo_date 开启端口控制:【$koolproxy_bp_port】 + if [ -n "$koolproxy_bp_port" ]; then + iptables -t nat -A KP_ALL_PORT -p tcp -m multiport ! --dport $koolproxy_bp_port -m set --match-set kp_full_port dst -j REDIRECT --to-ports 3000 + else + iptables -t nat -A KP_ALL_PORT -p tcp -m set --match-set kp_full_port dst -j REDIRECT --to-ports 3000 + fi + else + iptables -t nat -A KP_ALL_PORT -p tcp -m set --match-set kp_full_port dst -j REDIRECT --to-ports 3000 + fi + [ "$koolproxy_ipv6" == "1" ] && ip6tables -t nat -I PREROUTING -p tcp -j REDIRECT --to-ports 3000 + # 局域网控制 + lan_acess_control + # 剩余流量转发到缺省规则定义的链中 + iptables -t nat -A KOOLPROXY -p tcp -j $(get_action_chain $koolproxy_acl_default) + # 重定所有流量到 KOOLPROXY + # 全局模式和视频模式 + [ "$koolproxy_mode" == "1" ] || [ "$koolproxy_mode" == "3" ] && iptables -t nat -I PREROUTING 1 -p tcp -j KOOLPROXY + # ipset 黑名单模式 + [ "$koolproxy_mode" == "2" ] && iptables -t nat -I PREROUTING 1 -p tcp -m set --match-set black_koolproxy dst -j KOOLPROXY +} + +add_cru() { + time=$(config_t_get global time_update) + wirtecron=$(cat /etc/crontabs/root | grep "00 $time * * *" | grep kpupdate) + if [ -z "$wirtecron" ];then + sed -i '/kpupdate/d' /etc/crontabs/root >/dev/null 2>&1 + echo "0 $time * * * /usr/share/koolproxy/kpupdate" >> /etc/crontabs/root + fi +} + +del_cru() { + sed -i '/kpupdate/d' /etc/crontabs/root >/dev/null 2>&1 +} + +detect_cert(){ + if [ ! -f $KP_DIR/data/private/ca.key.pem -o ! -f $KP_DIR/data/cert/ca.crt ]; then + echo_date 开始生成koolproxy证书,用于https过滤! + cd $KP_DIR/data && sh gen_ca.sh + fi +} + +flush_nat() { + echo_date 移除nat规则... + cd $TMP_DIR + iptables -t nat -S | grep -E "KOOLPROXY|KP_HTTP|KP_HTTPS|KP_ALL_PORT" | sed 's/-A/iptables -t nat -D/g'|sed 1,4d > clean.sh && chmod 777 clean.sh && ./clean.sh + [ -f $TMP_DIR/clean.sh ] && rm -f $TMP_DIR/clean.sh + iptables -t nat -X KOOLPROXY > /dev/null 2>&1 + iptables -t nat -X KP_HTTP > /dev/null 2>&1 + iptables -t nat -X KP_HTTPS > /dev/null 2>&1 + iptables -t nat -X KP_ALL_PORT > /dev/null 2>&1 + ipset -F black_koolproxy > /dev/null 2>&1 && ipset -X black_koolproxy > /dev/null 2>&1 + ipset -F white_kp_list > /dev/null 2>&1 && ipset -X white_kp_list > /dev/null 2>&1 + ip6tables -t nat -D PREROUTING -p tcp -j REDIRECT --to-ports 3000 > /dev/null 2>&1 +} + +export_ipt_rules() { + FWI=$(uci get firewall.koolproxy.path 2>/dev/null) + [ -n "$FWI" ] || return 0 + cat <<-CAT >>$FWI + iptables-save -c | grep -v -E "KOOLPROXY|KP" | iptables-restore -c + iptables-restore -n <<-EOF + $(iptables-save | grep -E "KOOLPROXY|KP|^\*|^COMMIT" |\ + sed -e "s/^-A \(PREROUTING\)/-I \1 1/") + EOF + CAT + return $? +} + +flush_ipt_rules() { + FWI=$(uci get firewall.koolproxy.path 2>/dev/null) + [ -n "$FWI" ] && echo '# firewall include file' >$FWI + return 0 +} + +pre_start() { + load_config + [ $? -ne 1 ] && return 0 + iptables -t nat -C PREROUTING -p tcp -j KOOLPROXY 2>/dev/null && [ $? -eq 0 ] && return 0; + detect_cert + load_rules + load_user_rules + add_ipset_conf && restart_dnsmasq + creat_ipset + add_white_black_ip + load_nat + flush_ipt_rules && export_ipt_rules + add_cru + [ "$koolproxy_mode" == "1" ] && echo_date 选择【全局过滤模式】 + [ "$koolproxy_mode" == "2" ] && echo_date 选择【IPSET过滤模式】 + if [ "$koolproxy_mode" == "3" ]; then + echo_date 选择【视频过滤模式】 + sed -i '1s/1/0/g;2s/1/0/g' $KP_DIR/data/source.list + fi + return 1 +} + +post_stop() { + load_config + [ $? -ne 1 ] && NO_RESTART_DNSMASQ=false + if [ $NO_RESTART_DNSMASQ ]; then + remove_ipset_conf + else + remove_ipset_conf && restart_dnsmasq + fi + flush_ipt_rules + flush_nat + del_cru + return 0 +} + +start_service() { + echo_date ================== koolproxy启用 ================ + pre_start + [ $? -ne 1 ] && return 0 + + procd_open_instance + procd_set_param command /usr/share/koolproxy/koolproxy + procd_append_param command --mark + procd_append_param command --ttl 160 + procd_append_param command --ipv6 + + procd_set_param respawn + + procd_set_param file /etc/adblocklist/adblock + procd_set_param file /etc/adblocklist/adblockip + procd_set_param file /usr/share/koolproxy/data/user.txt + procd_set_param stdout 1 + procd_set_param stderr 1 + procd_close_instance + + logger "koolproxy has started." + echo_date ================================================= +} + +stop_service() { + echo_date ====================== 关闭 ===================== + post_stop + logger "koolproxy has stopped." + echo_date ================================================= +} + +reload_service() { + logger "koolproxy reload service." + NO_RESTART_DNSMASQ=true + stop + start +} + +service_triggers() { + procd_add_reload_trigger "koolproxy" +} + +restart() { + logger "koolproxy restart service." + NO_RESTART_DNSMASQ=true + stop + start +} + +boot() { + local delay=$(config_t_get global startup_delay 0) + (sleep $delay && start >/dev/null 2>&1) & + return 0 +} diff --git a/package/ctcgfw/luci-app-koolproxyR/files/etc/uci-defaults/luci-koolproxy b/package/ctcgfw/luci-app-koolproxyR/files/etc/uci-defaults/luci-koolproxy new file mode 100755 index 0000000000..85d7f421c4 --- /dev/null +++ b/package/ctcgfw/luci-app-koolproxyR/files/etc/uci-defaults/luci-koolproxy @@ -0,0 +1,17 @@ +#!/bin/sh + +uci -q batch <<-EOF >/dev/null + delete ucitrack.@koolproxy[-1] + add ucitrack koolproxy + set ucitrack.@koolproxy[-1].init=koolproxy + commit ucitrack + delete firewall.koolproxy + set firewall.koolproxy=include + set firewall.koolproxy.type=script + set firewall.koolproxy.path=/var/etc/koolproxy.include + set firewall.koolproxy.reload=1 + commit firewall +EOF + +rm -f /tmp/luci-indexcache +exit 0 diff --git a/package/ctcgfw/luci-app-koolproxyR/files/lib/upgrade/keep.d/koolproxy b/package/ctcgfw/luci-app-koolproxyR/files/lib/upgrade/keep.d/koolproxy new file mode 100755 index 0000000000..d20942b8b3 --- /dev/null +++ b/package/ctcgfw/luci-app-koolproxyR/files/lib/upgrade/keep.d/koolproxy @@ -0,0 +1,3 @@ +/usr/share/koolproxy/data/certs/ca.crt +/usr/share/koolproxy/data/private/base.key.pem +/usr/share/koolproxy/data/private/ca.key.pem diff --git a/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/controller/koolproxy.lua b/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/controller/koolproxy.lua new file mode 100644 index 0000000000..dcd8a1cf76 --- /dev/null +++ b/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/controller/koolproxy.lua @@ -0,0 +1,8 @@ +module("luci.controller.koolproxy",package.seeall) +function index() + if not nixio.fs.access("/etc/config/koolproxy")then + return + end + entry({"admin","services","koolproxy"},cbi("koolproxy/global"),_("KoolProxyR plus+"),1).dependent=true + entry({"admin","services","koolproxy","rss_rule"},cbi("koolproxy/rss_rule"), nil).leaf=true +end diff --git a/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/i18n/koolproxy.zh-cn.lmo b/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/i18n/koolproxy.zh-cn.lmo new file mode 100644 index 0000000000..42a3874ccf Binary files /dev/null and b/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/i18n/koolproxy.zh-cn.lmo differ diff --git a/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/model/cbi/koolproxy/global.lua b/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/model/cbi/koolproxy/global.lua new file mode 100644 index 0000000000..29c8919913 --- /dev/null +++ b/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/model/cbi/koolproxy/global.lua @@ -0,0 +1,416 @@ +-- Copyright 2018 Nick Peng (pymumu@gmail.com) + +require ("nixio.fs") +require ("luci.http") +require ("luci.dispatcher") +require ("nixio.fs") + +local fs = require "nixio.fs" +local sys = require "luci.sys" +local http = require "luci.http" + + +local o,t,e +local v=luci.sys.exec("/usr/share/koolproxy/koolproxy -v") +local s=luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/easylistchina.txt | wc -l") +local u=luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/fanboy.txt | wc -l") +local p=luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/yhosts.txt | wc -l") +local h=luci.sys.exec("grep -v '^!' /usr/share/koolproxy/data/rules/user.txt | wc -l") +local i=luci.sys.exec("cat /usr/share/koolproxy/dnsmasq.adblock | wc -l") + +if luci.sys.call("pidof koolproxy >/dev/null") == 0 then + status = translate("KoolProxyR plus+ 运行中") +else + status = translate("KoolProxyR plus+ 已停止") +end + +o = Map("koolproxy", translate("KoolProxyR plus+ "), translate("KoolProxyR plus+是能识别adblock规则的免费开源软件,追求体验更快、更清洁的网络,屏蔽烦人的广告

")) + + +t = o:section(TypedSection, "global") +t.anonymous = true +t.description = translate(string.format("%s

", status)) + +t:tab("base",translate("Basic Settings")) + +e = t:taboption("base", Flag, "enabled", translate("Enable")) +e.default = 0 +e.rmempty = false + +e = t:taboption("base", DummyValue, "koolproxy_status", translate("程序版本")) +e.value = string.format("[ %s ]", v) + +e = t:taboption("base", Value, "startup_delay", translate("Startup Delay")) +e:value(0, translate("Not enabled")) +for _, v in ipairs({5, 10, 15, 25, 40}) do + e:value(v, translate("%u seconds") %{v}) +end +e.datatype = "uinteger" +e.default = 0 +e.rmempty = false + +e = t:taboption("base", ListValue, "koolproxy_mode", translate("Filter Mode")) +e.default = 1 +e.rmempty = false +e:value(1, translate("全局模式")) +e:value(2, translate("IPSET模式")) +e:value(3, translate("视频模式")) + +e = t:taboption("base", MultiValue, "koolproxy_rules", translate("内置规则")) +e.optional = false +e.rmempty = false +e:value("easylistchina.txt", translate("ABP规则")) +e:value("fanboy.txt", translate("fanboy规则")) +e:value("yhosts.txt", translate("yhosts规则")) +e:value("kp.dat", translate("视频规则")) +e:value("user.txt", translate("自定义规则")) + +e = t:taboption("base", ListValue, "koolproxy_port", translate("端口控制")) +e.default = 0 +e.rmempty = false +e:value(0, translate("关闭")) +e:value(1, translate("开启")) + +e = t:taboption("base", ListValue, "koolproxy_ipv6", translate("IPv6支持")) +e.default = 0 +e.rmempty = false +e:value(0, translate("关闭")) +e:value(1, translate("开启")) + +e = t:taboption("base", Value, "koolproxy_bp_port", translate("例外端口")) +e:depends("koolproxy_port", "1") +e.rmempty = false +e.description = translate(string.format("单端口:80  多端口:80,443")) + +e=t:taboption("base",Flag,"koolproxy_host",translate("开启Adblock Plus Hosts")) +e.default=0 +e:depends("koolproxy_mode","2") + + +e = t:taboption("base", ListValue, "koolproxy_acl_default", translate("默认访问控制")) +e.default = 1 +e.rmempty = false +e:value(0, translate("不过滤")) +e:value(1, translate("过滤HTTP协议")) +e:value(2, translate("过滤HTTP(S)协议")) +e:value(3, translate("全部过滤")) +e.description = translate(string.format("访问控制设置中其他主机的默认规则")) + +e = t:taboption("base", ListValue, "time_update", translate("定时更新")) +for t = 0,23 do + e:value(t,translate("每天"..t.."点")) +end +e.default = 0 +e.rmempty = false +e.description = translate(string.format("定时更新订阅规则与Adblock Plus Hosts")) + +e = t:taboption("base", Button, "restart", translate("规则状态")) +e.inputtitle = translate("更新规则") +e.inputstyle = "reload" +e.write = function() + luci.sys.call("/usr/share/koolproxy/kpupdate 2>&1 >/dev/null") + luci.http.redirect(luci.dispatcher.build_url("admin","services","koolproxy")) +end +e.description = translate(string.format("更新订阅规则与Adblock Plus Hosts
ABP规则: %s条
fanboy规则: %s条
yhosts规则: %s条
自定义规则: %s条
Host: %s条

", s, u, p, h, i)) +t:tab("cert",translate("Certificate Management")) + +e=t:taboption("cert",DummyValue,"c1status",translate("
Certificate Restore
")) +e=t:taboption("cert",FileUpload,"") +e.template="koolproxy/caupload" +e=t:taboption("cert",DummyValue,"",nil) +e.template="koolproxy/cadvalue" +if nixio.fs.access("/usr/share/koolproxy/data/certs/ca.crt")then + e=t:taboption("cert",DummyValue,"c2status",translate("
Certificate Backup
")) + e=t:taboption("cert",Button,"certificate") + e.inputtitle=translate("Backup Download") + e.inputstyle="reload" + e.write=function() + luci.sys.call("/usr/share/koolproxy/camanagement backup 2>&1 >/dev/null") + Download() + luci.http.redirect(luci.dispatcher.build_url("admin","services","koolproxy")) + end +end + + +t:tab("white_weblist",translate("网站白名单设置")) + +local i = "/etc/adblocklist/adbypass" +e = t:taboption("white_weblist", TextValue, "adbypass_domain") +e.description = translate("这些已经加入的网站将不会使用过滤器。请输入网站的域名,每行只能输入一个网站域名。例如google.com。") +e.rows = 28 +e.wrap = "off" +e.rmempty = false + +function e.cfgvalue() + return fs.readfile(i) or "" +end + +function e.write(self, section, value) + if value then + value = value:gsub("\r\n", "\n") + else + value = "" + end + fs.writefile("/tmp/adbypass", value) + if (luci.sys.call("cmp -s /tmp/adbypass /etc/adblocklist/adbypass") == 1) then + fs.writefile(i, value) + end + fs.remove("/tmp/adbypass") +end + +t:tab("weblist",translate("Set Backlist Of Websites")) + +local i = "/etc/adblocklist/adblock" +e = t:taboption("weblist", TextValue, "adblock_domain") +e.description = translate("加入的网址将走广告过滤端口。只针对黑名单模式。只能输入WEB地址,如:google.com,每个地址一行。") +e.rows = 28 +e.wrap = "off" +e.rmempty = false + +function e.cfgvalue() + return fs.readfile(i) or "" +end + +function e.write(self, section, value) + if value then + value = value:gsub("\r\n", "\n") + else + value = "" + end + fs.writefile("/tmp/adblock", value) + if (luci.sys.call("cmp -s /tmp/adblock /etc/adblocklist/adblock") == 1) then + fs.writefile(i, value) + end + fs.remove("/tmp/adblock") +end + +t:tab("white_iplist",translate("IP白名单设置")) + +local i = "/etc/adblocklist/adbypassip" +e = t:taboption("white_iplist", TextValue, "adbypass_ip") +e.description = translate("这些已加入的ip地址将使用代理,但只有GFW型号。请输入ip地址或ip地址段,每行只能输入一个ip地址。例如,112.123.134.145 / 24或112.123.134.145。") +e.rows = 28 +e.wrap = "off" +e.rmempty = false + +function e.cfgvalue() + return fs.readfile(i) or "" +end + +function e.write(self, section, value) + if value then + value = value:gsub("\r\n", "\n") + else + value = "" + end + fs.writefile("/tmp/adbypassip", value) + if (luci.sys.call("cmp -s /tmp/adbypassip /etc/adblocklist/adbypassip") == 1) then + fs.writefile(i, value) + end + fs.remove("/tmp/adbypassip") +end + +t:tab("iplist",translate("IP黑名单设置")) + +local i = "/etc/adblocklist/adblockip" +e = t:taboption("iplist", TextValue, "adblock_ip") +e.description = translate("这些已经加入的ip地址不会使用filter.Please输入ip地址或ip地址段,每行只能输入一个ip地址。例如,112.123.134.145 / 24或112.123.134.145。") +e.rows = 28 +e.wrap = "off" +e.rmempty = false + +function e.cfgvalue() + return fs.readfile(i) or "" +end + +function e.write(self, section, value) + if value then + value = value:gsub("\r\n", "\n") + else + value = "" + end + fs.writefile("/tmp/adblockip", value) + if (luci.sys.call("cmp -s /tmp/adblockip /etc/adblocklist/adblockip") == 1) then + fs.writefile(i, value) + end + fs.remove("/tmp/adblockip") +end + +t:tab("customlist", translate("Set Backlist Of custom")) + +local i = "/usr/share/koolproxy/data/user.txt" +e = t:taboption("customlist", TextValue, "user_rule") +e.description = translate("Enter your custom rules, each row.") +e.rows = 28 +e.wrap = "off" +e.rmempty = false + +function e.cfgvalue() + return fs.readfile(i) or "" +end + +function e.write(self, section, value) + if value then + value = value:gsub("\r\n", "\n") + else + value = "" + end + fs.writefile("/tmp/user.txt", value) + if (luci.sys.call("cmp -s /tmp/user.txt /usr/share/koolproxy/data/user.txt") == 1) then + fs.writefile(i, value) + end + fs.remove("/tmp/user.txt") +end + +t:tab("logs",translate("View the logs")) + +local i = "/var/log/koolproxy.log" +e = t:taboption("logs", TextValue, "kpupdate_log") +e.description = translate("Koolproxy Logs") +e.rows = 28 +e.wrap = "off" +e.rmempty = false + +function e.cfgvalue() + return fs.readfile(i) or "" +end + +function e.write(self, section, value) +end + +t=o:section(TypedSection,"acl_rule",translate("KoolProxyR 访问控制"), +translate("ACLs is a tools which used to designate specific IP filter mode,The MAC addresses added to the list will be filtered using https")) +t.template="cbi/tblsection" +t.sortable=true +t.anonymous=true +t.addremove=true +e=t:option(Value,"remarks",translate("Client Remarks")) +e.width="30%" +e.rmempty=true +e=t:option(Value,"ipaddr",translate("IP Address")) +e.width="20%" +e.datatype="ip4addr" +luci.ip.neighbors({family = 4}, function(neighbor) + if neighbor.reachable then + e:value(neighbor.dest:string(), "%s (%s)" %{neighbor.dest:string(), neighbor.mac}) + end +end) +e=t:option(Value,"mac",translate("MAC Address")) +e.width="20%" +e.rmempty=true +e.datatype="macaddr" +luci.ip.neighbors({family = 4}, function(neighbor) + if neighbor.reachable then + e:value(neighbor.mac, "%s (%s)" %{neighbor.mac, neighbor.dest:string()}) + end +end) +e=t:option(ListValue,"proxy_mode",translate("访问控制")) +e.width="20%" +e.default=1 +e.rmempty=false +e:value(0,translate("不过滤")) +e:value(1,translate("http only")) +e:value(2,translate("http + https")) +e:value(3,translate("full port")) + + + + + +t=o:section(TypedSection,"rss_rule",translate("KoolProxyR 规则订阅"), translate("请确保订阅规则的兼容性")) +t.anonymous=true +t.addremove=true +t.sortable=true +t.template="cbi/tblsection" +t.extedit=luci.dispatcher.build_url("admin/services/koolproxy/rss_rule/%s") + +t.create=function(...) + local sid=TypedSection.create(...) + if sid then + luci.http.redirect(t.extedit % sid) + return + end +end + +e=t:option(Flag,"load",translate("启用")) +e.default=0 +e.rmempty=false + +e=t:option(DummyValue,"name",translate("规则名称")) +function e.cfgvalue(...) + return Value.cfgvalue(...) or translate("None") +end + +e=t:option(DummyValue,"url",translate("规则地址")) +function e.cfgvalue(...) + return Value.cfgvalue(...) or translate("None") +end + +e=t:option(DummyValue,"time",translate("更新时间")) + +function Download() + local t,e + t=nixio.open("/tmp/upload/koolproxyca.tar.gz","r") + luci.http.header('Content-Disposition','attachment; filename="koolproxyCA.tar.gz"') + luci.http.prepare_content("application/octet-stream") + while true do + e=t:read(nixio.const.buffersize) + if(not e)or(#e==0)then + break + else + luci.http.write(e) + end + end + t:close() + luci.http.close() +end +local t,e +t="/tmp/upload/" +nixio.fs.mkdir(t) +luci.http.setfilehandler( +function(o,a,i) + if not e then + if not o then return end + e=nixio.open(t..o.file,"w") + if not e then + return + end + end + if a and e then + e:write(a) + end + if i and e then + e:close() + e=nil + luci.sys.call("/usr/share/koolproxy/camanagement restore 2>&1 >/dev/null") + end +end +) + +t=o:section(TypedSection,"rss_rule",translate("Technical Support"),translate("本软件由KPR提供技术支持")) + +t.anonymous = true + +e=t:option(Button, "webe") +e.title = translate("koolproxyR开源项目") +e.inputtitle = translate("点击前往") +e.inputstyle = "apply" +e.write = function() + luci.http.redirect("https://github.com/user1121114685/koolproxyR") +end +e=t:option(Button, "web") +e.title = translate("koolproxyR使用说明") +e.inputtitle = translate("点击前往") +e.inputstyle = "apply" +e.write = function() + luci.http.redirect("https://shaoxia.xyz/post/koolproxyr%E6%8C%87%E5%8D%97/") +end +e=t:option(Button, "Donate") +e.title = translate("koolproxyR交流群") +e.inputtitle = translate("加入telegram群") +e.inputstyle = "apply" +e.write = function() + luci.http.redirect("https://t.me/koolproxyR") +end + +return o diff --git a/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/model/cbi/koolproxy/rss_rule.lua b/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/model/cbi/koolproxy/rss_rule.lua new file mode 100644 index 0000000000..b8cca5a59e --- /dev/null +++ b/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/model/cbi/koolproxy/rss_rule.lua @@ -0,0 +1,36 @@ +local m, s, o +local koolproxy = "koolproxy" +local sid = arg[1] + +m = Map(koolproxy, "%s - %s" %{translate("koolproxy"), translate("编辑规则")}) +m.redirect = luci.dispatcher.build_url("admin/services/koolproxy") + +if not arg[1] or m.uci:get(koolproxy, sid) ~= "rss_rule" then + luci.http.redirect(m.redirect) + return +end + +-- [[ Edit Rule ]]-- +s = m:section(NamedSection, sid, "rss_rule") +s.anonymous = true +s.addremove = true + +o=s:option(Flag,"load",translate("启用")) +o.default=0 +o.rmempty=false + +o=s:option(Value,"name",translate("规则描述")) +o.rmempty=true + +o=s:option(Value,"url",translate("规则地址")) +o.rmempty=false +o.placeholder="[https|http|ftp]://[Hostname]/[File]" +function o.validate(self, value) + if not value then + return nil + else + return value + end +end + +return m diff --git a/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/view/koolproxy/cadvalue.htm b/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/view/koolproxy/cadvalue.htm new file mode 100644 index 0000000000..73a617d846 --- /dev/null +++ b/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/view/koolproxy/cadvalue.htm @@ -0,0 +1,8 @@ +<%+cbi/valueheader%> + +<% + local val = self:cfgvalue(section) or self.default or "" + write(pcdata(val)) +%> + +<%+cbi/valuefooter%> diff --git a/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/view/koolproxy/caupload.htm b/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/view/koolproxy/caupload.htm new file mode 100644 index 0000000000..73b0f132d3 --- /dev/null +++ b/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/view/koolproxy/caupload.htm @@ -0,0 +1,5 @@ +<%+cbi/valueheader%> +
+ + +<%+cbi/valuefooter%> diff --git a/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/view/koolproxy/dvalue.htm b/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/view/koolproxy/dvalue.htm new file mode 100644 index 0000000000..ff41179793 --- /dev/null +++ b/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/view/koolproxy/dvalue.htm @@ -0,0 +1,3 @@ +<%+cbi/valueheader%> +<%=pcdata(self:cfgvalue(section) or self.default or "")%> +<%+cbi/valuefooter%> diff --git a/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/view/koolproxy/index.htm b/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/view/koolproxy/index.htm new file mode 100644 index 0000000000..c34e4215d3 --- /dev/null +++ b/package/ctcgfw/luci-app-koolproxyR/files/usr/lib/lua/luci/view/koolproxy/index.htm @@ -0,0 +1,16 @@ +<%# + Copyright 2016 Chen RuiWei + Licensed to the public under the Apache License 2.0. +-%> + +<% include("cbi/map") %> + diff --git a/package/ctcgfw/luci-app-koolproxyR/files/usr/sbin/adblockplus b/package/ctcgfw/luci-app-koolproxyR/files/usr/sbin/adblockplus new file mode 100755 index 0000000000..f7d530ee9f --- /dev/null +++ b/package/ctcgfw/luci-app-koolproxyR/files/usr/sbin/adblockplus @@ -0,0 +1,23 @@ +#!/bin/sh +echo "$(date "+%F %T"): 正在下载adblockplus规则..." +wget-ssl --quiet --no-check-certificate https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt -O /tmp/adlist.txt +if [ "$?" == "0" ]; then + grep ^\|\|[^\*]*\^$ /tmp/adlist.txt | sed -e 's:||:address\=\/:' -e 's:\^:/0\.0\.0\.0:' > /tmp/dnsmasq.adblock + rm -f /tmp/adlist.txt + diff /tmp/dnsmasq.adblock /usr/share/koolproxy/dnsmasq.adblock >/dev/null + [ $? = 0 ] && echo "$(date "+%F %T"): adblockplus本地规则和服务器规则相同,无需更新!" && rm -f /tmp/dnsmasq.adblock && return 1 + echo "$(date "+%F %T"): 检测到adblockplus规则有更新,开始转换规则!" + sed -i '/youku/d' /tmp/dnsmasq.adblock >/dev/null 2>&1 + sed -i '/[1-9]\{1,3\}\.[1-9]\{1,3\}\.[1-9]\{1,3\}\.[1-9]\{1,3\}/d' /tmp/dnsmasq.adblock >/dev/null 2>&1 + mv /tmp/dnsmasq.adblock /usr/share/koolproxy/dnsmasq.adblock + echo "$(date "+%F %T"): adblockplus规则转换完成,应用新规则。" + echo "" + echo "$(date "+%F %T"): 重启dnsmasq进程" + /etc/init.d/dnsmasq restart > /dev/null 2>&1 + + return 0 +else + echo "$(date "+%F %T"): 获取在线版本时出现错误! " + [ -f /tmp/adlist.txt ] && rm -f /tmp/adlist.txt + return 1 +fi diff --git a/package/ctcgfw/luci-app-koolproxyR/files/usr/share/koolproxy/adblock.conf b/package/ctcgfw/luci-app-koolproxyR/files/usr/share/koolproxy/adblock.conf new file mode 100644 index 0000000000..e69de29bb2 diff --git a/package/ctcgfw/luci-app-koolproxyR/files/usr/share/koolproxy/camanagement b/package/ctcgfw/luci-app-koolproxyR/files/usr/share/koolproxy/camanagement new file mode 100755 index 0000000000..07b7d85a88 --- /dev/null +++ b/package/ctcgfw/luci-app-koolproxyR/files/usr/share/koolproxy/camanagement @@ -0,0 +1,66 @@ +#!/bin/sh +kpfolder="/usr/share/koolproxy/data" +kplogfile="/var/log/koolproxy.log" +readyfolder="/tmp/upload/koolproxy" + +backup() { + if [ ! -f $kpfolder/private/ca.key.pem ]; then + echo "未找到ca.key.pem,请先运行Koolproxy一次!" > $kplogfile + exit 1 + fi + if [ ! -f $kpfolder/private/base.key.pem ]; then + echo "未找到base.key.pem,请先运行Koolproxy一次!" > $kplogfile + exit 1 + fi + if [ ! -f $kpfolder/certs/ca.crt ]; then + echo "未找到ca.crt,请先运行Koolproxy一次!" > $kplogfile + exit 1 + fi + + mkdir -p /tmp/upload + cd $kpfolder + tar czf /tmp/upload/koolproxyca.tar.gz private/ca.key.pem private/base.key.pem certs/ca.crt + [ -f /tmp/upload/koolproxyca.tar.gz ] && echo "证书备份已成功生成。" > $kplogfile +} + +restore() { + if [ ! -f /tmp/upload/koolproxyCA.tar.gz ]; then + echo "未找到备份文件,文件名必须为koolproxyCA.tar.gz或已损坏,请检查备份文件!" >> $kplogfile + else + mkdir -p $readyfolder + cd $readyfolder + tar xzf /tmp/upload/koolproxyCA.tar.gz + fi + if [ ! -f $readyfolder/private/ca.key.pem ]; then + echo "未找到ca.key.pem,备份文件不正确或已损坏,请检查备份文件!" > $kplogfile + exit 1 + fi + if [ ! -f $readyfolder/private/base.key.pem ]; then + echo "未找到base.key.pem,备份文件不正确或已损坏,请检查备份文件!" > $kplogfile + exit 1 + fi + if [ ! -f $readyfolder/certs/ca.crt ]; then + echo "未找到ca.crt,备份文件不正确或已损坏,请检查备份文件!" > $kplogfile + exit 1 + fi + + mv -f $readyfolder/private/ca.key.pem $kpfolder/private/ca.key.pem + mv -f $readyfolder/private/base.key.pem $kpfolder/private/base.key.pem + mv -f $readyfolder/certs/ca.crt $kpfolder/certs/ca.crt + rm -rf $readyfolder + rm -f /tmp/upload/koolproxyCA.tar.gz + echo "证书成功还原,重启Koolproxy。" > $kplogfile + /etc/init.d/koolproxy restart +} + +case "$*" in + "backup") + backup + ;; + "restore") + restore + ;; + "help") + echo "use backup or restore" + ;; +esac diff --git a/package/ctcgfw/luci-app-koolproxyR/files/usr/share/koolproxy/data/gen_ca.sh b/package/ctcgfw/luci-app-koolproxyR/files/usr/share/koolproxy/data/gen_ca.sh new file mode 100755 index 0000000000..3cf3c20fd6 --- /dev/null +++ b/package/ctcgfw/luci-app-koolproxyR/files/usr/share/koolproxy/data/gen_ca.sh @@ -0,0 +1,29 @@ +#!/bin/sh +alias echo_date='echo $(date +%Y年%m月%d日\ %X):' + +if [ ! -f openssl.cnf ]; then + echo_date "Cannot found openssl.cnf" + exit 1 +fi +if [ -f /usr/share/koolproxy/data/private/ca.key.pem ]; then + echo_date "已经有证书了!" +else + echo_date "生成证书中..." + + #step 1, root ca + mkdir -p certs private + rm -f serial private/ca.key.pem + chmod 700 private + echo 1000 > serial + openssl genrsa -aes256 -passout pass:koolshare -out private/ca.key.pem 2048 + chmod 400 private/ca.key.pem + openssl req -config openssl.cnf -passin pass:koolshare \ + -subj "/C=CN/ST=Beijing/L=KP/O=KoolProxy inc/CN=koolproxy.com" \ + -key private/ca.key.pem \ + -new -x509 -days 7300 -sha256 -extensions v3_ca \ + -out certs/ca.crt + + #step 2, domain rsa key + openssl genrsa -aes256 -passout pass:koolshare -out private/base.key.pem 2048 + echo_date "证书生成完毕..." +fi diff --git a/package/ctcgfw/luci-app-koolproxyR/files/usr/share/koolproxy/data/openssl.cnf b/package/ctcgfw/luci-app-koolproxyR/files/usr/share/koolproxy/data/openssl.cnf new file mode 100755 index 0000000000..e17544d08c --- /dev/null +++ b/package/ctcgfw/luci-app-koolproxyR/files/usr/share/koolproxy/data/openssl.cnf @@ -0,0 +1,132 @@ +# OpenSSL root CA configuration file. +# Copy to `/root/ca/openssl.cnf`. + +[ ca ] +# `man ca` +default_ca = CA_default + +[ CA_default ] +# Directory and file locations. +dir = ./ca +certs = $dir/certs +crl_dir = $dir/crl +new_certs_dir = $dir/newcerts +database = $dir/index.txt +serial = $dir/serial +RANDFILE = $dir/private/.rand + +# The root key and root certificate. +private_key = $dir/private/ca.key.pem +certificate = $dir/certs/ca.cert.pem + +# For certificate revocation lists. +crlnumber = $dir/crlnumber +crl = $dir/crl/ca.crl.pem +crl_extensions = crl_ext +default_crl_days = 30 + +# SHA-1 is deprecated, so use SHA-2 instead. +default_md = sha256 + +name_opt = ca_default +cert_opt = ca_default +default_days = 375 +preserve = no +policy = policy_strict + +[ policy_strict ] +# The root CA should only sign intermediate certificates that match. +# See the POLICY FORMAT section of `man ca`. +countryName = match +stateOrProvinceName = match +organizationName = match +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +[ policy_loose ] +# Allow the intermediate CA to sign a more diverse range of certificates. +# See the POLICY FORMAT section of the `ca` man page. +countryName = optional +stateOrProvinceName = optional +localityName = optional +organizationName = optional +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +[ req ] +# Options for the `req` tool (`man req`). +default_bits = 2048 +distinguished_name = req_distinguished_name +string_mask = utf8only + +# SHA-1 is deprecated, so use SHA-2 instead. +default_md = sha256 + +# Extension to add when the -x509 option is used. +x509_extensions = v3_ca + +[ req_distinguished_name ] +# See . +countryName = Country Name (2 letter code) +stateOrProvinceName = State or Province Name +localityName = Locality Name +0.organizationName = Organization Name +organizationalUnitName = Organizational Unit Name +commonName = Common Name +emailAddress = Email Address + +# Optionally, specify some defaults. +countryName_default = GB +stateOrProvinceName_default = England +localityName_default = +0.organizationName_default = Alice Ltd +organizationalUnitName_default = +emailAddress_default = + +[ v3_ca ] +# Extensions for a typical CA (`man x509v3_config`). +subjectKeyIdentifier = hash +authorityKeyIdentifier = keyid:always,issuer +basicConstraints = critical, CA:true +keyUsage = critical, digitalSignature, cRLSign, keyCertSign + +[ v3_intermediate_ca ] +# Extensions for a typical intermediate CA (`man x509v3_config`). +subjectKeyIdentifier = hash +authorityKeyIdentifier = keyid:always,issuer +basicConstraints = critical, CA:true, pathlen:0 +keyUsage = critical, digitalSignature, cRLSign, keyCertSign + +[ usr_cert ] +# Extensions for client certificates (`man x509v3_config`). +basicConstraints = CA:FALSE +nsCertType = client, email +nsComment = "OpenSSL Generated Client Certificate" +subjectKeyIdentifier = hash +authorityKeyIdentifier = keyid,issuer +keyUsage = critical, nonRepudiation, digitalSignature, keyEncipherment +extendedKeyUsage = clientAuth, emailProtection + +[ server_cert ] +# Extensions for server certificates (`man x509v3_config`). +basicConstraints = CA:FALSE +nsCertType = server +nsComment = "OpenSSL Generated Server Certificate" +subjectKeyIdentifier = hash +authorityKeyIdentifier = keyid,issuer:always +keyUsage = critical, digitalSignature, keyEncipherment +extendedKeyUsage = serverAuth + +[ crl_ext ] +# Extension for CRLs (`man x509v3_config`). +authorityKeyIdentifier=keyid:always + +[ ocsp ] +# Extension for OCSP signing certificates (`man ocsp`). +basicConstraints = CA:FALSE +subjectKeyIdentifier = hash +authorityKeyIdentifier = keyid,issuer +keyUsage = critical, digitalSignature +extendedKeyUsage = critical, OCSPSigning diff --git a/package/ctcgfw/luci-app-koolproxyR/files/usr/share/koolproxy/data/rules/easylistchina.txt b/package/ctcgfw/luci-app-koolproxyR/files/usr/share/koolproxy/data/rules/easylistchina.txt new file mode 100644 index 0000000000..9a47c37254 --- /dev/null +++ b/package/ctcgfw/luci-app-koolproxyR/files/usr/share/koolproxy/data/rules/easylistchina.txt @@ -0,0 +1,27813 @@ +[Adblock Plus 2.0] +! Checksum: uP11DneJS9+YELPpFuiAbQ +! Version: 201908301442 +! Title: EasyList China +! Chinese supplement for the EasyList filters +||https://last2.cn^$third-party +||https://0082tv.net^$third-party +||https://012.tw^$third-party +||https://033.com^$third-party +||https://0591101.com^$third-party +||https://0756j.com^$third-party +||https://0xiaoshuo.com^$third-party +||https://100cpc.com^$third-party +||https://103.249.111.179^$third-party +||https://110160.com^$third-party +||https://1133.cc^$third-party +||https://114la.com^$third-party +||https://114lm.com^$third-party +||https://114yeah.com^$third-party +||https://115.29.148.61^$third-party +||https://116b.com^$third-party +||https://118114.cn^$third-party +||https://1188.com^$third-party +||https://12291.com^$third-party +||https://12l22.net^$third-party +||https://139site.com^$third-party +||https://1503.net/code/ +||https://17zhaole.com^$third-party +||https://189.cn^*/push/$third-party +||https://189.gd^*.html$third-party +||https://1lo0.net^$third-party +||https://1qwe3r.com^$third-party +||https://1v7.cn^$third-party +||https://1x3x.com^$third-party +||https://210.65.10.32^$third-party +||https://2155ec.com^$third-party +||https://217wo.com^$third-party +||https://235123.net^$third-party +||https://23kmm.com^$third-party +||https://2529.com^$third-party +||https://2898.com^$third-party +||https://2f.com^$third-party +||https://321tui.cn^$third-party +||https://321tui.com^$third-party +||https://32414.com^$third-party +||https://3324.cn^$third-party +||https://3399.com/act/$third-party +||https://3600ys.com^$third-party +||https://360366.net^$third-party +||https://360doo.com^$third-party +||https://36500.com^$third-party +||https://36500.net^$third-party +||https://3798.com^$third-party +||https://37cs.com^$third-party +||https://37pk49.com^$third-party +||https://3808010.com/code$third-party +||https://3839168.com^$third-party +||https://38ra.com^$third-party +||https://3975lm.com^$third-party +||https://3alian.net^$third-party +||https://3dwwwgame.com^$third-party +||https://3p-link.com^$third-party +||https://3vlm.com^$third-party +||https://44pv.com^$third-party +||https://4936.cn^$third-party +||https://49ko.com^$third-party +||https://4kt2.com^$subdocument +||https://50bang.org^$third-party +||https://5188yy.com^$third-party +||https://51ads.com^$third-party +||https://51gugu.com^$third-party +||https://51junpin.net^$third-party +||https://525cm.com^$third-party +||https://526d.com^$third-party +||https://52kmh.com^$third-party +||https://52lover.info^$third-party +||https://5399.com^$third-party +||https://55803.net^$third-party +||https://565882.com^$third-party +||https://59519.com^$third-party +||https://59hi.com^$third-party +||https://5leji.com^$third-party +||https://5mnh.com^$third-party +||https://61.160.200. +||https://63kc.com^$third-party +||https://6604.org^$third-party +||https://668559.com^$third-party +||https://6789.net^$third-party +||https://67lm.com^$third-party +||https://685wo.com^$script,third-party +||https://6dad.com^$third-party +||https://6travel.com^$third-party +||https://70e.com^$third-party +||https://710070.com^$third-party +||https://7540.com^$third-party +||https://7676.com^$third-party +||https://7794.com^$third-party +||https://77zhuan.com^$third-party +||https://788xj.com^$third-party +||https://7bwan.com^$third-party +||https://7clink.com^$third-party +||https://7dlm.cn^$third-party +||https://7o2o.com^$third-party +||https://8080i.com^$third-party +||https://810236.com^$third-party +||https://857yx.com^$third-party +||https://85un.com^$third-party +||https://88cpc.com^$third-party +||https://88shu.cn^$third-party +||https://88ysg.com^$third-party +||https://8910ad.com^$third-party +||https://8le8le.com^$third-party +||https://911.cc^$third-party +||https://913h6.cn^$third-party +||https://9158918.com^$third-party +||https://91lmgg.com^$third-party +||https://941adu.com^$third-party +||https://9519.net^$third-party +||https://9639927.com^$third-party +||https://96518.org^$third-party +||https://9665yx.com^$third-party +||https://9669.com^$script,third-party +||https://9718.com^$third-party +||https://980th.com^$third-party +||https://9ads.net^$third-party +||https://9ead.com^$third-party +||https://9w1an.com^$third-party +||https://9w39.com^$third-party +||https://9xu.com^$third-party +||https://a3p4.com^$third-party +||https://a7shun.com^$third-party +||https://acgbase.com^$third-party +||https://achicih.gitee.io^$third-party +||https://acs86.com^$third-party +||https://ad-plus.cn^$third-party +||https://ad-survey.com^$third-party +||https://ad8.cc^$third-party +||https://adbxb.com^$third-party +||https://adchina.cc^$third-party +||https://adconfer.com^$third-party +||https://adfeifan.com^$third-party +||https://adhouyi.com^$third-party +||https://adkongjian.com^$third-party +||https://adm.cnzz.net^$third-party +||https://admaji.com^$third-party +||https://admartzone.com^$third-party +||https://admin6.com^$third-party +||https://adnow.cc^$third-party +||https://adondemand.com^$third-party +||https://adpro.cn^$third-party +||https://adpush.cn^$third-party +||https://adreep.cn^$third-party +||https://ads80.com^$third-party +||https://adsage.com^$third-party +||https://adsbro.com^$third-party +||https://adt100.com^$third-party +||https://adunioncode.com^$third-party +||https://adunite.com^$third-party +||https://adver.com.tw^$third-party +||https://adxiaozi.com^$third-party +||https://adxxx.com^$third-party +||https://adyun.com^$third-party +||https://affiliate.rakuten.co.jp^$third-party +||https://agrantsem.com^$third-party +||https://aguo.com^$third-party +||https://agxclick.com^$third-party +||https://aiclicash.com^$third-party +||https://aidaicn.com^$third-party +||https://aifei.info^$third-party +||https://aimato.com^$third-party +||https://ajhdf.com^$third-party +||https://alimama.cn^$third-party +||https://alllget.com^$third-party +||https://allyes.$third-party +||https://andmejs.com^$third-party +||https://aomeng.net^$third-party +||https://aoparking.com^$third-party +||https://at918.com^$third-party +||https://av8d.net^$third-party +||https://awifi.cn^$third-party +||https://b5h7.com^$third-party +||https://baidu360haosou.info^$third-party +||https://baitaiad.com^$third-party +||https://baizhu.cc^$third-party +||https://balmoralmkt.com^$third-party +||https://bang5mai.com^$third-party +||https://baodaozhan.cn^$third-party +||https://behe.com^$third-party +||https://bianxianmao.com^$third-party +||https://biddingx.com^$third-party +||https://biquge22.com^$third-party +||https://birdmedia.com^$third-party +||https://bjxiaohua.com^$third-party +||https://blogad.com.tw^$third-party +||https://bloggerads.net^$third-party +||https://bmw100.cn^$third-party +||https://bnuni.com^$third-party +||https://books.com.tw/exep/ap/$third-party +||https://bs777.net^$third-party +||https://bskchina.cn/js/ +||https://bttyue.com^$subdocument +||https://btyou.com^$third-party +||https://buzzads.com^$third-party +||https://c.91wan.com^$third-party +||https://caiyifz.com^$third-party +||https://cardniu.com^$third-party +||https://chanet.com.cn^$third-party +||https://chapm.com^$third-party +||https://che0.com^$third-party +||https://chengruide.com^$third-party +||https://chinauma.net^$third-party +||https://chinesean.com^$third-party +||https://cifenqi.com^$third-party +||https://cloudad.asia^$third-party +||https://cnxad.com^$third-party +||https://coinadv.com^$third-party +||https://coolnay.com^$third-party +||https://coostack.com^$third-party +||https://cpc.cc^$third-party +||https://cpm360.com^$third-party +||https://cr-nielsen.com^$third-party +||https://crazymike.tw^$third-party +||https://cs.37see.com^$third-party +||https://csad.cc^$third-party +||https://csbew.com^$third-party +||https://cxxtv.com^$third-party +||https://d1ad.com^$third-party +||https://d8360.com^$third-party +||https://dcxmy.com^$third-party +||https://dddddd.net^$third-party +||https://df9377.com^$third-party +||https://dian500.com^$third-party +||https://dian5000.com^$third-party +||https://dianxin.com^$third-party +||https://dingge.cc^$third-party +||https://displink.com^$third-party +||https://dlads.cn^$third-party +||https://dm1080p.com^$third-party +||https://dmtrck.com^$third-party +||https://doniv.net^$third-party +||https://dotmore.com.tw^$third-party +||https://doubleadv.com^$third-party +||https://drwzn.com^$third-party +||https://duomai.com^$third-party +||https://dushimj.com^$third-party +||https://dxpmedia.com^$third-party +||https://dyhs52.com^$third-party +||https://dzsstye.com^$third-party +||https://ea3721.com^$third-party +||https://easou.com^$third-party +||https://ee4kdushuba.com^$third-party +||https://eeyy.com^$third-party +||https://egooad.com^$third-party +||https://ejin56.com^$third-party +||https://elsad.tw^$third-party +||https://emarbox.com^$third-party +||https://eyouv.cn^$third-party +||https://ez33.com^$third-party +||https://f11w.com^$third-party +||https://f1zd.com^$third-party +||https://f8272.com^$third-party +||https://fadama.com^$third-party +||https://fage1.club^$third-party +||https://feitian001.com^$third-party +||https://fengxiangstore.com^$third-party +||https://findqc.com^$third-party +||https://flashwing.net^$third-party +||https://fmad.cc^$third-party +||https://food5.net^$third-party +||https://fxxgw.com^$third-party +||https://g35.cc^$third-party +||https://g3user.com^$third-party +||https://game3737.com^$third-party +||https://gamecps.com^$third-party +||https://gameone.com^$third-party +||https://gansha.co^$third-party +||https://gclick.cn^$third-party +||https://gd.189.cn^*.htm?SP=$third-party +||https://gdxxb.com^$third-party +||https://genieesspv.jp^$third-party +||https://geotmt.com^$third-party +||https://gf1353.com^$third-party +||https://ggmm777.com^$third-party +||https://ggxt.net^$third-party +||https://gohappy.com.tw^$third-party +||https://googleadsl.com^$third-party +||https://gotonav.com^$third-party +||https://gowinxp.com^$third-party +||https://gs307.com^$third-party +||https://gugeys.com^$third-party +||https://gzbywl.com^$third-party +||https://h501.cn^$third-party +||https://hailuoxiang.com^$third-party +||https://haiyunx.com^$third-party +||https://hao123union.baidu.com^$third-party +||https://hao222.com^$third-party +||https://haoba.info^$third-party +||https://haomm.com^$third-party +||https://haoqq.me^$third-party +||https://haosf.com^$third-party +||https://haoyiwang.net^$third-party +||https://hauchi.com.tw^$third-party +||https://hbsimg.com^$third-party +||https://heima8.com^$third-party +||https://hen360.com^$third-party +||https://hn163fck.com^$third-party +||https://hsmkj.net^$third-party +||https://htg-x.com^$third-party +||https://huimee.com^$third-party +||https://hwmwin.com^$third-party +||https://hxqu.com^$third-party +||https://hy-cn.cn/index.php? +||https://hz3137.com^$third-party +||https://i000o.com^$third-party +||https://i3z.cn^$third-party +||https://icast.cn^$third-party +||https://icolor8.com^$third-party +||https://iee5.com^$third-party +||https://ifocus.cn^$third-party +||https://igo5.cc^$third-party +||https://iguang.tw^$third-party +||https://ilepai.com^$third-party +||https://image.qndown.com^$third-party +||https://img.uu1001.cn^$third-party +||https://index8.cn^$third-party +||https://instreet.cn^$third-party +||https://intentarget.com^$third-party +||https://ipaypay.cn^$third-party +||https://iprefer.com.tw^$third-party +||https://is686.com^$third-party +||https://istcg.com^$third-party +||https://istreamsche.com^$third-party +||https://itechwall.com^$third-party +||https://j8j9.com^$third-party +||https://jianglishi.cn^$third-party +||https://jiankang13.com^$third-party +||https://jisucn.com^$third-party +||https://jiudianhudong.com^$third-party +||https://jiuzhilan.com^$third-party +||https://jixian360.com^$third-party +||https://jixing8.com^$third-party +||https://jixing8.net^$third-party +||https://jntmedia.cn^$third-party +||https://jointreport-switch.com^$third-party +||https://jsinfo.net^$third-party +||https://jsjxhd.com^$third-party +||https://jsmbaidu.com^$third-party +||https://jsyd139.com^$third-party +||https://jtxh.net^$third-party +||https://ju33.com^$third-party +||https://juandou.com^$third-party +||https://juejdkio.com^$third-party +||https://juhepen.com^$third-party +||https://junnew.com^$third-party +||https://jusha.com^$third-party +||https://juxiangyou.com^$third-party +||https://k3851.com^$third-party +||https://kaixinjiehun.com^$third-party +||https://kakayy.com^$third-party +||https://kdly.net^$third-party +||https://kefeng56.com^$third-party +||https://kejet.$third-party +||https://keydot.net^$third-party +||https://keyrun.cn^$third-party +||https://khgj.cn^$third-party +||https://kiees.com^$image,subdocument,third-party +||https://kiwihk.net^$third-party +||https://koopei.com^$third-party +||https://ku63.com^$third-party +||https://kuaizitech.com^$third-party +||https://kuqi.com^$third-party +||https://lanmogu.net^$third-party +||https://le123.cn^$third-party +||https://letaoxiaochi.com^$third-party +||https://leturich.org^$subdocument +||https://leturich.org^$third-party +||https://lhzly.com^$third-party +||https://liangyi360.com^$third-party +||https://lianjie.phpwind.com^$third-party +||https://lianle.com^$third-party +||https://linkvans.com^$third-party +||https://lm.35.com^$third-party +||https://lnr1.com^$third-party +||https://lv711.net^$third-party +||https://lx167.com^$third-party +||https://lzzqqc.com^$third-party +||https://mamamiyu.com^$third-party +||https://mathtag.com^$third-party +||https://mbai.cn^$third-party +||https://medi-8.net^$third-party +||https://media8.cn^$third-party +||https://mediav.com^$third-party +||https://mgwl668.com^$third-party +||https://miaozhen.com^$third-party +||https://mobads.baidu.com^$third-party +||https://momzs.com^$third-party +||https://moogos.com^$third-party +||https://mosa86.com^$third-party +||https://mtburn.com^$third-party +||https://mtty.com^$third-party +||https://mtxsk.com^$third-party +||https://mycctvmedia.com^$third-party +||https://mytanwan.com^$third-party +||https://myzwqwe12.com^$third-party +||https://mzy2014.com^$third-party +||https://news.tagtoo.co^$third-party +||https://ni22.com^$third-party +||https://niurenw.com^$third-party +||https://niuza.com^$image,subdocument,third-party +||https://niwota.com^$third-party +||https://nlrsq.com^*.js +||https://nmbtedu.com^$third-party +||https://nord-raum.com^$third-party +||https://nszmz.com^$third-party +||https://ny5159.com^$third-party +||https://o091i.com^$third-party +||https://oa-panther.data.aliyun.com^$third-party +||https://okokw.com^$third-party +||https://onetad.com^$third-party +||https://onewhee.com^$third-party +||https://open8.cn^$third-party +||https://oxrm.com^$third-party +||https://p0y.cn^$image +||https://p0y.cn^*.swf +||https://pababy.cn^$third-party +||https://pagechoice.net^$third-party +||https://popin.cc^$third-party +||https://poxzyu.com^$third-party +||https://poyang.cn^$third-party +||https://pro.cn^$third-party +||https://prohost.com.tw^$third-party +||https://qchannel03.cn^$third-party +||https://qdxrhg.com^$third-party +||https://qidou.com^$third-party +||https://qiyou.com^$third-party +||https://qling.com^$third-party +||https://qq4g.cn^$third-party +||https://qtmojo.com^$third-party +||https://quanbailing.com^$third-party +||https://qubilou.com^$third-party +||https://r5g.cc^$third-party +||https://raonie.com^$third-party +||https://rayli.com.cn^$third-party +||https://rekanw.com^$third-party +||https://rsccs.com^$third-party +||https://ruanwenclub.com^$third-party +||https://s17cnzz.com^$third-party +||https://s8dj.com^$third-party +||https://sales-frontier.com^$third-party +||https://samboc.com^$third-party +||https://scize.com^$third-party +||https://seaxm.com^$third-party +||https://sexy-more.com^$third-party +||https://shangjiabiao.com^$third-party +||https://shaqm.com^*.js$third-party +||https://sharele.cn^$third-party +||https://sho9wbox.com^$third-party +||https://shuihulu.com^$third-party +||https://shujuwu.com^$third-party +||https://sin114.com^$third-party +||https://snmi.cn^$third-party +||https://snxyf.com^$third-party +||https://snyu.com^$third-party +||https://somennew.com^$third-party +||https://souacode.com^$third-party +||https://sphwq.net^$third-party +||https://sscj123.com^$third-party +||https://ssh.*.com^*!$script,third-party +||https://sspsky.com^$third-party +||https://star8.net^$third-party +||https://subo.me^$third-party +||https://sums.suning.com^$third-party +||https://superfish.com^$third-party +||https://symac.cn^$third-party +||https://symav.cn^$third-party +||https://symaw.cn^$third-party +||https://szvr.com^$third-party +||https://t3nlink.com^$third-party +||https://ta80.com^$third-party +||https://tab20.com^$third-party +||https://tagtic.cn^$third-party +||https://tamedia.com.tw^$third-party +||https://tanchuang002.info^$third-party +||https://tanwanyx.com^$third-party +||https://tanx.com^$third-party +||https://taojingu.cn^$third-party +||https://taotu001.com^$third-party +||https://tbjfw.com^$third-party +||https://tebaidu.cn^$third-party +||https://techsolutions.com.tw^$third-party +||https://tenmax.io^$third-party +||https://tgjkbx.cn^$third-party +||https://thefifthera.com^$third-party +||https://tianfus.com^$third-party +||https://tianji520.cn^$third-party +||https://tiantianedu.net^$third-party +||https://to8to.com^$subdocument,third-party +||https://top.baidu.com^$subdocument,third-party +||https://top888.com^$third-party +||https://touchrom.com^$third-party +||https://toufangke.com^$third-party +||https://toy9090.com^$third-party +||https://trys5.com^$third-party +||https://ttz.com^$third-party +||https://tudown.com^$third-party +||https://tuia.cn^$third-party +||https://tukj.net^$third-party +||https://tvrom.cn^$third-party +||https://twb98.com^$third-party +||https://twcczhu.com^$third-party +||https://twm.com.tw^$third-party +||https://twrank.com^$third-party +||https://txkjad.com^$third-party +||https://tz-dsp.com^$third-party +||https://u.801t.com^$third-party +||https://u88.cn^$third-party +||https://ubcpm.com^$third-party +||https://uctrac.com^$third-party +||https://ueadlian.com^$third-party +||https://ufstone.com^$third-party +||https://ugoooo.com^$third-party +||https://ujian.cc^$third-party +||https://ulink.cc^$third-party +||https://um29.com^$third-party +||https://unimhk.com^$third-party +||https://union-wifi.com^$third-party +||https://union.zbj.com^$third-party +||https://union009.com^$third-party +||https://unionbig.com^$third-party +||https://unionli.com^$third-party +||https://unionsky.cn^$third-party +||https://unionsky2.cn^$third-party +||https://urlad.com.tw^$third-party +||https://usingde.com^$third-party +||https://v-links.net^$third-party +||https://v.center^$third-party +||https://v.xi666.com^$third-party +||https://vamaker.com^$third-party +||https://vbtrax.com^$third-party +||https://vf5c.com^$third-party +||https://visadd.com^$third-party +||https://vlion.cn^$third-party +||https://vpie.net^$third-party +||https://vsnoon.com^$third-party +||https://walibao.com^$third-party +||https://wanzituandui.com^$third-party +||https://weareqy.com^$third-party +||https://weddingeeos.com^$third-party +||https://whale123.com^$third-party +||https://wicp.net^*.swf +||https://widget.ezprice.com.tw^$third-party +||https://winasdaq.com^$third-party +||https://wmrmb.cn^$third-party +||https://wo685.com^$third-party +||https://wodemeitu.com^$third-party +||https://wofan.net^$third-party +||https://wqzyt.net^$third-party +||https://wudang05.com^$third-party +||https://x-ssp.com^$third-party +||https://x8ad.com^$third-party +||https://xajx.com^$third-party +||https://xcycm.com^$third-party +||https://xdwan.com^$third-party +||https://xe2c.com^$third-party +||https://xiaoyida.com^$third-party +||https://xijinfa.com^$third-party +||https://xing678.com^$third-party +||https://xiongyin.com^$third-party +||https://xitao3.com^$third-party +||https://xixianad.com^$third-party +||https://xlcun.com^$third-party +||https://xlingdi.com^$third-party +||https://xmshqh.com^$third-party +||https://xp3366.com^$third-party +||https://xq12.com^$third-party +||https://xsu.cc^$third-party +||https://xtgreat.com^$third-party +||https://xzdchl.com^$third-party +||https://ydcpc.com^$third-party +||https://ye3.com^$third-party +||https://yezilm.com^$third-party +||https://yghua.com^$third-party +||https://yigao.com^$third-party +||https://yiiwoo.com^$third-party +||https://yingshidaquan.cc^$third-party +||https://yinoo.cn^$third-party +||https://yiqifa.com^$subdocument +||https://yiqifa.com^*.js$third-party +||https://yiqiv.com^$third-party +||https://yiwad.com^$third-party +||https://yixige.com^$third-party +||https://ylzx.net^$third-party +||https://yongv.com^$third-party +||https://youbet8.com^$third-party +||https://youle55.com^$third-party +||https://youmw.com^$third-party +||https://youxiaoad.com^$third-party +||https://youxicool.net^$third-party +||https://yoyi.com.cn^$third-party +||https://yoyi.tv^$third-party +||https://ysm.ezprice.net^$third-party +||https://yuanhsu.com^$third-party +||https://yunfanlm.com^$third-party +||https://yuu360.com^$third-party +||https://yxdyk.com^$script,third-party +||https://yy32.com^$third-party +||https://yzxls.com^$third-party +||https://zampda.net^$third-party +||https://zampdsp.com^$third-party +||https://zd6789.com^$third-party +||https://ze5.com^$third-party +||https://zgczjw.com^$third-party +||https://zgyiyi.com^$third-party +||https://zhandi.cc^$third-party +||https://zhenhun.co^$third-party +||https://zhululm.com^$third-party +||https://zj66.net^$third-party +||https://zlongad.com^$third-party +||https://zp265.com^$third-party +||https://ztdsp.com^$third-party +||https://zytwq.net^$third-party +||https://zz123.com^$third-party +||https://zzad.com^$third-party +||https://1024wanzhai.$popup,third-party +||https://133gp.com^$popup +||https://189.cn/actpush/$popup,third-party +||https://35.$popup +||https://415.net^$popup +||https://76fengyun.com/vip.php$popup +||https://7866593178.com^$popup +||https://9100300.com^$popup +||https://9453hot.com^$popup +||https://aiwanma99.com^$popup +||https://ark.letv.com/t?$popup +||https://avkankankan.com^$popup,third-party +||https://baidu.com/adrc.$popup +||https://baidu.com/baidu.php?url=$popup +||https://bm999999.com^$popup +||https://c.admaster.com.cn^$popup +||https://cpm.193g.cn^$popup +||https://csaimall.com^$popup,third-party +||https://ctfile.com/popjump.php?$popup +||https://d6262.com^$popup +||https://dilidili.wang/toGame.$popup +||https://duoyi.com/welcome/$popup +||https://dwz.cn^$popup +||https://flash.cn/success/$popup +||https://fu9453.com^$popup,third-party +||https://gd.189.cn/ad/$popup,third-party +||https://gd.189.cn/gz/promotion/$popup,third-party +||https://gd.189.cn^*.htm?SP=$popup,third-party +||https://gd.ct10000.com^*/push/$popup,third-party +||https://gotourl.xyz^$popup +||https://greenet.cn^*_popu_$popup +||https://hinet.net/product/promotion/$popup +||https://huancaicp.com/?pid=$popup +||https://ieeod0.com^$popup +||https://ihualun.com^$popup +||https://img999.com^$popup +||https://kfc.com.cn^$popup +||https://kuheju.com^$popup +||https://miaozhen.com^$popup +||https://p.ynb2dca.com^$popup +||https://puma.com^$popup +||https://qx568.com^$popup +||https://sohu.com/i/?pvid=$popup +||https://todayapp.tv^$popup,third-party +||https://u26u.com^$popup,third-party +||https://vnet.cn^*.html?$popup,third-party +||https://wy213.com^$popup,third-party +||https://xingshenfang.cn^$popup +||https://xiyouence.com^$popup,third-party +||https://yy18.info^*thanks$popup +||https://000001.azureedge.net/script/common.js +||https://000001.azureedge.net/script/p.js +||https://000b.info/js/ +||https://005.tv/s/setcores.js +||https://005.tv/shouye/moe-9 +||https://005.tv/templets/muban/js/jquery-1.8.3.js +||https://005.tv:60000/ad.js +||https://007.mx/flv/ +||https://007ds.com/js/js/ +||https://0379home.com/public/js/ad_pic.js +||https://0379home.com/public/js/beside.js +||https://0439.com/wtj/homepage/handler/guangg.ashx?ut=classify +||https://0439.com/wtj/homepage/handler/guangg.ashx?ut=topslide +||https://0439.com/wtj/homepage/handler/guangg.ashx?ut=zhuangx +||https://0460.com/images/banner/ +||https://0460.com/js/txtrec.js +||https://04cmm.com:8888/js +||https://04stream.tv/sda/ +||https://0573fang.com/upimg/switch/ +||https://0575bbs.com/js/float.js +||https://0575bbs.com/updateimeags/ +||https://0579.cn/SHow/Showplacenew.aspx +||https://0597ok.com/ilike/597/ +||https://0598yu.com/api.php?mod=ad& +||https://0606kk.com/js/index/index.js +||https://060s.com/my_ad/ +||https://0668gz.com/data/attachment/portal/ +||https://0712fang.com/Public/js/cf_flash.js +||https://0722fc.com/index/index.php?/ajax/get_adv/ +||https://0722fc.com/index/tools/js.php +||https://073img.com/*/| +||https://073img.com^$subdocument +||https://0758net.com/data/attachment/portal/ +||https://0772fang.com/assets/js/lffoi.js +||https://0772fang.com/assets/js/Newhouse/inserAds.js +||https://07908.com/images/ +||https://0d077ef9e74d8.cdn.sohucs.com^*_gif +||https://0kkbb.com/js/i.js +||https://0lb.com/data/attachment/album/ +||https://0o0.ooo/2017/01/13/58787d42bbad6.jpg +||https://10000xing.cn/images/we +||https://100ksw.com/inc/doc- +||https://100xuexi.com/CssModel/*Layout.js +||https://100yangsheng.com/a1/a.js +||https://101.78.195.135/js/ +||https://1010pic.com/scripts/hd/yueyue +||https://1010pic.com/static/js/allpc.js +||https://1024down.com/images/*.gif +||https://102tv.cn/js/main.js +||https://103.19.2.6/js/thea +||https://103.225.198.230:8080/index.html +||https://107.182.131.103/cache/?q=/images/ +||https://107cine.com/front/js/layer.js +||https://11.mydrivers.com/drivers/ +||https://11.mydrivers.com/news/03.js +||https://11.mydrivers.com/news/google468x60.js +||https://11129.com/800X80 +||https://111cn.net/gg_ad/ +||https://112.124.15.130/res/linuxde_www/images/cxy-ad.jpg +||https://112.126.66.58^*?mid= +||https://114shouji.com/a/1.js +||https://114txt.com/hello/ +||https://115.28.114.149^*_proxy. +||https://115.29.46.146^$subdocument +||https://115mm.com/js/ +||https://119xiazai.com^$subdocument +||https://11img.com/ad/ +||https://11kkzz.com/se/wf/ +||https://11vvt.com^*tools/ +||https://120askimages.com/ask/js/askfrom.js +||https://120askimages.com/ask/js/q +||https://120askimages.com/ask/zhenshi/templates/pub/js/loadPart.js +||https://121.40.136.114^*.htm +||https://121.41.60.207/m?t= +||https://121.43.114.38:8087/advs.js +||https://121zou.com^$subdocument +||https://122.228.200.55:8082/blr.gif +||https://123.sogou.com/discover/? +||https://1236226.com/html/ +||https://124fu.com/js/*.htm +||https://126.com/get.do?*=themeHandler. +||https://126.net/house/hrb/flash/*X +||https://126.net/ntesrich/*/suning- +||https://127.net/2018/08/15/71ee02b5b61c4090b3ce0116306596c2.jpeg +||https://127.net/external/js6promote +||https://127.net/external/js6public126_ +||https://127.net/external/js6public163_ +||https://127.net/m/*/promPic.jpg +||https://12999.com/JS/ +||https://12img.com/ad/ +||https://12ycw.com/js/fc/ +||https://131458.com/union/ +||https://1328f.com/js/jquery.js +||https://13322.com/newIndex/ad/ +||https://1342a.com/js/jquery.js +||https://138vps.com/fa/ +||https://139file.com/jsa/ +||https://141h.com/data/attachment/noblock/cf/ +||https://145.239.6.59/g3/ +||https://14bobo.com/js/ +||https://158pic.com/js/tjhd.js +||https://159i.com/p/b201u502y.js +||https://159i.com/video/pop/ +||https://159i.com/video/usr/uploads/1- +||https://159i.com/video/usr/uploads/bd/$image +||https://15hn.net/data/content +||https://160.com/statics/statics/js/code_13.js +||https://160.com/statics/statics/js/code_15.js +||https://1616.net/jd/data/index/indexad.json +||https://162.212.182.$subdocument +||https://162.251.5.11/bbspic/storeShow/ +||https://163.com*/special/*_ad_ +||https://163.com/get.do?*=themeHandler. +||https://163.com/ntes/special/*_papa. +||https://163.com/special/*/ted_vad. +||https://163.com/special/*=ad_ +||https://163.com/special/*_960/ +||https://163.com/special/*_netease +||https://163.com/wap/special/article_cooper_piapia/ +||https://163disk.com/static/aimgs/d +||https://163disk.com/static/images/51 +||https://163disk.com/static/www/ +||https://163jiankang.com/zhuanqian/m/myad- +||https://168.it168.com^$script +||https://1684sm.com/js/1684/ +||https://1688.com/b2bxad? +||https://16888.com/ajax/loadcardata.php +||https://168img.com/a/ +||https://168img.com/aa/ +||https://16sucai.com/ads/ +||https://16sucai.com/images/*0 +||https://1708t.com/js/jquery.js +||https://17173.com/advideo/ +||https://17173.com/api/video/PlayerPopup? +||https://17173.com/if/ +||https://17173.com/new/ +||https://17173.com/x/ +||https://17173cdn.com/a/lib/vda/seed.js +||https://17173cdn.com/a/www/index/2016v2/js/seed.js +||https://17173cdn.com/js/play/page/pThridPlayerAd.js +||https://172.15.2.28:3438/*.js +||https://1722t.com/js/jquery.js +||https://173app.com/hot/666/alipay- +||https://174.123.15.43:8080 +||https://17500.cn/Public/Mobile/img/enjoyswiss.jpg +||https://17500.cn/template/images/*_960X90. +||https://178.com/glr.js +||https://17989.com/script/index.asp +||https://17ce.com/118/ +||https://17ce.com^$subdocument +||https://17dm.com/s/common/js/*AD.js +||https://17jiaoyu.com/images/img_980x90.jpg +||https://17ok.com/focus/3j_right_jdt.shtml +||https://17yy.com/style/ifra_ad/ +||https://180.96.27.85^*.htm +||https://18183.com^*.php? +||https://182.92.234.239^*.html +||https://183yf.cn/img/nz.png +||https://188soft.com/js/PCsoftDetailAD.js +||https://189.cn/dns/ +||https://192.240.111.77/ad/ +||https://192.74.239.161/ad960.js +||https://19216811.la/net/advert +||https://198.40.52.148/js.js +||https://19iiii.info/js/dingbu.js +||https://19iiii.info/js/dl.js +||https://19iiii.info/js/foot.js +||https://19iiii.info/js/tonglan.js +||https://1fzw.com/content/templates/zjbnew/yxj.js +||https://1kejian.com/js/topA.js +||https://1ketang.com/Runtime/js/play +||https://1xlala.com/img/ +||https://2.56.176.42/link/ +||https://2008mm.com^*.js +||https://2008xxx.com:888 +||https://202.102.26.253:8182/files/7/lhzs1k.jpg +||https://20bmm.com:8888/js +||https://211600.com/data/attachment/portal/ +||https://217hs.com/js/jquery.js +||https://219.128.77.113/main.js?i= +||https://219.138.173.204:8080/jiekou/api/kqzl.ashx +||https://219.153.41.154/v1/ +||https://219.153.41.175/*.js +||https://219.238.159.181^*.html +||https://219.238.159.182^*.html +||https://21edu8.com/js/mymoney/ +||https://21uscity.com/static/allbusiness/ +||https://21uscity.com/zonelist.php +||https://21yq.com/mg/21yq/ +||https://221.5.69.52^*.js +||https://222.45.224.77^*.js +||https://222.47.26.21/m.js +||https://22pixx.xyz/l/ +||https://2324av.com/zz/ +||https://2345.com/cnxh/ +||https://2345.com/duoteimg/dtnew_recom_img/duoteself/ +||https://2345.com/duoteimg/duotehtml/ +||https://2345.com/duoteimg/img/*_ad_ +||https://2345.com/dypcimg/*gameRecommend.js +||https://2345.com/dypcimg/ads/ +||https://2345.com/images/activity/20180618/search-actimg +||https://2345.com/images/m/global/new-hongbao/ +||https://2345.com/jifenimg/img/common/logo.png$third-party +||https://2345.com/js/index/activity/ +||https://2345.com/js/m/bottom.float.adver.js +||https://2345.com/js/m/common/top_information.js +||https://2345.com/pic/2345video.png +||https://2345.com/right/homepage/tqbChannel_ +||https://2345.com/right/site/like/gul_ +||https://2345.com^*/activity/20171 +||https://234fang.com/index.php?/ajax/get_adv/ +||https://239300.net/template/*_mh_gg +||https://23aitt.com/zz/ +||https://23sc.cn/andy/ +||https://24cmm.com:8888/js +||https://24mn.me/js/total.js +||https://2500sz.com/site/ +||https://25bmm.com/js +||https://265la.com/html/ +||https://268de.com/js/ +||https://28hse.com/adsman/www/images/ +||https://29spp.com/js/tj.js +||https://2btu.com/gg.jpg +||https://2ccc.com/images/aobi.gif +||https://2ccc.com/images/sdo.jpg +||https://2ccc.com/images/show/ +||https://2ccc.com/images/sino.gif +||https://2ccc.com/images/WebXone.gif +||https://2cq.com/third/tieba/sidebar +||https://2kandy.com/js/123/ +||https://2ujj.com/js/bo.js +||https://2zzt.com/file/aliyun +||https://2zzt.com/images/ +||https://310v.com/images/lingdai.gif +||https://310v.com/images/wap_520x60.gif +||https://315che.com/tree/ad.js +||https://31bmm.com:8888/js +||https://32xp.com/upimg/ +||https://333tv.com/wp-content/themes/Loostrive/cssg/ +||https://33405.com/js/layer.js +||https://33405.com/ps/ +||https://33405.com/xxxxx.js +||https://33405.com^$subdocument +||https://3344ex.com/js/1playerad.js +||https://3344ex.com/js/bot.js +||https://3344ex.com/js/jc.js +||https://3344mf.com/js/ +||https://3344xu.com/js/ +||https://33api.com/index.php/Article/eddata? +||https://33av.net/Uploads/ad/ +||https://33lc.com/bui/ +||https://33shu.net/js/game +||https://3520.cc/js/3520/ +||https://35336.net/35336.jpg +||https://360-bo.com/js/float +||https://360.cn/festival_zone.html +||https://360.cn/index/showjokes?callback= +||https://360.cn/int/getadurls? +||https://360.cn/popup/popinfo/ +||https://360buyimg.com/jzt/temp/js/ +||https://360doc.com^*.html?t= +||https://360kan.com/special/ +||https://363uu.com/banner_list.js +||https://365kl.net/data/attachment/portal/ +||https://365rich.cn/ba.aspx +||https://36dm.club/images/00 +||https://36dm.club/images/tb +||https://36dm.club/images/top +||https://36dm.club/js/nu +||https://36dm.com/images/0 +||https://36dm.com/images/36dm +||https://36dm.com/images/l0 +||https://36dm.com/images/ny0 +||https://36dm.com/images/tb +||https://36dm.com/images/top +||https://36dm.com/js/nu +||https://36kr.com/pp/api/ap/plan? +||https://373nn.com/java/ +||https://39.net/a.htm? +||https://39.net/creative/ +||https://39.net/js/google/ +||https://39.net/PictureLib/A/f76/20170814/org_1428963.gif +||https://39.net/test/k.js +||https://391k.com/pc/gg/ +||https://3987.com/all_site/ +||https://3987.com/images/ +||https://3987.com/skins/*201 +||https://3987.com/statics/tow_skin/new_img/20 +||https://3boys2girls.com/newfile/image2010/banner_housead_ +||https://3boys2girls.com/templates/default/2013/life/160b5.js +||https://3boys2girls.com/templates/default/2013/randlinks.js +||https://3boys2girls.com^$subdocument +||https://3dmgame.com/img/a/640- +||https://3dmgame.com/index.php?m=games&c=index&a=ztad& +||https://3dmgame.com/templets/common/show_js/show_js.js +||https://3dmgame.com/templets/index/gimg/ +||https://3dmgame.com/templets/index/js/huandeng.js +||https://3dmgame.com/templets/xiazai/g +||https://3g.cn/baidualading/ +||https://3g.cn/index.php?s=Index/adv& +||https://3gmfw.cn/js/wap/ +||https://3h3.com/gmobile/gujs/ +||https://3h3.com/js/homepage.js +||https://3h3.com/js/listad.js +||https://3h3.com/js/show/ +||https://3qcc.com/js/bb.js +||https://3wk.cc/images/*.gif +||https://4-bb.com/new/xxx/ +||https://40407.com/plus/rpad/ +||https://40407.com/plus_rpad_ +||https://40wan.com/js/www2/ +||https://42cao.com/ckplay/js.jpg +||https://4399.com/baiduad/ +||https://4399.com/loadimg/iframe_ +||https://4399.com/loadimg/loading.htm +||https://44hd.cc/js/ +||https://44pd.com^*xds/ +||https://47.100.0.249/js/thea +||https://47ks.com^*_ad.js +||https://484r.com/images/flash/gallery_ +||https://4gamers.com.tw/site/api/aols/media? +||https://4gtv.tv/4gTV_OTT.json +||https://4hw.com.cn/js/common.js +||https://4k123.com/data/attachment/portal/201712/20/194208ao9pevvvg0xr0n1p.jpg +||https://500xxxx.com/go.js +||https://5054399.com/js/rice/m.js +||https://5068.com/*gg +||https://5068.com/websleft.js +||https://508ii.com/banner_list.js +||https://50yxw.com/content/uploadfile/*.gif +||https://51.com/up/bdfmt/ +||https://510mall.com//image/ +||https://5118.com/8/g.aspx +||https://512ms.com/js/index_ggw_show.js +||https://51688.cc/ya/ +||https://516qq.cn/theme/dd/ +||https://5184.com/container/html/news_view_gg +||https://5188yy.com/ziyuanduilian/ +||https://51bczx.com/images1/ +||https://51bczx.com/js/float.js +||https://51credit.com/51api/creditcard.php?mod= +||https://51credit.com/js/app/end-layer.js +||https://51dns.tv/pc- +||https://51fanli.net/misc/images/invite-v4/banner.gif +||https://51gugu.com/popwin/AutoHAdShow.aspx +||https://51hanhua.com/2013/ +||https://51img1.com/v6/my/js/bdm.js +||https://51mmm.info/template/1/js/gg.js +||https://51test.net/js_new/a/right_wx.js +||https://51testing.com/templates/default/images/*.swf +||https://51testing.com/templates/default/images/jx2_a.jpg +||https://51ui.cn/999.png +||https://51ui.cn/js/500200.js +||https://51vob.com/js/hf.js +||https://51wady.com/me.php?id= +||https://51wan.com/img/js/xyadjs_ +||https://51xuediannao.com/uploads/un/ +||https://51ztzj.com/js/you.js +||https://51ztzj.com/res/web/img/download_sign +||https://51ztzj.com/res/web/img/pic/inshow.jpg +||https://51zxw.net/news_vvvs_photos.swf +||https://520boxtv.com/images/logo_top.gif +||https://520cc.cc/300aaa.gif +||https://520xs.la/js/dianrui- +||https://521000.com/co/ +||https://523525.com/img/20170508.jpg +||https://5278.cc/index.js +||https://5278.mobi/aa/ +||https://5278bbs.com/adpost_ +||https://52beiwo.com/gg. +||https://52card.net/img/ +||https://52che.com/Inc/FooterComm_ +||https://52che.com/NewLocal/TemplateHtml/headflash1_ +||https://52dytt.net/images/bbs_btn.gif +||https://52dytt.net/img/zlgg.png +||https://52ghai.com/data/attachment/common/ac/ +||https://52ghai.com/zz/ +||https://52jingsai.com/images/huanbao +||https://52movieba.com/img/ad +||https://52pk.com/style/files/images/beitou.jpg +||https://52rd.com/Pic/Click/ +||https://52rd.com/Pic2/*_600_60 +||https://52waha.com/static/js/func_bbs.js +||https://52wmb.com/2014js/cn_ +||https://52z.com/images/52zgg/ +||https://52zpi.com/gg/ +||https://52zy.com/other/js/ +||https://5328t.com/js/jquery.js +||https://543et.com/detail/ +||https://5442.com/style/ads5442.js +||https://54new.com/da/ +||https://55.la/anonymous/banner/ +||https://55aaee.com/detail/ +||https://56ads.com/js/main.js +||https://56img.com^*/baidu-promotion.js +||https://56img.com^*/search-engine-promotion.js +||https://56rmm.com:8888/js +||https://56shu.net/JSRmb/ +||https://570rr.com/banner_list.js +||https://576tv.com/Scripts/home.js +||https://57fx.com/img/20170508.jpg +||https://57see.com/js/ +||https://58.com/demand/content? +||https://58.com/ds/tgbrand/*.js +||https://58.com/show/ads? +||https://58cdn.com.cn/ds/tgbrand/*.js +||https://58cdn.com.cn/ds/zhuangxiu/jzad- +||https://59.36.101.209:888/link/*_280x192. +||https://591hx.com/images/0000.jpg +||https://591hx.com/js/dll.js +||https://591hx.com/js/floatbox.js +||https://591hx.com/lunbo/ +||https://591hx.com/zyrk_dy/gwjl.html +||https://5dmail.net/image/$object +||https://5dmail.net/image/ad_ +||https://5dmail.net/image/ORF_1000.gif +||https://5dmail.net/js/ +||https://5fz.cc/t/aimg/tao +||https://5icool.org/uploadfile/poster/ +||https://5ilinglei.com/gg.html +||https://5ilog.com/qq/js/jsgg.js +||https://5imx.com/image/image/ +||https://5ips.net/love/ +||https://5iwanyouxi.com/Runtime/Js/ +||https://5nj.com/js/cnzz +||https://5qqn.com/js/js/ +||https://5vdd.com/360 +||https://5vdd.com/ktt.png +||https://5vdd.com/mobile.jpg +||https://5xmp4.com/js/dd/ +||https://5ydj.com/images/banner/ +||https://6.cn/coop/pub/getRand.php? +||https://600km.com/template/*/ad/ +||https://6080.tv/public/js/m/3 +||https://61.10.2.86/dev/xopen.php +||https://61.164.108.104:4275/*.gif +||https://61.164.108.184^*.swf +||https://61.235.249.195^*/Default.aspx?id= +||https://62422.cn/ggimg/ +||https://63007.com:82/haodxi.js +||https://63ef.com^*.js +||https://64.120.16.146/hsk_update/upload/*.gif +||https://64bobo.com/ckplay/js.jpg +||https://66.fmx.cn/js/ +||https://6620070.com/js/ +||https://6699fa.cn/imagestb/ +||https://6699fa.cn/js/ +||https://66kkl.com/tools/ +||https://66rd.cn/pic/*.swf +||https://66wz.com/adv2/ +||https://66wz.com/data/attachment/portal/ +||https://66wz.com/eap/ +||https://66ys.tv/d/ +||https://67.159.44.187/js/v1.js +||https://6789.com/media/images/jiao.swf +||https://678pan.com/TC/ +||https://678pan.vip/ad.js +||https://688900.net/js/ok/ +||https://6park.com/img/*0.gif +||https://6park.com/parks/$script +||https://6park.com^$subdocument +||https://6vhao.tv/d/ +||https://70.86.24.120:8060/ +||https://7160.com/js/tiaozhuanquanju.js +||https://71bmm.com:8888/js +||https://726dy.com/726pic/ +||https://733.so/template/wap1/js/all_css.js +||https://75.125.41.29:8080/ +||https://76.73.85.179/js/v1.js +||https://76fengyun.com/70070.gif +||https://76fengyun.com/jsa/ +||https://76mao.com/52 +||https://76wmm.com:8888/js +||https://76xh.com/skin/zxf/js/*Out.js +||https://76xh.com/skin/zxf/js/ad +||https://775mz.com/js/jquery.js +||https://777g.me/cs/ +||https://77ds.vip/js/shichuang.js +||https://77file.com/jsa/ +||https://77kan.com/jquery/ +||https://7893com.com/img/*.gif +||https://78dm.net/channel/test? +||https://78land.com/js/fumeiti.js +||https://797sun.com/include/js/common_footer. +||https://7c.com/7c_ +||https://7caa.com/js/js/ +||https://7hcn.com//f/*.swf +||https://7jiu.com.hk/hotsearch_box.php +||https://7junshi.com/con/ad +||https://7k7k.com^*/loding.htm +||https://7kankan.com/scripts/new/indext +||https://7m.cn/analyse/include/*_ +||https://7m.com.cn/b1/live_b +||https://7scs.com/Public/img/list- +||https://7xdown.com/bz/ +||https://7xdown.com/idcgg/ +||https://7xsf4r.com1.z0.glb.clouddn.com/lianzi.mp4 +||https://800cdn.com/go/bqad.jpg +||https://800j.com.cn/api.php?op=itemtopbanner& +||https://800j.com.cn/index.php?m=poster& +||https://8090app.com/js/right.js +||https://83133.com/api/ +||https://8585go.com/recommend +||https://8684.cn/id/ad_ +||https://8684.com/com/sys_ad_ +||https://8684.com/local/bdadv. +||https://8684.com/shuang11/ +||https://868ch.com/js/ds/index.js +||https://86uk.com/uploads/*0.gif +||https://86uk.com^$subdocument +||https://876porn.com/attachment/ +||https://880fg.com/css/*.js +||https://880sy.com/Public/js/*_gg.js +||https://88148.com/UpFile/a/2016040849191350.jpg +||https://883ads.com^*.js +||https://88448.com/images/appkai980x100.gif +||https://888dizhi.com/888/ +||https://88gs.com/agfile/ +||https://88liu.com/data/attachment/portal/ +||https://8bo.com/template/default/8bo/j/app.js +||https://8d8d.me/images/dealer.gif +||https://8maple.ru/dzcmyqv8.jpg$rewrite=abp-resource:1x1-transparent-gif +||https://8ziyuan.com/images/infolinksad.jpg +||https://900.la/imgs/1bb725da-974f-43da-9eb9-dfdebc224949/2015-12-18/zg3wwaug.gif +||https://900.la/imgs/d829d551-1d6e-4018-b3fe-78991bbbe2d6/2016-06-27/yiwmbica.gif +||https://90bifen.net^*/c_ad_ +||https://90oo.com/tp/188jj.gif +||https://90oo.com/tp/40 +||https://90oo.com/tp/90232.jpg +||https://90oo.com/tp/90280.gif +||https://90oo.com/tp/down.gif +||https://90oo.com/tp/hg +||https://90oo.com/tp/msn.jpg +||https://90vs.com:3389/zs_img/.__ +||https://90zy.cn/data/attachment/portal/ +||https://91.com/*hezuo/ +||https://918999.com/xjgg/ +||https://91danji.com/attachments/201810/12/10/2hdyj7ut9.jpg +||https://91danji.com/js/lmt.js +||https://91dict.com/dub_banner.jpg +||https://91jbz.com/file/script/A +||https://91mjw.com/images/tga.jpg +||https://91porri.org/fans/ +||https://91wii.com/data/ad/ +||https://91xiazai.com/qunyinguwuqi.jpg +||https://91xporn.com/fans/ +||https://92dp.com/home/showga? +||https://92uq.com/Ads/ +||https://949949.com/2013/end/hot_news.js +||https://9527yy.com/images/02/9527.jpg +||https://9527yy.com/js/data2.js +||https://9553.com/otherhtml/ +||https://96.44.141.133/960x90.gif +||https://962.net/show/all.js +||https://962.net/show/all_$script +||https://962.net/show/bt.js +||https://962.net/show/cms_$script +||https://962.net/show/down_ +||https://962.net/show/index_ +||https://966266.com/a-d/ +||https://9669.cn/ipdat/duilian/ +||https://9669.cn/js/jquery.play. +||https://9669.cn/refactor/js/360_ads.js +||https://973.com/static/js/pccom.js +||https://97aa1.com/g/ +||https://97daimeng.com/taobao/ +||https://98.126.219.216/ads/ +||https://98441.com^*gg +||https://9906g.com/js/jquery.js +||https://9938.net/video/tvg/footer.js +||https://9938.net/video/tvg/hot.js +||https://999sdh.com/tu/*.js +||https://999v.me/cs +||https://99btgc01.info/uploads/*.gif +||https://99danji.com/otherhtml/ +||https://99down.com/index.php?m=poster& +||https://99jjk.com/js/floatxvideo.js +||https://99mst.com/upfiles/adv/main02.jpg +||https://99tianji.com/hack/ +||https://99youmeng.com/pc/js/*_g +||https://99youmeng.com/pc/js/g_top_ban.js +||https://99youmeng.com/pc/js/global_latest.js +||https://99zuowen.com^*/gg.js +||https://9duw.com/pic/ +||https://9ez.me/embd.php?type= +||https://9ht.com/images/1200p.gif +||https://9ifz.cc/ling/index/ +||https://9ihome.com/info/ADTopvnet/ +||https://9ist.com/others/ad/ +||https://9kjj.com/images/*.gif +||https://9ku.com/aaa/ +||https://9tour.cn/x2/images/czmf.jpg +||https://9w1an.com/special/ +||https://9wcn.com/gcld/500.gif +||https://9ye.com/Files/Editor/ad/ +||https://9zvip.net/hi5asd/ +||https://a.jiaodong.net/a/2013/ +||https://a.jyeoo.com/js? +||https://a.v.duowan.com/crossdomain.xml +||https://a3v4.top/Picture/aiai.gif +||https://aaqqw.com/js/pc/ +||https://abbao.cn^*adblock +||https://abcache.com/tg/ +||https://abcache.com/xc/image/ +||https://abcache.com/youlaohu/ +||https://abcde.cn/info/uploadfile/poster/yun.png +||https://abminbuy.com/images/jiazai.png +||https://acfun.cn/appSpreadContents/danmuad/ +||https://acg.tv^$image,object +||https://acgbenzi.com^$image +||https://acgnx.se/images/adwork/ +||https://acgnz.cn/static/b.js +||https://acgnz.cn/static/i.js +||https://acgsou.com/images/ac +||https://acgsou.com/images/tb +||https://acgsou.com/images/top +||https://acgsou.com/js/nu +||https://acode.b2b.cn/JS/ +||https://act.chinatimes.com/aimg/ +||https://actoys.net/index.php?m=poster& +||https://actoys.net/js/beitou.js +||https://actoys.net/statics/js/index/ad.js +||https://ad.12306.cn/res/*.html +||https://admaimai.com/inc/adv +||https://admin25.com/ad/ +||https://admin6.com/templates/index/default/images/100060.gif +||https://adminbuy.cn/images/ +||https://advideoadmin.appledaily.com.tw/ov_player/ +||https://adwordsing.com/img/1.jpg +||https://adwordsing.com/img/2.jpg +||https://affyun.com/wp-content/uploads/*-ad. +||https://affyun.com/wp-content/uploads/*/ad- +||https://affyun.com/wp-content/uploads/*/affffff.png +||https://affyun.com/wp-content/uploads/2018/10/file.gif +||https://afocus.com.cn/s? +||https://afzhan.com/JavaScript/ad_Couplet.js +||https://agoda.com/Dynamic/index/ +||https://agogo.tv/images//uploads/ad/ +||https://ah.sina.com.cn/iframe/ +||https://ahgame.com/js/new_ad.js +||https://ahlife.com/api.php?mod=adv& +||https://aibing.cc/vip/img/gou.gif +||https://aichuangfu.cn/jquery/ +||https://aifei0755.net/123/ +||https://airav.cc/AirADPic/ +||https://airav.cc/iframe/ +||https://airav.cc/static/js/*_ad.js +||https://airav.cc/Ucenter/*_Ad +||https://airouba.com/public/js/global.js +||https://aistat.cn/huodong/ +||https://aitaotu.com/style/js/aitaotu +||https://aiuw.com/images/*?from=ad +||https://aixiaofan.cn/content/uploadfile/tpl_options//Ad_list_ +||https://aixifan.com/appSpreadContents/danmuad +||https://aixifan.com/apsdk/apsdk.js +||https://aixifan.com/cms/*/w/1160/h/100 +||https://aiyidu.com/aiyidu/adver/ +||https://aizhan.com/imagesa/ +||https://ak47fuli.net/fd.js +||https://alexa.cn/upfile/images/ +||https://ali213.net/images/bg_lt.jpg +||https://ali213.net/js/common/zpro/zprotxtpicurl.js +||https://ali213.net/js/data/3gcommon.js +||https://ali213.net/pubjs/SetScreen +||https://ali213.net/static/js/*_ali213tv.js +||https://ali213.net/static/js/kktv +||https://ali213.net/static/js/kv +||https://ali213.net/zt/twtk/images/tzxf.png +||https://ali213.net^*/promotion/ +||https://alibaba.com/async/b2bad. +||https://alicdn.com/ad-product/ +||https://alicdn.com/app/wxbpromotion/*/js/cpm/cpm_jq.js +||https://alicdn.com/g/mm/afp-cdn/JS/ +||https://alicdn.com/img/ibank/*_1085845541. +||https://alicdn.com/img/ibank/*_1095372465. +||https://alicdn.com/img/ibank/*_1409595492. +||https://alicdn.com/img/ibank/*_1545027917. +||https://alicdn.com/img/ibank/*_1746120392. +||https://alicdn.com/img/ibank/*_1794478205. +||https://alicdn.com/img/ibank/*_1995781528. +||https://alicdn.com/img/ibank/*_2114606112. +||https://alicdn.com/img/ibank/*_256401016. +||https://alicdn.com/img/ibank/*_368737028. +||https://alicdn.com/img/ibank/*_434184744. +||https://alicdn.com/img/ibank/*_687764080. +||https://alicdn.com/img/ibank/*_755908572. +||https://alicdn.com/img/ibank/*_775661713. +||https://alicdn.com/img/ibank/*_872274545. +||https://alicdn.com/imgextra/i1/3491683832/TB2A4QaisjI8KJjSsppXXXbyVXa_ +||https://alicdn.com/kf/HTB1WS7FUwHqK1RjSZJnq6zNLpXaT.jpg +||https://alicdn.com/kf/UTB8tVxYvbPJXKJkSafS5jaqUXXac.gif +||https://alicdn.com/openad/dsp-front-booth/ +||https://alicdn.com/tfscom/*.sina. +||https://alicdn.com/tps/*-950-90. +||https://alicdn.com/tps/i3/T19NaCFKFaXXckTCTS-300-100.jpg +||https://alixixi.com/adsview/ +||https://aliyuncs.com/ad/jd-smoofit-ad.jpg +||https://aliyuncs.com/ghdb.gif +||https://aliyuncs.com/pool/20180829220557.png +||https://aliyuncs.com/pool/20180829221932.png +||https://aliyuncs.com/vss/haotu.js +||https://aliyuncs.com/wjy99re/ +||https://allbeauty.com.tw/GoldPrice/*_CF.php +||https://alotof.software/wp-content/uploads/EKpYHOTLpixu/ +||https://alu.cn/2011/js/categoryAdvert.js +||https://alu.cn/alutg/ +||https://alu.cn/aluTrade/Fragments/ListAdvertisementProductsHandler. +||https://alu.cn/Ashx/AjaxGuangGao. +||https://am.zhiding.cn/www/images/$image,object,subdocument +||https://amazonaws.com.cn/static-documents/marketing/uda_banner_ +||https://amazonaws.com/s?z= +||https://amd.cn/yyets.js +||https://ammcg.imgscloud.com/toy/ +||https://ammmi.com/wp-content/uploads/2019/01/20856cf279c193.gif +||https://angelweb.cn/Inc/AngelG.js +||https://anhuinews.com/include/ +||https://anhuinews.com/zhuyeguanli/*ad/ +||https://ankangwang.com/js/info.js +||https://anqu.com/b.js +||https://antpedia.com/antad/ +||https://antpedia.com/images/advimages/ +||https://antpedia.com/include/js/view_news/l_banner_js.js +||https://antpedia.com/viewnewsrightboxtop. +||https://anywlan.com/link/*.gif +||https://aolusb.com/forever/ +||https://aoshi.com/jpfans.jpg +||https://aoshi.com/jpseek.jpg +||https://aoshi.com/rbc.jpg +||https://api.bilibili.com/x/ad/ +||https://api.wudizuqiu.com/72nba +||https://api.wudizuqiu.com/bocai.js +||https://apic.in/mmd.gif +||https://app-g.39.net/NNN/ +||https://appfh.com/fhyq/ +||https://appfh.com/jiu/ +||https://appfh.com/xin/ +||https://apple886.com/subs/*.js +||https://apptry.easylife.tw/pub/js/common/common.js +||https://apsgo.com/go/ +||https://aqlife.com/data/attachment/portal/ +||https://aqy102.com/js/aqy/ +||https://aqy103.com/js/aqy/ +||https://ark.le.com/s?vid= +||https://ark.letv.com/s?res= +||https://ark.letv.com/s?vid= +||https://artzd.cn/img/ +||https://asia-home.com.cn/js/yt/ytadshow +||https://aspjzy.com/jsweb/js/ +||https://aspku.com/z/ +||https://astrill.com/bnrs/ +||https://atool.org/res/ads/ +||https://att.ydss.cn/attachments/portal/ +||https://aty.sohu.com/v? +||https://atyun.com/wp-content/themes/xmag/js/ad.js +||https://aus5.com/public/v1/js/ad-config. +||https://auto-online.com.tw/vendor_data/ +||https://autohome.com.cn/api/lives/getliveroom? +||https://autohome.com.cn/api/platformData/getFinanceBanner +||https://autoimg.cn/club/v1Content/images/heycar1111.jpg +||https://autoimg.cn/club/v1Content/images/young +||https://autoimg.cn/engine/root/fggxl.js +||https://autonet.com.tw/90/ +||https://av-yoyo.com/images/*.gif +||https://av01.tv/images/partners/ +||https://av30.xyz/cs/ +||https://avbaike.org/js/gg.js +||https://avcao.cc/js/p.js +||https://avcity.twavtv.com/iframe/ +||https://avdao.pw/dist/js/sc_check +||https://avjj26.com/api/?d=pc&c=advert& +||https://avonline.org/js/jquery.colorbox- +||https://avseesee.com/amandison.php +||https://avseesee.com/htmls/vlinks.html +||https://avseesee.com/twad +||https://axjbt.com/dbxf/pctc.js +||https://ayxz.com/images/$script +||https://ayxz.com/images/enkj_small.gif +||https://azhibo.tv/arts/ +||https://azureedge.net/wp-content/cache/minify/904ff.js +||https://azureedge.net/wp-content/cache/minify/d2299.js +||https://azureedge.net/wp-content/uploads/*-AD0 +||https://b7yy.com/ad/ +||https://baby-kingdom.com/reqsads? +||https://babyhome.com.tw/public/img/640x100- +||https://backchina.com/banners/ +||https://badmintoncn.com/cbo_gg/ +||https://badmintoncn.com/cbo_include/js/cboaaa.js +||https://baidu-taobao-av.com/js/ +||https://baidu.com/?action=getadsdata& +||https://baidu.com/adver? +||https://baidu.com/api/proxyapi?tag=adv& +||https://baidu.com/api/wikiui/guesslike? +||https://baidu.com/brands/yxtg/source/yxCoupletsAd.js +||https://baidu.com/cms/rc/adSideConfig.json? +||https://baidu.com/common/fc/ +||https://baidu.com/ecom$image,script +||https://baidu.com/event/img/zwdzjs.jpg +||https://baidu.com/fanyiapp/image/wise_banner_ +||https://baidu.com/feproxy/ad/list? +||https://baidu.com/forum/pic/item/572c11dfa9ec8a13344ba40af903918fa1ecc083.jpg +||https://baidu.com/forum/pic/item/e5dde71190ef76c6211836cc9316fdfaae51670b.jpg +||https://baidu.com/game/asset/common/performance. +||https://baidu.com/newspage/api/getadsdata? +||https://baidu.com/newspage/api/getimagelandafd? +||https://baidu.com/newspage/api/getmobads? +||https://baidu.com/newspage/api/getrelatednews? +||https://baidu.com/po/api/configure/show.jsonp +||https://baidu.com/rec?platform=wise&ms=1&rset=ad& +||https://baidu.com/resource/ads/ +||https://baidu.com/resource/tuisong/ +||https://baidu.com/rmaAjax/getGame? +||https://baidu.com/show/livevideo/getStreamConf? +||https://baidu.com/showbrand/banner_ +||https://baidu.com/showbrand/sponsor_ +||https://baidu.com/source/getinfo? +||https://baidu.com/static/ecom/js/wise/home/nativeAds_ +||https://baidu.com/static/html/cbjs.html +||https://baidu.com/static/yuntu-ad/ +||https://baidu.com/staticapi/hotnews_new. +||https://baidu.com/staticapi/misadlist. +||https://baidu.com/tb/cms/forum_skin/file_ +||https://baidu.com/tb/cms/game/*_banner. +||https://baidu.com/tb/cms/game/*_banner_ +||https://baidu.com/tb/static-common/swf/worldcup_main.swf +||https://baidu.com/tb/zt/$subdocument +||https://baidu.com/tbliveact/data/xiu8/ +||https://baidu.com/tcx?infos=adbanner +||https://baidu.com/tequan/adpadmin_feed/ +||https://baidu.com/ur/scun?di=contentunion +||https://baidu.com/view/api/fc_btm? +||https://baidu.com/WerbungAjax/getBeitou? +||https://baidu.com/WerbungAjax/getTonglan? +||https://baidu.com/wkbus/fcwm/ +||https://baidu.com/xda? +||https://baidu.com/xpage/interface/get +||https://baidu.com/xpage/interface/inforservice? +||https://baidu.com/xpage/interface/sourcecontent? +||https://baidu.com/xpage/interface/structrec? +||https://baidu.com^$subdocument +||https://baidu.com^*/interface/ad? +||https://baidud.cn/aoao/down_ +||https://baiduyunpan.net/t/ +||https://baike.com/3g/ads/ +||https://baike.com/iframeheightforad. +||https://baishuku.com/news/$script +||https://baixing.com/bb/*/?category= +||https://baixing.com/widget/ +||https://baiyug.cn^*AD.js +||https://baizhan.net/coop/hezuo/ +||https://ballbar.cc/images/bb/ +||https://ballbar.cc/images/web +||https://banma.com/get_ad/ +||https://banma.com/js/adi.js +||https://banma.com/statics/scripts/common/dialogAdJs.js +||https://banyungong.org/images/1.gif +||https://banyungong.org/images/2.gif +||https://banyungong.org/Scripts/tc.js +||https://baofeng.com/images/yiqi +||https://baojia.steelcn.cn/images/$object +||https://baoliny.com/js/jing.js +||https://baomitu.duapp.com/js/layer.js +||https://bb1nn.com/js/i.js +||https://bb999.net/pic/n/agents/C-79.gif +||https://bbs.a9vg.com/showit/img_show.php +||https://bbs.gmbbk.com^*.js +||https://bbs.voc.com.cn/s.js +||https://bbs.xiashanet.com/js/adsview.js +||https://bbsbaba.com/js/1.js +||https://bbsbaba.com/js/2.js +||https://bcc.com.tw/imgs/adv/ +||https://bccnsoft.com/aac/ +||https://bcquan.me/front/components/get_global_ad +||https://bcquan.me/front/components/get_top_games +||https://bcquan.me/front/home/render +||https://bdimg.com/brands/yxtg/source/juhe-v2.js +||https://bdimg.com/muzhi/adwap/top-banner.jpg +||https://bdimg.com/newmap/static/common/images/nav-ad_ +||https://bdimg.com/site/games/yxtg/*.js +||https://bdimg.com/static/wkcore/widget/commerce/fengchao/ +||https://bdimg.com/static/wkview/widget/download_after_activity_new/download_after_activity_new_ +||https://bdstatic.com/img/image/su/ +||https://bdstatic.com/pc_static/detail/game_promotion/ +||https://bdstatic.com/player/t/j/AEoIJIPB.js +||https://bdstatic.com/player/t/j/Cj2XuDf6.js +||https://bdstatic.com/player/t/j/HlKYzquQ.js +||https://bdstatic.com/static/article/widget/left-promo/ +||https://bdstatic.com/static/searchresult/widget/pageDisorderTip/ +||https://bdstatic.com/tb/%E8%B4%B4%E5%90%A7- +||https://bdstatic.com/tb/cms/*%E5%BA%95%E9%83%A8 +||https://bdstatic.com/tb/cms/activity_head/file_ +||https://bdstatic.com/tb/cms/com/game/couplet_ +||https://bdstatic.com/tb/cms/com/mis/spreadad/dasense_iframe_api.js +||https://bdstatic.com/tb/cms/forum_skin/file_1442399443261.jpg +||https://bdstatic.com/tb/cms/img/tieba_index_banner960x90.png +||https://bdstatic.com/tb/cms/ngmis/file_1417585294569.jpg +||https://bdstatic.com/tb/cms/ngmis/file_1417585299140.jpg +||https://bdstatic.com/tb/mobile/sglobal/img/bannerLogo_ +||https://bdstatic.com/tb/r/image/2014-12-03/87ae5de2d732714bb6dd4ff6ab1e50ac.jpg +||https://bdstatic.com/tb/r/image/2014-12-30/fa718abe3e4418298f785734279a2e8f.jpg +||https://bdstatic.com/tb/zt/tengfei/gzdialog.jpg +||https://bdstatic.com^*/container/module/bottombanner/ +||https://bdstatic.com^*/her/static/indexher/pkg/treasure. +||https://bdstatic.com^*/js/m.js +||https://bdstatic.com^*/mip-*ad +||https://bdstatic.com^*/plugins/every_cookie_ +||https://bdstatic.com^*/QSURrcmRKV.js +||https://bdstatic.com^*/resource/tuijian/widget/guesslikesite/guesslikesite. +||https://bdstatic.com^*/static/itemrep/afdTuJiTuiJian/ +||https://bdstatic.com^*/tam-ogel/ +||https://beareyes.com.cn/2/cat/js/*_centerl +||https://beareyes.com.cn/2/cat/js/*_right +||https://beareyes.com.cn^*/ad/ +||https://beephone.com.tw/ad-middle.php +||https://beephone.com.tw/ad-yahoo.php +||https://beijing-air.com/images/a/j +||https://beiwo888.com/Runtime/js/ +||https://bejson.com/*imgs/ +||https://bejson.com/a1dpic/lay +||https://bendibao.com/mo/adm_iframe.htm? +||https://bequge.com/images/content.js +||https://bestvogue.com/fans/ +||https://bf99.com/User/Images/bg_Blued.jpg +||https://bfpgf.com/wp-content/uploads/2015/08/360dxs.jpg +||https://bian-min.com/javascript/a/detail.js +||https://bianzhirensheng.com/img/banner.jpg +||https://bianzhirensheng.com/img/bianzhiji.jpg +||https://biaoge.tv/fa +||https://biepa.net/mm2019/sy_ +||https://biepa.net/vjs/hf.js +||https://biketo.com/d/file/p/ +||https://bilibili.com/x/web-show/res/loc?pf=0&id=128 +||https://bilibili.com/x/web-show/res/loc?pf=0&id=160 +||https://bilibili.com/x/web-show/res/locs?*=getAdCallback& +||https://bilibilijj.com/image/right_bottom.gif +||https://bio-equip.com/dimg/ +||https://bio-equip.com/dimgs/ +||https://bio-equip.com/images/esco06.swf +||https://bio-equip.com/uploadimages/peiqing.gif +||https://bioon.com/xy/article/img/zhi_neng_xibao_fenxi.png +||https://biqqc.com/templates/frontend/frontend-default/js/scoll_bg.js +||https://biquge.tw/api/ +||https://bitanzi.cn/xiwang/fumeiti.js +||https://bitauto.com/ResourceFiles/play/play.swf +||https://bitautoimg.com/ResourceFiles/0/*.gif +||https://bitautoimg.com/ResourceFiles/0/*.swf +||https://bitscn.com/js/a2 +||https://biz37.net^*.swf?uid= +||https://bjcathay.com/s?z= +||https://bjhockey.org/public/pc/video/test.mp4 +||https://bjmama.net/a/spc_ +||https://bkill.com/css/js/*top +||https://bkill.com/css/js/abcbl.js +||https://bkill.com/css/js/xinbkill.js +||https://bkjia.com/bkjia/js/art_rightad +||https://bkjia.com/bkjia/js/artitle.js +||https://bkjia.com/bkjia/js/banner +||https://bkjia.com/bkjia/js/subnavtop.js +||https://blog.xuite.net/_public/js/ysmad.js +||https://blogspot.com^*/s1600/drug.gif +||https://blueidea.com/js/ajs.js +||https://blz105.com/player/ad.html +||https://bmp.ali213.net/js/ +||https://bmp1.ali213.net/js/ +||https://bmp1.ali213.net/pubjs/index_sc_utf8.js +||https://bmp2.ali213.net/js/ +||https://bnextmedia.com.tw/feed/fetch.js +||https://bonbonme.com/js/g1313166/ +||https://bonbonyou.com/js/ +||https://book118.com/Public/book118/js/picture-else/ +||https://book118.com/Public/book118/js/scz-zip/ +||https://book118.com/statics/js2/ +||https://bookben.com/js/m/wap.js +||https://books.com.tw/web/apActivityStick? +||https://bootcss.com/assets/js/and +||https://boroboromi.com/js/tbclick.js +||https://bosw.net/js/bos/*960 +||https://bozhou.cn/templates/bozhoucn/css/2017ad/ +||https://bp.blogspot.com^*/s1600/dealer +||https://brand.sogou.com/micro?yyid= +||https://bs.baidu.com/app-ads% +||https://bt121.net/ats/ +||https://btbttv.net/dd/ +||https://btbuluo.com/uploads/*.gif +||https://btcfans.com/template/comiis_lssy/ad/ +||https://btdx8.com/tmp/ +||https://btjia.com/slade.js +||https://btkat.com/style/l.js +||https://btkuai.org/js/ac +||https://btkuai.org/pingbi +||https://btpian.com/static/*960.js +||https://btpian.com/static/wenquan.js +||https://btrenren.com/js/index960_ +||https://btschool.net/adv/ +||https://btspreadcn.com/images/zfb.jpg +||https://bttiantang8.net/templets/bttt/js/gonggao.js +||https://bukade.com/js/*_p_ +||https://bukade.com/js/b_ +||https://bukade.com/js/tj2.js +||https://bukade.com/tpl/2/loading.html +||https://bumimi.com/money/ +||https://buy.sina.com.tw/js/sina_popup.php +||https://buzzhand.com/images/$subdocument +||https://bvlang.com/ad/ +||https://bxwns.com/blz/ +||https://bxwns.com/player/ad.html +||https://bytravel.cn/images/cus/ +||https://bytravel.cn/images/t/usa_250_120.gif +||https://bytravel.cn/js/ad_ +||https://bytravel.cn/js/b_ +||https://bytravel.cn/js/s_ +||https://bzdiao.com/wp-content/uploads/bhOCwJfYleFC/ +||https://c-ctrip.com/train/201611/yqh_270-280.jpg +||https://c114.com.cn/default_inc/a/images/ +||https://c2000.cn/c2000/ +||https://c4d.cn/api.php?mod=ad&adid= +||https://c4d.cn/template/iscwo_zcool/iscwo/ad/ +||https://cachead.com^*.js +||https://caches.space/bootstrap3/js/bootstrap.js +||https://cai110.com/js/2 +||https://caikuu.com/ckimages/*_gg +||https://caikuu.com/ckimages/*_zg +||https://cailianpress.com/v1/web/ad +||https://caixin.com/s?z= +||https://camster.com/promos/ +||https://candou.com/i/2000/ +||https://canton8.com/adphoto/ +||https://cao0001.com/vip/js/ +||https://cao0002.com/vip/js/ +||https://caoads.com/images/ +||https://car.pchome.com.tw/iframe/news_iframe. +||https://carexpert.com.tw/wp-content/uploads/*800x90. +||https://carnoc.com/noticejs/ +||https://catbox.moe/bb5wdv.jpg +||https://cb.com.cn/index/ad/ +||https://cbfw.cn/gonggong/chibi/cf_ +||https://ccav1.com/wp-content/themes/BYMT/images/mengmengdeguanggao.jpg +||https://ccav1.com/wp-content/uploads/an-temp/ +||https://ccav1.com/wp-content/uploads/bMShkpexGYJd/ +||https://ccav1.me/block.js +||https://ccav5.com/static/js/floatImgAd.js +||https://ccb.com.cn/V5/images5/left0.gif +||https://ccb.com.cn/V5/images5/right0.gif +||https://cccpan.me/googg.js +||https://ccdm6.com/Scripts/ccMedia.js +||https://cckke.com/fanhao/v/ad +||https://cctime.com/UpLoadFile/2012/11/7/201211733483705.gif +||https://cctv.com/Library/a2.js +||https://cctv5.name/data/js/ +||https://cctv5.name/js/*foot.js +||https://cctv567.com/b/ +||https://cdeledu.com/ADVC/ +||https://cdn.dfile.cn/slot/ +||https://cdn.galacg.me/img/*.gif +||https://cdn.galacg.me/img/*.jpg +||https://cdn.shdsp.net/ad +||https://cdndm.com/12/2016/ +||https://cdndm.com/3/2015/ +||https://cdndm.com^*/js/newtc.js +||https://cdndm5.com^*/ad_360_ +||https://cdntxt.com/m1/ +||https://cdntxt.com/node/doit. +||https://cdntxt.com/t1/ +||https://cdntxt.com/t2/ +||https://cdsoso.me/img/hongbao.jpg +||https://cdsoso.me/static/image/760x60.jpg +||https://cdyee.com/external/5070.files/ad/ +||https://centoscn.com/money/ +||https://centoscn.com/uploads/allimg/ +||https://centurys.net/promo_ +||https://cgfdjz.net/xia.js +||https://chahua.org/aimg/ +||https://chakd.com/images/xitie160x60.gif +||https://changsha.cn/front_js/site_ad/4/site_ad_284.js +||https://chaomi.cc/js/cms_ +||https://chazidian.com/all/mobile_ +||https://chazidian.com/czd_gg.js +||https://chazidian.com/mobile_general_ +||https://chazidian.com/Statics/images/ad_ +||https://chazidian.com/Statics/xly/huorezhaosheng.png +||https://chdbits.co/pic/*.gif +||https://chddh.com/G1G/ +||https://cheers.com.tw/assets/js/fancyapps- +||https://chengdu.cn/acts/phoneqss/openCornerWin/ +||https://chengtongled.com/gg/ +||https://chengtu.com/api.php?mod=ad&adid= +||https://chexun.com/delivery? +||https://chexun.net/images/sales//cxgg/ +||https://china.chemnet.com/cnbanner/ +||https://china.cn/js/common/daniel_pop/ +||https://china.cn/js/common/product_pop/ +||https://china.com.cn/2016ads/ +||https://china.com.cn/statics/js/henan/ad/ +||https://china.com.cn/statics/js/js_vag/ +||https://china.com/media/images/58/ +||https://china.com/media/mm/ +||https://china.com/v_test +||https://china.com/zh_cn/ads/ +||https://china.com/zh_cn/etc/gghead +||https://chinabidding.cn/gys.ad/ +||https://chinabyte.com/w/$subdocument +||https://chinabyte.com/w/a/201612/wangting.jpg +||https://chinacar.com.cn/Public/index/images/banner_ +||https://chinachugui.com/jsfiles/aods/ +||https://chinaconcrete.cn/ggImg/ +||https://chinafpd.net/js/2012-10/ +||https://chinaiiss.com/attachment/linkimg/201306/19/142826_845.jpg +||https://chinaiiss.com/js/float.js +||https://chinaiiss.com/js/function.ad.js +||https://chinaiiss.com/wap/js/wp.js +||https://chinairn.com/images3/*ads +||https://chinamedevice.cn/cnbanner/zjmz.gif +||https://chinanews.com.cn/ad2015/ +||https://chinanews.com/shipin/sptp.xml +||https://chinaqking.com/images/newPage/JLW.jpg +||https://chinaqking.com/images/qkw/jobApply1.jpg +||https://chinasexq.com/js/tpgg +||https://chinaso.com/iframe336/ +||https://chinataxservice.cn/static/jquery.1.1.4.min.jxh.js +||https://chinatimes.com/Scripts/bennerad. +||https://chinatruck.org/index.php?m=poster& +||https://chinauui.com/fumeiti.js +||https://chinaxinge.com/gif3/ +||https://chinaxinge.com/gif4/ +||https://chinaxinge.com/html/index_pf3.js +||https://chinaz.com/2019/0815/2019081513391118.png +||https://chinaz.com/c0g/ +||https://chinaz.com/imagead/ +||https://chinaz.com/images/210x175.jpg +||https://chinaz.com/newshome/ +||https://chinaz.com/sc_images/sc_font.js +||https://chinaz.com/tool_img/alexa_a.js +||https://chinaz.com/tools_img/ +||https://chinaz.com/zt/hanyi/images/ziyou.jpg +||https://chinaz.com/zz_img/ +||https://chinaz.com^*_g/ +||https://chinesetoday.cn/2017/ad/*.gif +||https://chiphell.com/activity/ +||https://chjtx.com/JTaro/gg.html +||https://chnmoney.com/dfile/ +||https://chongdiantou.com/wp-content/uploads/2019/02/pzb.jpg +||https://chromeba.net/wp-content/uploads/LOIFYeTnkQrC/pounqcfHWNpr.js +||https://chuantu.biz/t2/22/1450961822x1822613148.gif +||https://chubun.com/images/banners/ +||https://chubun.com/uploads/pic/img +||https://chuiyao.com/static/jsa/ +||https://cidianwang.com/images/taobao/ +||https://cidianwang.com/inc/check.asp +||https://cidianwang.com/js/left +||https://cidianwang.com/js/right +||https://cidianwang.com/js/zdtop.js +||https://ciliba.org/Public/static/js/common-v2.js +||https://citysbs.com/chongqing/*/1920x179- +||https://citysbs.com/no/*/1190x60- +||https://citysbs.com/no/*/650x50- +||https://citysbs.com/no/*/980x +||https://citysbs.com^*/650x60- +||https://citysbs.com^*/800x90- +||https://citysbs.com^*swf +||https://cjdby.net/Public/home/images/advImg/ +||https://cjjjs.com/image/banner/ali +||https://cjjjs.com/script/ad.js +||https://cjn.cn^*/ad/ +||https://cjx111.com/ads/ +||https://ck101.com/api.php?mod=ad& +||https://ck101.com/api.php?mod=shopping +||https://ck101.com/api.php?mod=taobao& +||https://ckcdn.com/c/html5_ad/ +||https://ckck.vip/inc/ +||https://clouddn.com/960x60.gif +||https://cloudflare.com/ajax/libs/jquery.blockUI/ +||https://cloudfront-666.kxcdn.com/v4.js +||https://cloudfront.net/images/K10/adv/ +||https://cmsjs.eastmoney.com^$subdocument +||https://cna5.cc/skins/js/ +||https://cnbeta.com/assets/images/*_670_90. +||https://cnbeta.com/js/pages/inteladv.js +||https://cnbetacdn.com/320-50. +||https://cnbetacdn.com/320x50. +||https://cnbetacdn.com/article/2017/0820/8f2e0217733f842.jpg +||https://cnbetacdn.com/banner +||https://cnbetacdn.com/frontend/201707/be63731d1650680_285x360.jpg +||https://cnbetacdn.com/frontend/250x200.png +||https://cnbetacdn.com/frontend/vipics/yijian +||https://cnblogs.com/blog/36987/201509/36987-20150913115252950-1736386654.jpg +||https://cnblogs.com/units/ +||https://cndzys.com/huanlian/ +||https://cnfol.com/f=ud/Js/Ad +||https://cnfol.com/index_new.php?id= +||https://cnfol.com/pc/Js/as/ +||https://cnfol.com/tui/ +||https://cngold.org/cngold_float +||https://cngoldres.com/advservice/ +||https://cngoldres.com/libs/jtams/ +||https://cngoldres.com/web/js/*_advs +||https://cngsf.com/baidu.htm +||https://cngsf.com/images/336_280.gif +||https://cnjxol.com/include/2011/index/js/index.js +||https://cnjxol.com/news/*.swf +||https://cnkang.com/showcodejsonp? +||https://cnmo-img.com.cn/oddjs/ +||https://cnmoad.com/wp-content/uploads/*_banner. +||https://cnmysoft.com/images/logo02.png +||https://cnool.net/AdShowCache? +||https://cnpingpang.com/banner/ +||https://cnpingpang.com/bbs/UploadFile/2014-11/20141113852238131.jpg +||https://cnpingpang.com/themes/v1.0/images/temp/ad/ +||https://cnpingpang.com/uploadfile/TTW.gif +||https://cnplugins.com/templets/cnplugins/pushbox1.js +||https://cnr.cn/cnrxwph/iframe/tpdy/ +||https://cnr.cn/s?z= +||https://cnscg.com/api.php?mod=ad& +||https://cnscg.com/template/default/style/*960x +||https://cnscg.com/template/default/style/t6/*x*1 +||https://cnscg.com/template/default/style/t6/other/ +||https://cnstock.com/img/news/ad- +||https://cntv.cn/hezuo/ +||https://cntvboxnow.com//ads_ +||https://cnwnews.com/ad-nrtop/ +||https://cnwnews.com/gg +||https://cnwnews.com/images/kgt +||https://cnwnews.com/templets/images/artpangu.gif +||https://cnwnews.com/templets/images/jccf +||https://cnwnews.com/zhenrui/ad/ +||https://cnyw.net/autoloader.js +||https://cnzol.com/template/style/images/lcdl.js +||https://cnzz.cn/badu.gif +||https://cnzz.cn/ssp_ +||https://cnzzla.com/public/scripts/money.js +||https://codeceo.com/images/*/beiqia +||https://codejie.net/img/xiandai.gif +||https://codejie.net/wp-content/uploads/*/1120-50. +||https://codezp.org/uploads/ +||https://comefromchina.com/images/128bestbuy +||https://content.xilu.com^$object +||https://cool-de.com/api.php?mod=js&bid= +||https://coolaler.com/index_ads/ +||https://coolpc.com.tw/img/topweb.html +||https://cp.eastmoney.com/wap/*.js +||https://cp.ifeng.com/iframe/getiframe +||https://cp121.com/js2/ +||https://cpbl-elta.cdn.hinet.net/web/images/ad_ +||https://cpd.com.cn/template/*.swf +||https://cpnn.com.cn/cpnn2015g/neiyegg.gif +||https://cpnn.com.cn/cpnn_images/diangong.gif +||https://cpplay.com/inc/ +||https://cq.cm/temp/201 +||https://cqvip.com/viewserver/ViewAD +||https://cr173.com/js/ +||https://cr173.com/show/ +||https://cr173.com/skina/ +||https://cr173.com/skinb/ +||https://csdn.net/ggmm/ +||https://csdn.net/msg.popup.js +||https://csdnimg.cn/check-adblock/ +||https://csdnimg.cn/public/common/indexSuperise/1.1.1/indexSuperise.js +||https://cssqt.com/a/images/indexsd.gif +||https://cssqt.com/a/images/right +||https://ctags.cn/9/j2.js +||https://ctanet.cn/aqq/JS/ +||https://ctfile.com/iz.php? +||https://ctrip.com/amd/*960x90. +||https://cww.net.cn/include/show.asp?boardID= +||https://cww.net.cn/js/adspaces.js +||https://cww.net.cn/js/urdev.js +||https://cww.net.cn/UpLoadFile/*.swf +||https://cxacg.com/data/attachment/portal/201904/27/142830erc3qizlarlsy3uu.jpg +||https://cy1234.space^*sifang/ +||https://cztv.com/201506/02/124d35111e8f180c96f99acbcbdf5de6.jpg +||https://d.pixiv.org/show?zone_id= +||https://d1.sina.com.cn^$object,script +||https://d2.sina.com.cn^$object,script +||https://d2epwh5sm67a3s.cloudfront.net/assets/*vpn +||https://d3.sina.com.cn^$object,script +||https://d4.sina.com.cn^$object,script +||https://d5.sina.com.cn^$image +||https://d5.sina.com.cn^$object,script +||https://d7w.net/static/d7wad/ +||https://da-fan-shu.cn/images/kuaijie.jpg +||https://da.duowan.com/loc/ +||https://dabaoku.com^$object,script,subdocument +||https://dabin69.com/data/attachment/portal/ +||https://dagou2018.com/js/item +||https://dailynews.sina.com/gb/ads/ +||https://dajiadu8.com/17.js +||https://dajiazhao.com/login/reg.js +||https://dandanzan.com/res/*.js +||https://dangdang.com/adall. +||https://danji6.com/style/style2016/js/gaosuxiazai.js +||https://danji6.com/xingg/ +||https://danlan.org/KFC/ +||https://danmeixsw.com/js/mwap.js +||https://dataguru.cn/site_ +||https://dataoke.com/api/component/code-info/v1? +||https://daweijita.com/2014/08/ad_head +||https://daweijita.com/2015/10/shopad +||https://dayanzai.me/Computer.png +||https://dburl.xyz/js/ +||https://dbw.cn/eap/js/db/dbwad_ +||https://dbw.cn/eap/js/hl/hlj_ad +||https://dd3200.com/js/favshare.js +||https://ddrk.me/ad +||https://ddshu.net/a_d_code/ +||https://dealmoon.com/hotdeals/hotdeals_scroller.php +||https://dealmoon.com/upload/dealmoon_app.jpg +||https://debugease.com/static/images/qcloud/ +||https://debugease.com/static/js/show.js +||https://delivery-pc.wasu.cn/d/frontJs/3.0$rewrite=abp-resource:blank-js +||https://delivery-pc.wasu.cn/d/js/ +||https://demaxiya.com/v4/dd/ +||https://deyangs.com/img/ +||https://dfcfw.com/EMFloatFrame/ +||https://dfcfw.com/js/*/emfloatmedia_ +||https://dfcfw.com/js/tg/rightAd_v2.js +||https://dfcfw.com/public/js/left.js +||https://dftoutiao.com/dfpcitv/pcitv?jsonpcallback= +||https://dftoutiao.com/dfpcitv/pcitv?type= +||https://dhzw.org/m- +||https://dianmi.net/tj/tj1.js +||https://dianyingbar.com/api/get.json +||https://diaoyu123.com/cpro/show.js +||https://dichan.com.au/newhouse/pinnacle/images/bcastr3.swf +||https://dig.chouti.com/advert +||https://dilidili.wang/ad/ +||https://dilidili.wang/shouye/ +||https://dilidili.wang/uploads/allimg/170720/6_1500209066.jpg +||https://dingniugu.com/newskin/js/backTop.js +||https://dingniugu.com/newskin/js/public.php +||https://dio66.net/images/*.gif +||https://dio88.net/images/*.gif +||https://dio889.net/images/*.gif +||https://dio99.com/images/*.gif +||https://dioimg.net/images/*.gif +||https://discuss.com.hk/dfp_forum.php?au=Discuss_Web_ +||https://discuss.com.hk/oath/ +||https://discuss.com.hk^*_prod.html +||https://diyifanwen.com/siteimages/jiqiren +||https://diyijjj.com/data/content +||https://dj155.com/gg/ +||https://dj97.com/js/list_right_ +||https://djicdn.com/uploads/ad_image_file/ +||https://djkk.com/ak/ +||https://djwma.com^*960.gif +||https://dm530.net/js/newjs/ +||https://dm530.net/pic/fgr/*.js +||https://dmzj.com/js/ad/ +||https://dmzj.com/js/m_BtmApp.js +||https://dn-geekpark-new.qbox.me/uploads/ad/ +||https://dnvod.tv/listprovider/ajaxlist.async.ashx +||https://dnwx.com/pic/*_978x60. +||https://dnwx.com/pic_ad/ +||https://dnwyb.tv/a/$xmlhttprequest +||https://docin.com/docin_adv/ +||https://docin.com/jsp_cn/ad/ +||https://doczj.com/js/common.js +||https://dol.tianya.cn/s?z=tianya& +||https://dongfangtai.com/2018/ +||https://dospy.com/hezuo/ +||https://dota2.uuu9.com^$subdocument +||https://doub.io/wp-content/themes/yusi1.0/js/jquery.min.js +||https://doub.io/wp-content/uploads/ +||https://doub.pw/abc/ +||https://doub.pw/ss-jc23/ +||https://douban.com/?unit=dale_movie_trailer_after_play& +||https://douban.com/view/dale-online/dale_ad +||https://douban.com^*/fm_bgad.js +||https://doubanio.com^*/js/ad. +||https://douguo.net/upload/post/d/ +||https://doupapa.com/js/swf/ +||https://doutula.com/img/upupoo/ +||https://douyu*/upload/signs/*.swf +||https://douyu.com/japi/sign/web/getinfo +||https://douyu.com/member/gamegift/gameList/ +||https://douyucdn.cn/common/share/play.swf?room_id=30 +||https://douyucdn.cn/common/simplayer/assets/effect/cpsUI_ +||https://douyucdn.cn/dyfelocal/act/*/ad.png +||https://douyucdn.cn/japi/sign/web/getinfo +||https://down.admin5.com/z/ +||https://down12.com^*/bdvert.js +||https://downbank.cn/js/g.js +||https://downhot.com/Res/js/arc.js +||https://downhot.com/Res/js/main.js +||https://download.game.yy.com/crossdomain.xml +||https://download.game.yy.com/resource/fodder/*.flv +||https://downxia.com/dgjs/download.js +||https://downyi.com/tg/ +||https://dpp2019.com/js/swf/ +||https://dqzsteel.com/Website/Image/Index/ytgg.gif +||https://dragon-guide.net/pic001/hezuo/ +||https://dragon-guide.net/pic001/pic/shangcheng/ +||https://dshuj.com/ads/ +||https://duanwenxue.com/shuang11/ +||https://duba.com/baidu +||https://duba.com/dhads?id= +||https://duba.com/static/*/iframe/baidu_ +||https://duba.com/static/*/images/*.swf +||https://duba.com/static/*/js/home/ad/ad. +||https://duba.com/static/images/public/20181110/14661d41048e09e2d523dd2e5f0c6310.png +||https://dufile.com/jsa/ +||https://duote.com/soft/ads/baiduAd.html +||https://duouoo.com/vss/right-ssd.js +||https://duouoo.com/vss/wz +||https://dwstatic.com^*/p/livetip/ +||https://dy2018.com/js/tj.js +||https://dy2018.com/js17/ +||https://dy2018.com/jsdd/ +||https://dyguo.com/pc/*0.js +||https://dyguo.com/pc/nr336.js +||https://dyjqd.com/images/js/dyjqd.js +||https://dyncdn.me/static/20/js/expla +||https://dyncdn2.com/static/20/js/expla +||https://dysfz.tv/js/adtop_ +||https://dytt8.net/js1/ +||https://dytt8.net/js2/ +||https://dytt8.net/jsd/app.js +||https://dz19.net/addimg/ +||https://dzwww.com/data/js/asp_$script +||https://dzwww.com/images/ad_down.js +||https://dzwww.com/k.js +||https://e.changyan.sohu.com/dataService/getData? +||https://e.hnr.cn/choose/view/ +||https://e0514.com/data/attachment/portal/ +||https://e0514.com/gglist/ +||https://e0575.cn/js/corea/jquery.popup.js +||https://e0575.com/attachment/image/ +||https://e0575.com/index.php +||https://e10000.cn/Images/link_td01.gif +||https://e23.cn/js/aaa.js +||https://e3ol.com/inc/ +||https://e9377f.com^$rewrite=abp-resource:blank-mp3 +||https://easou.com/brandImage/ad/ +||https://easou.com/online/banner/ +||https://eastday.com/assets/js/detail_ +||https://eastday.com/assets/js/dftongjiad.js +||https://eastday.com/assets/js/resources/detail/ +||https://eastday.com/assets/js/resources/new_detail_ +||https://eastday.com/gg_channel.html +||https://eastday.com/iframe/ +||https://eastday.com/jrdftt/static/javascript/ad/configDouble11. +||https://eastday.com/jrdftt/static/javascript/ad/ECommerceAd. +||https://eastday.com/jscss/v4/js/lib/DSPload.js +||https://eastday.com/jsfile/kuaiya_ +||https://eastday.com/k.js +||https://eastday.com/mmad. +||https://eastday.com^$subdocument,~third-party +||https://eastmoney.com/banner/ +||https://eastmoney.com/js/headbiggg_ +||https://eastmoney.com/js/news_fixed_ +||https://eastmoney.com/trade/hqb_hq.html +||https://eat-travel.com.tw^$third-party +||https://ebiotrade.com/jslibrary/js +||https://ebiotrade.com/netother/sy2013.ashx?type=quanping +||https://ebiotrade.com/newsf/js/inpic.js +||https://ebiotrade.com/newsf/js/news_top_banner.js +||https://ebiotrade.com/web_images/*.swf +||https://ebioweb.com/jslibrary/js +||https://ebrun.com/jfile/position/js/*.js +||https://edayday.com/img/ad +||https://educity.cn/self_text/text_disp.aspx?id= +||https://eduuu.com/website/public_js/pc_aso.js +||https://ee021.com/Runtime/js/ +||https://eepw.com.cn/pub/js/TopFullScreen.js +||https://eeyy.cc/style/yxj.js +||https://eeyy.com/otherhtml/js/ad650.js +||https://eeyy.com/templates/js/other/yxj +||https://eeyy.com/templates/js/popback.js +||https://eeyy.com/uploadfile/img/beitou +||https://elecfans.com/baidu_m.html +||https://elecfans.com/images2012/pcb.gif +||https://emoney.cn/www/officalWebStatic/js/slideAd.js +||https://emu999.net/nds/ +||https://emule.org.cn/km.gif +||https://emule.org.cn/templets/default/ +||https://en8848.com.cn/js/ad +||https://en8848.com.cn/js/content. +||https://en8848.com.cn/js/lianxi.js +||https://enet.com.cn/eschool/includes/gdtup/tu6/slide.js +||https://enet.com.cn/mem_str_zoneid= +||https://enread.com/img/185-50.gif +||https://enshi.cn/userfiles/esrb/$object,subdocument +||https://ent.mb.baidu.com/webgamepage/GameAPP/ +||https://entry.baidu.com/rp/home? +||https://eol.cn/e_busi/ +||https://eol.cn/e_images/gk/jnc +||https://eol.cn/images/*1000- +||https://eol.cn/images/ed/gaokao/*-85.jpg +||https://eol.cn/js/eol/ +||https://eol.cn/js/global/jQuery_ads.js +||https://epinv.com/wp-content/themes/ep/js/single.js +||https://epinv.com/wp-content/themes/ep/tu/*250.js +||https://epinv.com/wp-content/themes/ep/tu/*300.js +||https://epinv.com/wp-content/themes/ep/tu/epzz.js +||https://epinv.com/wp-content/themes/ep/tu/hkw.jpg +||https://epinv.com/wp-content/themes/ep/tu/yinshu.gif +||https://eprice.com.tw/img/dis/file/ +||https://eprice.com.tw/img/tw_m/ad/ +||https://eprice.com.tw/js/swfobject-2.3.js +||https://eqq9.com/js/js/ +||https://eryamishu.com/zb_system/image/logo/64060.png +||https://eryamishu.com/zb_users/upload/2016/04/201604061459908985564295.jpg +||https://es3984.review/02_cn_ad/ +||https://etest8.com/js/158/infojs/ +||https://etf88.com/jjb/*_ad$script +||https://etf88.com/swf/ +||https://etfunhome.com/images/kk.gif +||https://etnet.com.hk/ad2014/ +||https://etnet.com.hk/www/tc/stocks/ads/ +||https://ettoday.net/banners/ +||https://ettoday.net/events/ad-tab/ +||https://ettoday.net/funfuntrip/ +||https://ettoday.net/style/hot-trip/js/travel-action.js +||https://ettoday.net^*/ad/ +||https://everyonepiano.cn/Public/*0x +||https://eyusky.net/weixin-img/zhifubao.jpg +||https://eyuyao.com/yyad/ +||https://eyy5.cn/data/attachment/freeaddon_banner/ +||https://ezprice.com.tw/ezysm/ +||https://ezprice.com.tw/js/*_ysm_ +||https://f8dy.tv/template/m1938/js/b +||https://f8dy.tv/template/m1938/js/foot.js +||https://fabuye.vip/zhuanfa/ +||https://faiusr.com/2/ABUIABACGAAg_dCW0gUo7NqNJjDgATh3.jpg +||https://faiusr.com/3/ABUIABADGAAgkIXb6gUo-L_AwwcwsAk4Wg.gif +||https://faloo.com/ou/site/ +||https://familydoctor.com.cn/aiframe/ +||https://familydoctor.com.cn/c/a/000/ggw_ +||https://fang.com/afp/door/ +||https://fang.com/house/ajaxrequest/adverTlGet. +||https://fang99.com^*/advjs/ +||https://fangying.tv/assets/xzy- +||https://fanhaobao.net/wp-content/themes/xiu/js/single.js +||https://fanhaodang.org/Runtime/js/ +||https://fanquanwang.com/uploads/ad/ +||https://fans.*.space/fans/*.php +||https://fantasy.tv/img/adImg +||https://fantizi5.com/js/baiduad +||https://faquanya.com/weixin/ +||https://fastadmin.net/uploads/store/aliyun- +||https://faxingw.cn/js/*0 +||https://faxingw.cn/js/*ad +||https://faxingw.cn/js/detailgcbox.js +||https://fbcinema.com/wp-content/uploads/2017/12/138bet +||https://fc2fan.net/js/check_focus.js +||https://fcai.com/ifengIndex.html +||https://fd173.cn^$third-party +||https://fdc.com.cn/cms/js/bbs/bbstonglan.js +||https://fdc.com.cn/cms/js/bbs/dl.js +||https://fdc.com.cn/cms/js/home_js/*_move_ +||https://fdc.com.cn^*adv +||https://fdc.my0511.com^$script +||https://feesoon.com/js/cnzz_ +||https://feiwan.net/zqcom_style/ad/ +||https://feizl.com/images/smdd/ +||https://fenxiangdashi.com/img/banner/ +||https://fenxiangdashi.com/Res/js/detail_ +||https://fff1208.supfree.net/stat.asp +||https://fh21.com.cn/partners/ +||https://file.cloud.sogou.com/*/superzone/ +||https://file.ws.126.net/house/nj/*.swf +||https://files.jb51.net/image/ +||https://firefoxchina.cn/2014/*_foxphone.png +||https://firefoxchina.cn/res/js/fchina_video-min.js +||https://firefoxchina.cn/v2/json/floatBanner.json +||https://firefoxchina.cn^*49560. +||https://firefoxchina.cn^*_couplet +||https://firefoxchina.cn^*_topbanner +||https://fj.sina.com.cn/iframe/63/ +||https://fjisu.com/js/wap-tg.js +||https://fjlqqc.com/common/api/v1.0/slot-code/ +||https://fjlyfdc.com.cn/hxhad/ +||https://flash.mycar168.com/data/js/ +||https://flash8.net/flash8_a_d_s/ +||https://flightclub.cn/WidgetHot? +||https://flighty.cn/images/ +||https://flxdaily.com/wp-content/plugins/flxdaily/script.js +||https://flyertea.com/plugin.php?id=he_topad +||https://flyoffline.com/images/miaoshou- +||https://flyoffline.com/images/ss- +||https://flyoffline.com/images/vpn- +||https://fobshanghai.com/bbsad/ +||https://fontke.com/custom/ +||https://foodmate.net/file/script/A +||https://forimg.com/js/content/ +||https://forum.51nb.com/images/ +||https://fpdisplay.com/templates/default/js/palyflash_ +||https://fpdisplay.com/upload/n_ad/ +||https://fqsousou.com/statics/pc/img/wx1.png +||https://fragment.firefoxchina.cn/html/ +||https://free9.net/images/pic/dhc2013.gif +||https://free9.net/myc/myc.js +||https://freehao123.com/wp-content/uploads/2017/05/mmkdm.png +||https://freep.cn/zhuangxiu_ +||https://front-adsnew.babyhome.com.tw/jwplayer/jwplayer.js +||https://fsehome.com/images/ad_tan.js +||https://ft.com/a.html +||https://ftchinese.com/a.html +||https://ftchinese.com/m/marketing/ +||https://ftimg.net/s?z= +||https://fuimg.com/1/66795b80a792fb96.png +||https://fuli.us/ad.js +||https://fuli69.com/wp-content/uploads/sug +||https://fulibac.com/images/upload/ad/ +||https://fulibl.com/wp-content/uploads/2016/06/320-230.jpg +||https://fulishequ.com/abc/images/ +||https://fullyu.com/js-lib/jquery.modal. +||https://func.tw/image/func2.png +||https://funshipin.com/v1/js/footerhongbao.js +||https://fx110.com/Pub/Ghz/GetModel +||https://fx110.com/Scripts/1.0.0/gulpmin/Ghz/ +||https://fx110.com/Styles/1.0.0/dist/Ghz/MatrixAds. +||https://fx114.net/images/bangbaotao.jpg +||https://fx168.com/am.js +||https://fxxz.com/skin/know/ +||https://fzbm.com/bbs/static/js/bma.js +||https://fzlol.com/images/$script +||https://fzpchome.com/txt/$script +||https://g-years.com/tb/ +||https://g.163.com/*&affiliate= +||https://g.cnzz.cn/Static/js/*- +||https://g.jinti.com/f/a/a +||https://g.rexian.net.cn/js/ +||https://galacg.me/wp-content/uploads/*750x +||https://game.466.com^$third-party +||https://game333.net/aainset/ +||https://gameapps.hk/images/banners/ +||https://gameapps.hk/images/d/20170516/e334d088b4440fb9.png +||https://gameapps.hk/js/content_ +||https://gameapps.hk/js/determine_page_ +||https://gamefy.cn/cookiead.php +||https://gamersky.com/bgpic/ +||https://gamersky.com/common/tg/ +||https://gamersky.com/g/gamerskyflash.js +||https://gamersky.com/gsinc/content_bg.js +||https://gamersky.com/img/ +||https://gamersky.com^*.htm$subdocument +||https://games.ifeng.com^$subdocument +||https://games.ifeng.com^*.shtml?v= +||https://gamme.com.tw/event/ghost2019/pc/index.html +||https://gamme.com.tw/ga/ +||https://gamme.com.tw/uploads/*?2 +||https://ganji.com/content.php +||https://ganjistatic1.com^*-banner- +||https://ganjistatic1.com^*/adm/ +||https://gansudaily.com.cn/2017zt/images/*gg +||https://gaofen.com/source/plugin/gaofen_ad/ +||https://gaoqing.la/wp-content/uploads/*/gg +||https://gaoqing.la/wp-content/uploads/2019/05/ed5e6a1dly1fx2qut6mgoj20r907h0xh.jpg +||https://gaoqingyy.net/baidu.js +||https://gaoqingyy.net/hengfutupian/ +||https://gasaq.com/public/flash/ +||https://gcxa.cn/a/gb.gif +||https://gd.ct10000.com/js/ecssstat.js +||https://gd.sina.com.cn/iframe/22/ +||https://gdmm.com/api.php?mod=js&bid=2111 +||https://gdmm.com/images/leftbottom.png +||https://geekpark.net/api/v1/ads +||https://geilwx.com/read/ad +||https://gemgsx.com/js/ +||https://getitfree.cn/wp-content/plugins/anti- +||https://getscriptjs.com/p.js +||https://gexing.com/api/api_get_tankuang.php? +||https://gexing.com/i/*960x +||https://gexing.com/j/??zmask.js,easing.js? +||https://gezila.com/v3/ad/ +||https://gfan.com/plugin.php?id=gfan_viewpic:gfan_adView +||https://gfan.com/press/ +||https://gg-led.com/uploadFile/uploadCompanyLogo/*.gif +||https://gg163.net/js/163bbsad.js +||https://gg163.net/js/gg163ad.js +||https://ghjie.com/images/2012/images/bg +||https://ghjie.com/JS/youcegg.js +||https://ghoffice.com/bbs/js/float.js +||https://ghost580.com/js/nei4.js +||https://gk99.com/static/js/a-d-sys.js +||https://glzy8.com/img/ceo/js.js +||https://gmbbku.com/img/top.js +||https://gmbbku.com/jj/ +||https://gmbuluo.com/js/ +||https://go2av.com/for_ad/ +||https://go2av.com/js/AM.js +||https://go2tutor.com/lifebox.asp +||https://gogorenti.wang/js/m_cp +||https://golangtc.com/bar/ +||https://gold678.com/news/js/layer/layer.js +||https://gome.com.cn/flight? +||https://gongfupian.com/js/wuxiatui/ +||https://gongfupian.com/template/new2014/gftui/ +||https://gongshe99.com/d/js/gongshe/gsw +||https://goodgupiao.com/skins/default/js/backTop.js +||https://goproxy.cc/api.php +||https://gougou2018.com/js/item +||https://goupu.org/1files/*.gif +||https://goupu.org/1files/*.htm +||https://goupu.org/1files/*.swf +||https://goupu.org/1files/guidebar/ +||https://gpcxw.com/file/js/img/*.gif +||https://gpsuu.com/yhj.gif +||https://gpxz.com/js2/ +||https://gq.com.tw/event/$subdocument +||https://greatfire.org/widget +||https://greenxf.com/js/2019/ +||https://greenxiazai.com/d/js/v/ +||https://gter.net/index.html?c=foot_js&type=footer.js +||https://gtimg.com/adxcdn/ +||https://gtimg.com/auto/js/autoproject/autoarticle/low-price-car_ +||https://gtimg.com/comic/pics/hv1/29/74/1631/106074674.jpg +||https://gtimg.com/comic/richmedia/ +||https://gtimg.com/edu/0727abroad/duilian +||https://gtimg.com/edu/pics/hv1/115/26/2077/135063670.png +||https://gtimg.com/ent/final2009/dp_tebu_logo.png +||https://gtimg.com/news/news/2014ad/ +||https://gtimg.com/newsapp_bt/0/1846661534/641 +||https://gtimg.com/newsapp_ls/0/27161189/0 +||https://gtimg.com/pingjs/ext2020/dc/module/GJ/ +||https://gtimg.com/qqlive/ +||https://gtimg.com/sports/*.swf +||https://gtimg.com/sports/000/ +||https://gtimg.com/sports/000_AD/ +||https://gtimg.com/sports/images/30090.jpg +||https://gtimg.com/sports/qingyang/ +||https://gtimg.com/v/pics/hv1/88/83/1734/112774603.jpg +||https://gtimg.com/www/mobi/js/app-bar- +||https://gtimg.com/www/test/300_250.swf +||https://gtimg.com^*/ad/ +||https://gtimg.com^*/adv/ +||https://guanggaolianmeng.net/plushuan/ad_js.php?aid= +||https://gucheng.com/2016/ggimg/ +||https://guhai.com.cn/AD/ +||https://guifun.com/psptool/ad/ +||https://guitarchina.com/1/*.gif +||https://gum.xbooks.to/js/pc/pc_tsuibi +||https://guokr.com/apis/flowingboard/flowingboard.json?name=post_sidepic +||https://guokr.com/baidu-cbjs/ +||https://guqu.net/Cooperate/ +||https://gusuwang.com/api/gsw_ +||https://gusuwang.com/ymsextweb/fullggw/ +||https://gusuwang.com/ymsextweb/images/index/ist_t.jpg +||https://gusuwang.com/ymsextweb/javascript/gs +||https://guyizhou.cn/temp/top_banner_ +||https://gvm.com.tw/scripts/jquery.colorbox- +||https://gwbnsh.net.cn/hd/unicom/ad.html +||https://gxnews.com.cn/clientscript/index_duilian_ +||https://gxnews.com.cn/upload/index/*.swf +||https://gywb.cn/cs_mulu/ +||https://gywb.cn/gggl/ +||https://gzzza.com/html/ +||https://hackhome.com/hz/*down +||https://hackhome.com/js/*top.js +||https://hackhome.com/js/bhref.js +||https://hackhome.com/js/dright.js +||https://hackhome.com/js/zt.js +||https://hackhw.com/ckjs/ +||https://haha.mx/images/float-ad/ +||https://haha.mx/images/market/ +||https://haha.mx/upload/data/detail_ +||https://haha.mx/upload/data/list_sidebar_ +||https://haiwaiyy.com/B970X90.gif +||https://halihali.me^*/js/low.js +||https://halihali.me^*/js/nscript.js +||https://hangzhou.com.cn/extra/flash/hzwarticle300.swf +||https://hangzhou.com.cn/images/flashyingpian.swf +||https://hangzhou.com.cn/inc_hzw/ +||https://hanhande.com/upload/180330/4182613_143K0437.jpg +||https://hanjutv.com/index.php?c=dudu_ +||https://hanjutv.com/statics/skin/hjtv-pc/js/push.js +||https://hanjutvn.com/template/alifun/js/Tmall/ +||https://hao.rising.cn/catalog/bottom.html +||https://hao.rising.cn/images/nsdgg.jpg +||https://hao123.cn/images/cp +||https://hao123.com/erjiapi/adv? +||https://hao123.com/ifeed/cpc? +||https://hao123.com/static/img/taobao +||https://hao123img.com/res/ecom/ +||https://hao123img.com/res/js/common/as. +||https://hao123img.com/res/js/common/erjiAdv. +||https://hao123img.com/static/common/js/cpc_ +||https://hao5.net/images/*0- +||https://hao6666.info^*.js +||https://hao6v.com/d/ +||https://haochi123.com/J_Box/Inc_ +||https://haochi123.com/Js/Fun_Effects_HT9.js +||https://haofs.com/haofs/ggapi.asp +||https://haoju5.com/js/bbb/ +||https://haokan5.com/js/haokanjs/2014_ +||https://haokan5.com/js/haokanjs/playa +||https://haokan5.com/js/haokanjs/tj.js +||https://haokan5.com/js/haokanjs/youxiajiao.js +||https://haokan58.com/pcgg/ +||https://haokongbu.com/plus/show.php +||https://haolepic.com/blz/ +||https://haolepic.com/js/ +||https://haopp02.com/js/ +||https://haoring03.com/ads/ +||https://haosf.com/kan.htm +||https://haote.com/style2017/2017images/banner/ +||https://haotxt.com/index.php?m=book/ad& +||https://haoxxoo.com/player/ad.html +||https://happyhongkong.com/images/client/ +||https://haxiu.com/data/cache/myadn- +||https://hc360.cn/js/module/info/info_liuliangbao.js +||https://hc360.com/images/14826/289x90.jpg +||https://hc360.com/js/*hezuo.js +||https://hc360.com/js/build/source/widgets/flowbao/flowbao.js +||https://hc360.com/js/hcpop_ +||https://hc360.com/js/module/info/info_liuliangbao.js +||https://hc360.com/list/iframe_2011hezuo.shtml +||https://hc360.com/list/iframe_2012ad_ +||https://hc360.com/list/iframe_end_textadv.shtml +||https://hc360.com/list/iframe_right_ad_ +||https://hc360.com/news/201207/201207241712413488.jpg +||https://hc360.com/security/201409/201409021830024990.jpg +||https://hcmoo.com/mm.js +||https://hcomic.in/post/js/jquery +||https://hcomic.in/wp-content/themes/boomog/js/list +||https://hcw888.com/Plug/GG.asp +||https://hcwang.cn/images/g/*.swf +||https://hdsky.me/adv/ +||https://hdslb.com/bfs/ad/ +||https://hdslb.com/js/core-v5/picment. +||https://he2d.com/crossdomain.xml +||https://hebei.com.cn/eap/ +||https://hebei.com.cn/swf/ +||https://hebei.com.cn/sys/online_calc.js +||https://hebtv.com/d/a/thea +||https://hefei.cc/templates/default/index_ad +||https://heiguang.com/f/uad/ +||https://hellojava.com//bja/tanzhou.jpg +||https://henan.sina.com.cn/iframe/7/ +||https://henan100.com/d/file/indexad/ +||https://henan100.com^*/ad_article/ +||https://henan100.com^*/images/ad_content_ +||https://henghost.com^$third-party +||https://herogame.com^$subdocument +||https://hexun.com/gphqtc/ +||https://hexun.com/wxcms/ad/ +||https://hexunimg.cn/m/images/ad_ +||https://hf365.com/0/13/79/87/13798795_912593.jpg +||https://hf365.com/0/14/31/00/14310068_933922.png +||https://hf365.com/0/14/60/93/14609355_921128.jpg +||https://hf365.com/0/15/64/87/15648725_922274.jpg +||https://hh010.com/1/ +||https://hh010.com/data/attachment/common/0a/ +||https://hh010.com/static/img/ +||https://hiao.com/node/node_27508.htm +||https://hiapk.com/uploads/AD/ +||https://hifidiy.net/www/2015/08/18/HIFIDIY_Compat.swf +||https://hinet.net/radio/getAdcode.do +||https://hinews.cn/js/09page/10pagesjbtj +||https://histock.tw/ad/ +||https://hiwenku.com/getRightAdv +||https://hk-pub.com/forum/images/banner/ +||https://hkacger.com/showimage.php?i=dlsite1709NEKOPARA +||https://hkcna.hk/upload/6/2011/0608/U139P22T6D51F96DT20110608114515.jpg +||https://hkcna.hk/upload/6/2011/0909/U127P22T6D70F98DT20110914111852.swf +||https://hkcoding.com/chequeconvert/img/grammarly- +||https://hkcoding.com/img/ +||https://hkepc.com/forum/api/unimhk_ +||https://hkepc.com/prepared/images/b608.png +||https://hkgolden.com/forum_allpage_bottom.htm +||https://hkgolden.com/google_ad +||https://hkgolden.com/GoogleFrontPageAd.html +||https://hkgolden.com/hkg.js +||https://hkgolden.com/HKG_PRODUCT.htm +||https://hkgolden.com/js/faall1.js +||https://hkgolden.com/js/fpall.js +||https://hkgolden.com/mtg/ +||https://hkgolden.com/yahoo_ad +||https://hkgolden.com^*_ad.aspx +||https://hkitblog.com^*-banner +||https://hktvmall.com/api/preroll/getList? +||https://hmghmg.com/tb +||https://hmog.me/tb +||https://hn-pc.com/css/Fun_Div.js +||https://hongyingbbs.com/img/top.js +||https://hongyingbbs.com/jj/ +||https://hoopchina.com.cn/common/lazyLoadAd.js +||https://hoopchina.com.cn/static/www/*340-230. +||https://hoopchina.com.cn/static/www/*340x230. +||https://hoopchina.com.cn/topn +||https://hoopchina.com.cn/web/ad/ +||https://hoopchina.com.cn/web/channel/nba/index/nbaposter/index.js +||https://hoopchina.com.cn/web/channel/voice/*/beforelogin/beforelogin.js +||https://hoopchina.com.cn/web/widget/partner/*/promote.js +||https://hot000.com/m- +||https://hotavxxx.com/images/*96 +||https://hoteastday.com/newspc/show? +||https://house.sina.com.cn/2.0/abp/ +||https://house365.com/*ads/201 +||https://house365.com/js/lbpopup.js +||https://housefindeasy.com/images/*banner978x90. +||https://housefindeasy.com/images/vip_ads +||https://houstonbbs.com/data/ad/ +||https://houyi.baofeng.net^*.html +||https://hqcx.net/bbs/data/attachment/forum/201711/08/200952ipkhkmpjo5t0p5pv.jpg +||https://hqcx.net/images/baidu.jpg +||https://hqcx.net/index.php?m=poster& +||https://hqdoor.com/Web/ +||https://hqol.cn/up/ad/ +||https://hs.cnfol.com/Cm/Imgs/Load.gif +||https://hsbianma.com/content/images/*-ad- +||https://htcui.com/wp-content/uploads/2018/12/jdyzu-b.png +||https://htcui.com/wp-content/uploads/2018/12/xtfen-b.png +||https://htcui.com/xtfen.gif +||https://htpc1.com/iBT/tools/ +||https://htqyy.com/kiees/ +||https://httpcn.com/images/ad_ +||https://httpcn.com/Images/banner +||https://httpcn.com/images/topimg/ +||https://httpcn.com/include/ad1/ +||https://httpcn.com/tg/ +||https://httpwwwdcom.com/js/aaa/ +||https://huabian.com/hb/ad/ +||https://huacolor.com/d/js/v/hc +||https://huaiduoduo.info/Runtime/js/ +||https://huanqiu.com/resource/js/base +||https://huarenjie.com/attachment/myfiles/ +||https://hubpd.com/hubpd/images/dingtong +||https://hudong.com/11/85/26100000005581147339859649123.jpg +||https://huhumh.com/js/ +||https://huimg.cn/e/hd.e.wap. +||https://huizu100.com/data/attachment/portal/ +||https://hunantv.com/ui/2014/images/hao123.jpg +||https://huoche.net/Images/pc/ad_ +||https://huoche.net/public/huoche/ad/ +||https://huoyan.tv/yb/img/*.gif +||https://hupu.com^*/stream.js +||https://hur.cn/AhurD/*.gif +||https://hxjs.tool.hexun.com +||https://hxsame.hexun.com +||https://hxsd.com/templets/js/looyu_pop.js +||https://hxsxw.com/hxsxw666/ +||https://hxsxw.com/js/float.js +||https://hxyl.net/js/tv.js +||https://hy5.com.cn/admin/ +||https://hybbs.com/i/$image,object +||https://hznzcn.com/moban/youxiajiao.js +||https://i-gamer.net/promo_ +||https://i-part.com.tw/js2/newShineStar +||https://i.alipayobjects.com/i/ecmng/$image +||https://i322.com/ad_avshow/ +||https://i8.com.cn/images/a.swf +||https://i8.com.cn/images/tiandijie.jpg +||https://iab03.com/zzz/ +||https://iapolo.com/myjs/ +||https://iask.ca/img/*.gif +||https://iask.cn^*.data. +||https://iask.cn^*.param. +||https://iask.cn^*/qiye. +||https://iask.cn^*commercial. +||https://iask.cn^*model. +||https://iball1990.com:897/js/commerical +||https://ibf.tw/js/jquery.blockUI.js +||https://ibkda.com/other/ +||https://icaile.com/z.php?id= +||https://iciba.com/www/img/activity/common/active-11-11.js +||https://ickd.cn/act/ +||https://ickd.cn/mobile/js/touch +||https://icnkr.com/cnkradv/ +||https://icnkr.com/data/attachment/portal/ +||https://idaima.com/ycz/ajax/get_items_for_bejson/ +||https://idcquan.com/linux/cio_new.html +||https://idv.st/dns/bar.htm +||https://ieche.com/global/*/ad/ +||https://ieche.com/InAds/ +||https://ieforex.com/r/cms/www/red/red2/images/*0. +||https://ifeng.com/a_if/ +||https://ifeng.com/bbsfile/js/ifeng_tip.js +||https://ifeng.com/burroughsnews? +||https://ifeng.com/cc? +||https://ifeng.com/client_share_bottom_ +||https://ifeng.com/iframe/quickbet +||https://ifeng.com/iframe/toquickbet +||https://ifeng.com/sc? +||https://ifeng.com/showcode? +||https://ifeng.com/ssi-incs/ +||https://ifeng.com/statics/comment_baidu.html +||https://ifeng.com/wapAdversApi? +||https://ifeng.com^*&ADUNITID= +||https://ifeng.com^*=YWRp +||https://ifengimg.com/*/taobaopudi/ +||https://ifengimg.com/1d124ac5e89463af/2013/0125/rdn_51023a5071d32.jpg +||https://ifengimg.com/29daa33abbbc4bbc/2015/7/aogute.gif +||https://ifengimg.com/29daa33abbbc4bbc/2015/7/titad.gif +||https://ifengimg.com/6e0e559e19f25e8b/2013/1226/shoucheng +||https://ifengimg.com/a/*/core201 +||https://ifengimg.com/a/*/openclient.js +||https://ifengimg.com/a/*/yemei +||https://ifengimg.com/a/*_w300_h250. +||https://ifengimg.com/a/2016/*600. +||https://ifengimg.com/a/2017/*600. +||https://ifengimg.com/a/c.js +||https://ifengimg.com/b/b.js +||https://ifengimg.com/b/c.js +||https://ifengimg.com/c337cf1a3749e953/2015/0301/rdn_54f25a4228062.jpg +||https://ifengimg.com/ch_sd_ +||https://ifengimg.com/edsd +||https://ifengimg.com/iamsImg/*_w100_h550. +||https://ifengimg.com/iamsImg/*banner +||https://ifengimg.com/ifeng/sources/ +||https://ifengimg.com/iis/iis_ +||https://ifengimg.com/m/ax.js +||https://ifengimg.com/m/img.js +||https://ifengimg.com/mappa/ +||https://ifengimg.com/md/*/v_responsive +||https://ifengimg.com/p/ax_ +||https://ifengimg.com/pmop/2017/*_w600_h793.jpeg +||https://ifengimg.com/static/js/*Adv. +||https://ifengimg.com/static/news/js/advtrack +||https://ifengimg.com/static/news/js/newsAdvtrack_ +||https://ifengimg.com/tres/js/*/idemin_noif.js +||https://ifengimg.com/w702_h371/ +||https://ifengimg.com/wap/js/wp.js +||https://ifengimg.com/wrlgs1yu5o9- +||https://ifengimg.com/xingzhao/JS/ +||https://ifengimg.com/zhishaofei/js/ +||https://ifengimg.com^*-gewindow- +||https://ifengimg.com^*/100-100- +||https://ifengimg.com^*/1000-90- +||https://ifengimg.com^*/1000X90- +||https://ifengimg.com^*/300-300- +||https://ifengimg.com^*/300-300. +||https://ifengimg.com^*/aplayer.xml +||https://ifengimg.com^*/backwindow.js +||https://ifengimg.com^*/embed*.js +||https://ifengimg.com^*/feed.js +||https://ifengimg.com^*/fullscreen +||https://ifengimg.com^*/hddw- +||https://ifengimg.com^*/hover.js +||https://ifengimg.com^*/iframe_load_ +||https://ifengimg.com^*/o.js +||https://ifengimg.com^*/rdn_*.js? +||https://ifengimg.com^*/shfwq +||https://ifengimg.com^*/sources/i.js +||https://ifengimg.com^*/sources/inice_abc.js +||https://ifengimg.com^*/sources/j.js +||https://ifengimg.com^*/sources/jj.js +||https://ifengimg.com^*/sparta.js +||https://ifengimg.com^*/yingguang- +||https://ifengimg.com^*300x600 +||https://ifengimg.com^*600-2.swf +||https://ifengimg.com^*600.swf +||https://ifengimg.com^*couplet$script +||https://ifengimg.com^*Float$script +||https://ifkdy.com/img/hydy +||https://ifooday.cn/index.php?m=poster& +||https://igamepark.biz/ads_output.php +||https://iis7.com/ys/css2018/ggw.js +||https://ijia360.com/data/poster/ +||https://ik123.com/js/dd.js +||https://ikafan.com/js/novel.js +||https://ikafan.com/upload/image/iqiyi_ +||https://ikaka.com/globalad/ +||https://ikanfan.cn/2018/ikanfan_new/dist/bootstrap.js +||https://im286.net/286/ +||https://image-shop.baidu.com/n/imageproduct? +||https://images.china.cn^*first/$subdocument +||https://images.jurong.cn/bbs/ +||https://images.sohu.com/bill/ +||https://images.sohu.com/cs/ +||https://images.sohu.com/ytv/*.jpg +||https://images.sohu.com/ytv/*.swf +||https://imagespublic.tk/clothes/comeliness.php +||https://imedown.info/03.jpg +||https://imeee.cn/DA_HTML/*.js +||https://imeee.cn/DA_HTML/bottom_960x90.html +||https://img*.bet007.com/image/*.gif +||https://img*.hc360.com^*.swf +||https://img*.win007.com/image/*.gif +||https://img.86wan.com/img2/top.jpg +||https://img.eol.cn/images/ed/$~image +||https://img.ifeng.com/tres/html/ +||https://img.win0168.com/image/*.gif +||https://img2.win007.com/image/*.jpg +||https://img588.net/images/*.gif +||https://img599.net/images/*.gif +||https://imgchili.net/media/top.gif +||https://imgf.gamersky.com^$image +||https://imghost.top/kita/ +||https://imgkdiyoub999.com/ok/ +||https://imgme.me/images/*.gif +||https://imgmega.com/i/*.gif +||https://imgout.ph.126.net/56208002/AD_ +||https://imgroom.net/images/*.gif +||https://imgs.cc/images/ad_ +||https://imgsrc.baidu.com/tieba/pic/item/$image +||https://imgur.com/df53F09.jpg +||https://imgur.com/zNQ0lXP.gif +||https://imooc.com/open/courselistrandjs +||https://infoqstatic.com^*/scripts/rightbarOptionalVcrBox.js +||https://inhe.net/Uploadfiles/inhegg2016/ +||https://inlishui.com/index.php?m=poster& +||https://inoreader.com/adv/ +||https://inszu.com/js/qian/ +||https://iocoder.cn/alert/js/alert.js +||https://ioio.cc*/dm/*.swf +||https://ioio.cc/adtui/ +||https://ip.cn^$csp=style-src 'self' https: +||https://ip38.qiniudn.com/js/zzsc.js +||https://ipeen.com.tw/js/frame/ad-actions.js +||https://ipeen.com.tw/photo/ad/ +||https://iplaypy.com/js/tonglan-1200ad.js +||https://iplaypy.com/uploads/allimg/160127/2-16012G50U0c1.jpg +||https://iplaypython.com/images/banner +||https://iporn.world/attachment/ad/ +||https://iqilu.com/getZone.php +||https://iqilu.com/static_files/richmedia/ +||https://iqshw.com/d/js/m/thea +||https://iqtfy.com/upload/vod/620.gif +||https://ishowx.com/www/2015/js/top.js +||https://ishuaji.cn/public/images/banner.jpg +||https://ishuhui.com/cartoon/book-1/*/sp +||https://ishuhui.com/setting/get_conf/option/ad/ +||https://isso.com.cn/upload_image/A-D/ +||https://it165.net/index.php?m=poster& +||https://it168.com/factory/ad/ +||https://it168.com/forum/201412/19/151606lvf3btnnotc62rl6.jpg +||https://it610.com/siteimage/shop +||https://itavcn.com/images/2012/ad_ +||https://itavcn.com/images/2013/ad_ +||https://itavcn.com/images/2014/ad_ +||https://itavcn.com/pic/news/*-90 +||https://itavcn.com/pic/news/*x80 +||https://itavcn.com/pic/news/*x90 +||https://itavcn.com/pic/news/201802/20180207/image/050N2.gif +||https://itc.cn/?prod=rtb& +||https://itc.cn/activity/activity_js/changyan_config_ +||https://itc.cn/base/core/gg_ +||https://itc.cn/mdevp/*-advert/ +||https://itc.cn/w/u/0/old-insertAd- +||https://itheat.com/?show= +||https://ithome.com/api/lapin/ +||https://ithome.com/file/js/lapin-load.js +||https://ithome.com/file/js/money/ +||https://ithome.com/images/1068.jpg +||https://ithome.com/images/hb1212/ +||https://ithome.com/images/hongbao/ +||https://ithome.com/images/huawei.jpg +||https://ithome.com/js/lapin/hot.js +||https://ithome.com/js/recommend.js +||https://ithome.com/newsuploadfiles/focus/67e46c4e-0a45-488a-a493-a836e3d4f4ce.jpg +||https://ithome.com/newsuploadfiles/focus/dd4682ad-3be0-4e74-b286-8fd747d4bd08.jpg +||https://itiexue.net/domain-policy/ +||https://itiexue.net/wap/tiexue/js/chuping/nativeshare +||https://itjsb.com/itjsbwx.jpg +||https://itmsc.cn^*ad0 +||https://itocp.com/html/gk/*/*x50. +||https://itocp.com/html/gk/*/204x +||https://itocp.com/html/gk/topic/topicmain.html +||https://itongcheng.cc/amm/ +||https://itopdog.cn/itopdog/ad.js +||https://ituba.cc/uploads/allimg/201610/603/ +||https://itv.hexun.com +||https://iviewui.com/v1/*?name= +||https://iviewui.com/v1/asd/ +||https://ixinshijue.com/template/212yspc/js/37.js +||https://ixjys.com/dbxf/ +||https://iyejie.com/1024code.gif +||https://iyejie.com/xydlad.js +||https://iztwp.com/images/ +||https://izzs.cc/wp-content/mm/ +||https://j.s.weibo.com/widget.html +||https://jandan.net/static/sos/recreate-games.gif +||https://jandan.net/static/ss/ +||https://jandan.net^*/3kbw2.png +||https://jandan.net^*/699pic/ +||https://jandan.net^*/moyu.png +||https://javazhijia.com/skin/ +||https://javbooks.com/52toy/ +||https://javdove.com/templates/frontend/javdove/*/partialviewslider. +||https://javhd.com/banners-mainpage/ +||https://javhub.net/img/r18_banner1.jpg +||https://javjunkies.com/FL$subdocument +||https://jb51.net/imgby/logo_ +||https://jb51.net^$script +||https://jb51.net^*Loader.js +||https://jbzyw.com/Application/M/adv/ +||https://jc001.cn/footer_float_bar/ +||https://jcodecraeer.com/plus/fuckblok. +||https://jcrb.com/ZYW/$subdocument +||https://jd-bbs.com/tianyi/ +||https://jd-bbs.com^*/gif/ +||https://jd100.com/cwmpc/ +||https://jfrft.com/ad/ +||https://jfrft.com/images/index_ +||https://jfrft.com/images/nono/ +||https://jfrft.com/js/main_list.js +||https://jfzx.tv/js/sb/ +||https://jgzj.net/bbs/attachments/month_1111/ +||https://jia.com/js/common/article_home_adv.js +||https://jialingmm.net/foot.php +||https://jianglishi.cn/statics/statics/js/code_ +||https://jianhucheng.com/data/attachment/portal/ +||https://jianke.com^*/jquery.ppt. +||https://jianshen114.com/images/Advistings/ +||https://jianxun.io/ad/ +||https://jiaodong.net/a/js/ +||https://jiaonan.net/index.php?m=poster& +||https://jiaoyu.baidu.com/tieba/ +||https://jiasule.com/static/js/http_error.js +||https://jiayu.net/comiis_ad/ +||https://jiazhuang.com/Public/Home/bootinfo/ +||https://jijidown.com/static/img/dongcidaci/ +||https://jijidown.com/static/img/right_bottom. +||https://jijistatic.duapp.com/Squall/1.jpg +||https://jin10.com/board/json/index.js +||https://jin10.com/board/json/rili.js +||https://jinbaozy.com/images/tb/ +||https://jinbaozy.com/images/zhangshang.jpg +||https://jinhongweiqi.com/cache/ads.js +||https://jinhua.com.cn/ad_pic/ +||https://jinse.com/promotion/ +||https://jinyici.com/qq.js +||https://jipinzw.com^*.php?aid= +||https://jishuyl.com/_skins/*/ad_ +||https://jisoupan.com/static/ +||https://jisutiyu.com/app/js/*footer.js +||https://jisuxz.com/170320/kaola58058.gif +||https://jisuxz.com/180226/b180226.js +||https://jisuxz.com/180226/downshare +||https://jitapu.com/inc/adv +||https://jiyingdm.com/js/loadingshow.html +||https://jj.5ccc.net/scripts/new/ +||https://jj20.com/js/x +||https://jj59.com/sy/banner.js +||https://jjckb.cn/flash/1031ad/ +||https://jjjaaa.com/aaa/ +||https://jjjgame.com/images/ad11.jpg +||https://jjr123.com/javascript/dl.js +||https://jjwxc.net/jjPopup.php +||https://jlpcn.net/upload/vod/2016-02-25/201602251456391344.jpg +||https://jlxyjs.com/attachment/ +||https://jmbbs.cn/sjgg/ +||https://jmcdn.cn/file/script/A +||https://jmhfw.com/index.php?/ajax/get_adv/ +||https://jmydm.com/jspage/ftt.js +||https://jnlc.com/www/fund/newsmarket +||https://jp2468.com/api/vip/vipshow.php +||https://jpm.cn/images/a/ +||https://jpwind.com^*/scroll.js +||https://jrj.com.cn/h5Ad? +||https://jrj.com.cn/s?z= +||https://jrjimg.cn/ad/ +||https://jrjimg.cn/common/foot/allfc.js +||https://jrjimg.cn/common/foot/wxXcxTg.js +||https://jrjimg.cn/focus/newrenNb.png +||https://jrjimg.cn/stock/adjsok.js +||https://jrjimg.cn/zqt-red-1000/js/v3/itg-widget. +||https://jrzj.com/images/bgright_ad.jpg +||https://jrzj.com/img_index/*adv +||https://jrzj.com/img_index/guanggao +||https://jrzj.com/img_index/index_ +||https://js.mumayi.net/9495.gif +||https://js.mumayi.net/jiujiang +||https://js.shiwt.com/110.js +||https://js.tlt.cn/js/ +||https://js0573.com/images/cus/ +||https://jstucdn.com/ftp/2019/0220/2cd03e9627bf753fa94bf9ac1c4d1250.jpg +||https://jstucdn.com/g3/ +||https://jsxf.org/images/ +||https://juejin.im/v3/web/wbbr/ +||https://juqingw.com/js/tad +||https://juweixin.com/static/spk +||https://juxia.com/jxtp/indexbg.jpg +||https://jwcsb.com.cn/js/neirong.js +||https://jxcn.cn/assets/js/dspshow.js +||https://jxcn.cn/js/hotpic_ +||https://jxdown.com/statics/js/all.js +||https://jxgdw.com/images/jdgg.jpg +||https://jxnews.com.cn/assets/js/dspshow.js +||https://jxnews.com.cn^*_ad_ +||https://jyacht.com/flash/marina.swf +||https://jyfw.cn/gonggong/jiayu/cf_ +||https://jyfw.cn/nav/cf_ +||https://jysjian.com/public//z +||https://jz5u.com/js/tl$script +||https://jz5u.com/js/xiazaiURL.js +||https://jz5u.com/new/ +||https://jzb.com/website/fe/pub_js/dbclickshow.js +||https://k99.cc^$third-party +||https://kaixin001.com.cn/js/cpm- +||https://kajila.cn/ad.html +||https://kan300.com/js/union.js +||https://kan300.com/js/union/ +||https://kan98.com/c.html +||https://kancloud.cn/ad/ +||https://kanguba.com/file/js/ifr.asp +||https://kanjuba.me/js/bbk/ +||https://kankanmi.com/js/zjgg +||https://kankantv.cc/330-50.gif +||https://kankanwu.com/le/ +||https://kanmeiju.net/js/ +||https://kanpb.com/skin/images/ +||https://kanpp.net/Uploads/ad/ +||https://kantie.org/a/images/car.jpg +||https://kantv6.com/index.php/Popularize/ +||https://kaoyan1v1.com/IAA/ +||https://kb-render.alicdn.com/html/*.html +||https://kccdk.com/Content/img/*.gif +||https://kdhome.net/images/banner +||https://kdhome.net/templets/default/img/tpfd.jpg +||https://kdou.com/ad_js.php?adid= +||https://kekenet.com/images/*/akasuo +||https://kekenet.com/images/*/tom468X60.gif +||https://kekenet.com/Images/*/tom640X40.gif +||https://kekenet.com/images/*980 +||https://kekenet.com^*/zhike +||https://kewaishu.org/m- +||https://key8.com/cache/www/banner_ +||https://keydatas.com/ad/ +||https://keydatas.com/img/*-336-280. +||https://keywin.org/templates/kw_v2/images/youbianad.png +||https://kiees.cn/img/ +||https://kiees.cn/jm.png +||https://kiees.cn/k1.js +||https://kikinote.net/iframe +||https://kindlepush.com/resources/images/main/AD.png +||https://kingsnug.cn/Uploads/vod/2019-05-25/5ce964f0c66e0.jpg +||https://kiwsy.co/hotsearch_box.php +||https://kkkkmao.com/js/20X4.js +||https://kkkkmao.com/js/fumeiti.js +||https://kkkkmao.com/js/tongji.js +||https://kkkkmao.com/Runtime/js/ +||https://klandmart.com/K-Landmart_0011.jpg +||https://kmplayer.cn/include/jscript/*-a.js +||https://kocpc.com.tw/adsbyso.js +||https://kokojia.com^$third-party +||https://ksiwnx.pw/gg_html/ +||https://kt51.com/images/kt51.gif +||https://kt51.com/wz.jpg +||https://ktkkt.com/js/tvb/ +||https://ktzhk.com/file/adv/ +||https://kuaicad.com/rest/common/getConfigureByName? +||https://kuaidi100.com/assets/ext?method=mainprofile +||https://kuaidi100.com/js/share/i_new.js +||https://kuaidi100.com/mobile/mobileapi.do +||https://kuaidiwo.cn/kdwkxmlt.jpg +||https://kuaidiwo.cn/kuaidiwo.jpg +||https://kuaihou.com/c/shuoming.js +||https://kuaihou.com/c/you1.js +||https://kuaihou.com/js/new/xiazai +||https://kuailiyu.com/templates/cyzonev3/js/m.js +||https://kuaiso.com/js/ad- +||https://kukan5.com/ad +||https://kukudm.com/js/comic- +||https://kukudm.com/js/play- +||https://kukudm.com/top.htm +||https://kunpeng-sc.csdnimg.cn/#/preview/ +||https://kviso.com/ddnew/kviso +||https://kviso.com/js/top.js +||https://kwflvcdn.000dn.com^*.flv +||https://kyocdn.com/addons/banner/ +||https://kyocdn.com/forum/201312/20/151925t52ey4l34ck0lkgv.jpg +||https://lady1314.com.cn/addata/ +||https://lady8844.com/IMAGE/$~image +||https://lagou.com/js/cooperation/ +||https://lahoo.ca/api.php?mod=ad& +||https://lahoo.ca/slider +||https://laixi.com/tp/20 +||https://lancdn.com/landian/public/recm/54181RECM.png +||https://lancdn.com^*/Alipay_HB. +||https://lancdn.com^*/Alipay_RC. +||https://lancdn.com^*/Apple_ +||https://lancdn.com^*/cp-lz- +||https://lancdn.com^*/LinuxProbe_ +||https://lancdn.com^*/uneed +||https://lancdn.com^*/wisecare +||https://language-center.com.tw/udn/ +||https://langxi.org/langxi/*900$image,object +||https://langya.cn/2014html/2014ad_ +||https://langya.cn/2014html/ad/ +||https://lanrenzhijia.com/Public/images/sucaihuo_ +||https://lanrenzhijia.com/Public/images/xiaozhua.jpg +||https://lanseshuba.com/react.js +||https://laod.cn/wp-content/uploads/*/ad- +||https://laogu.com/cms/images/ad +||https://laozuo.org/banner/linode +||https://laozuo.org/wp-content/themes/weisaysimple/js/*-bottom.js +||https://laozuo.org/wp-content/themes/weisaysimple/js/banner.js +||https://laozuo.org/wp-content/themes/weisaysimple/js/content40width.js +||https://laozuo.org/wp-content/themes/weisaysimple/js/index-top.js +||https://laozuo.org/wp-content/themes/weisaysimple/js/sidebar +||https://law-lib.com/wstyle/images/gffirm.jpg +||https://lawtv.com.cn/jd_ceshi.html +||https://lawtv.com.cn/skin/newplayer/ads_dianshi.php +||https://lawtv.com.cn/skin/stop.swf +||https://lcok.net/2019/ad/$rewrite=abp-resource:blank-mp3 +||https://lcxw.cn/d/js/thea +||https://ld0766.com/*20*a/ +||https://ld12.com/js/myfiles/ +||https://ldb.cc/js/top.js +||https://lecai.com/page/zhuanti/baidu/ +||https://leiphone.com/uploads/new/article/880_880/201807/5b5687fef17a5.jpg +||https://leiphone.com/uploads/new/category/pic/*/740x140/ +||https://leju.com/abp/cmslead_new.v2.js +||https://leju.com/scripts/app/pc/indexlayer/v1/indexlayer.js +||https://lelekan.com/sp/fmt.js +||https://leleketang.com/dat/a/ +||https://lenovo.com.cn/cms/2018-07-20/201807201014498251793.png +||https://letv.com/pzt/hyhmzq/index.shtml +||https://letv.com/s?ark= +||https://letvcdn.com/js/*_focus_flash.js +||https://letvimg.com^*/108x70$object +||https://letvimg.com^*_phone/ +||https://lewenxiaoshuo.com/file/script/ +||https://lewenxiaoshuo.com/m- +||https://lezhuan.com/js/spread.js +||https://lgmi.com/ggimg/ +||https://lgmi.com/images/*.swf +||https://lgmi.com/left_right_ +||https://lgmi.com/right_ys +||https://lgmi.com/syimg/ +||https://lgmi.com/tjyf200x207.asp +||https://lgmi.com/windows/*-Advert. +||https://lgmi.com^*_gg +||https://lh168.net^*/attachment/portal/ +||https://liangchan.net/aaddaadd/ +||https://liangchan.net/adf/ +||https://liangjan.com/js/show_ +||https://lianmeng.la/fgh/ +||https://lianmeng.la/layui/layui.js +||https://lianyexiuchang.cc/img/2f2372e9bf205df0.png +||https://lianyexiuchang.cc/img/97da89108eb659fc.gif +||https://lianyexiuchang.cc/js/ +||https://licai18.com/henyepweb/ +||https://licai18.com/pic/*.swf +||https://licai18.com/pic/article/*.gif +||https://liepin.com/event/jobadver/ +||https://lieqinews.com/json/zhiketj/ +||https://lihuasoft.net/images/ad_ +||https://liisex.com/images/banners/ +||https://line-scdn.net/6c21c9a4/statics/js/index/redirect.js +||https://linecg.com/uploads/banner/ +||https://lingdianshuwu.com/js/content +||https://link.fobshanghai.com/bbsimage/ +||https://linkhelper.cn/mmshow +||https://links.cn/mmshow +||https://linkwan.com/gb/broadmeter/speed/cp.js +||https://linkwan.com/gb/images/uploadimages/2010-12-16.swf +||https://linkwan.com/gb/javascript/b4.js +||https://linkwan.com/gb/javascript/c5- +||https://linovel.net/cp/lk/ad/externalAd? +||https://linuxde.net/wp-content/uploads/ad/ +||https://linuxeden.com/plus/web_js.php +||https://linuxidc.com/linuxfile/linux$script +||https://linuxidc.com/linuxfile/list +||https://liu16.com/vip.png +||https://liuxue86.com/css/liuxue_output.js +||https://live173.com//AD/ +||https://live173.com/BANNER/ +||https://liveany.com/images/8d8d.gif +||https://livku.com/g1000/ +||https://llj22.com/1.gif +||https://lnd.com.cn/site1/*.swf +||https://lnzq5.com/js/ +||https://lofter.com/mailEntryMobile.do +||https://logoquan.com/upload/prd/ +||https://loldyttw.net/blr.js +||https://loldyttw.net/skin/lol/js/ds.js +||https://loli.net/2017/12/21/5a3b732b8e72e.png +||https://loli.net/2018/06/12/5b1eb40282e3a.jpg +||https://loli.net/2018/09/01/5b8ab2b61cec4.jpg +||https://loli.net/2019/04/24/5cc0027b4f2f1.png +||https://lolshipin.com/zt/sxx/ +||https://longbahao.com/asd.js +||https://longbahao.com/js/ad- +||https://longzhu.com/i/api/playpage/recommendPop? +||https://longzhu.com/recommendad/ +||https://lotour.net/bcef/388.js +||https://lotpc.com/templets/default/js/lotpctb +||https://love201810.com/Runtime/js/ +||https://loveshang.com/api.php?mod=ad&adid=custom_ +||https://lsforum.net/cam2/*.gif +||https://lsforum.net/yahooad/ +||https://ltn.com.tw/js/ad_door.js +||https://lu228.com/ajs/ +||https://luanren.com/images/*.swf +||https://luckstatic.v1.cn/st/10000/ +||https://lutouwang.net/static/images/boss_gao_hb.jpeg +||https://lutouwang.net/static/js/mv_ad +||https://luuu1.com/g/ +||https://luyx8.com/tu/666.gif +||https://lv-play.com/web/adv/list +||https://lvse.cn/output/block/html/ +||https://lvse.com/9 +||https://lw54.com/js/ +||https://lw881.com/public/js/gw.js +||https://lxty66.com/js/float.js +||https://ly.js.cn/adv/ +||https://lyd.com.cn^*950-90. +||https://lysq.com/data/attachment/portal/ +||https://lywww.com/data/js.php?id= +||https://lywww.com/header_pic.php +||https://lzep.cn/ep/ads/ +||https://lzep.cn/ep/js/index_window.js +||https://lzep.cn/ep/sda/ +||https://lzep.cn^*/2014ad/ +||https://lzk.hl.cn/lctp/ +||https://lzyysw.com/upload/ +||https://m.kankanwu.com/js/ +||https://m.mianbao99.com/js/detail.js +||https://m.tiebaimg.com/timg?wapp^*imgtype=0$image +||https://m.xigua110.com/js/ +||https://m1905.cn/afp/mdsfw.js +||https://m1905.cn/data/suspension_ +||https://m1905.com/asp_js/k.js +||https://m1968.com/files/h5/ +||https://m3hf.com/js/float +||https://ma.baiducdn2.com^*/main.js?t= +||https://macd.cn/macd-topads.html +||https://macfans.org/images/*/980x +||https://macx.cn/js/jquery. +||https://mafengwo.net/s13/M00/D0/6D/wKgEaVza2HCAJw8sAAOVHkWHw_c98.jpeg +||https://mahoupao.com/api.php?mod=ad& +||https://mahua.com/api/$subdocument +||https://mahua.com/www/default/js/mahua_show.js +||https://mahua.com/www/default/js/replace_ab.js +||https://maiche.com/iframe/rank.html +||https://mail.pchome.com.tw/img/classifieds/300120.gif +||https://maipiao.96900.com.cn/js/indexgg +||https://makaidong.com/img/ +||https://mall.xinkuaituan.com/zhuanti/ +||https://manqian.cn/async/adLocationConfig +||https://maodh.com/admin/up/*.gif +||https://maolihui.com/wp-content/themes/miaonew/images/adb +||https://maoyun.tv/fsq/fangshaqi +||https://maoyun.tv/g3/ +||https://maoyun.tv/jk/ +||https://masadora.net/kakusan- +||https://masturbation22.com/d/ +||https://mat1.gtimg.com/2014/vikkydu/GA/haier +||https://mat1.gtimg.com/2014/webtips/ola2014tips +||https://mat1.gtimg.com/cq/flash/ +||https://mat1.gtimg.com/ent/flash/*300 +||https://mbalib.com/wiki/common/wikibits.js +||https://mcchou.com/wp-content/themes/begin/js/mcchou.js +||https://mcncc.com/yeyou/*.htm +||https://medsci.cn/aimgs/$script +||https://medsci.cn/images/wyg.jpg +||https://meiju8.cc/js/jquery.p.min.js +||https://meiju8.cc/js/m_ban_ +||https://meiju8.cc/js/pv +||https://meiju8.cc/js/tpcode.js +||https://meijub.com/a/youxiajiao +||https://meijub.com/js/a/ +||https://meijumi.vip/wp-content/plugins/dreamgrow-scroll-triggered-box/ +||https://meijutt.com/xieziAD.jpg +||https://meijuxz.com/template/ZQ/ +||https://meipuw.com/style/ad +||https://meishichina.com/v3/ +||https://meitu.com/js/floatxiuxiu.js +||https://meituan.com/ptapi/recommends? +||https://meituan.com/xiuxianyule/api/getRecommendList? +||https://meitui.org^*.js +||https://meitulu.com/css/*showgg.js +||https://meiyouad.com/static/pc/img/111.gif +||https://meiyouad.com/user/admin? +||https://meizhou.cn/comm/mygg/ +||https://meizhou.com/images/topbanner +||https://metvb.com/js/bofangwei.js +||https://mfacelive.com/Scripts/social/openchannel_min.js +||https://mfav88.com/yinzi/ +||https://mh1234.com/gd/g_js/ +||https://mianbao99.com/a/mianbao +||https://micaitu.net/js/dibu.js +||https://microcontrol.cn/bbs/images/AD755_150.swf +||https://microcontrol.cn/HomeImages/AD/ +||https://midifan.com/aaa/ +||https://mifengtd.cn/ad- +||https://miguyu.com/AD/ +||https://mikanani.me/images/upupoo +||https://mil.news.sina.com.cn/iframe/109/2012/1024/photo.html +||https://mil.news.sina.com.cn/iframe/109/2013/1015/hotpic.html +||https://mima.club/tuijian/speedtest/ +||https://mingyg.cn/data/attachment/freeaddon_banner/ +||https://minixiazai.com/others/all_soft.js +||https://minixiazai.com/statics/js/soft/index.js +||https://mipcdn.com/i/s/https://i.loli.net/ +||https://mipcdn.com^*/mip-*ad +||https://mipengine.baidu.com/common? +||https://missyuan.com/sy/ +||https://mitbbs.ca/ad_ +||https://mitbbs.com/ad_ +||https://miwifi.com^*ads/ +||https://mm111.net/api.php?mod=ad& +||https://mm387.com/images/*.gif +||https://mm7920.com:8888/upload/*.gif +||https://mmsao.me/lianmeng/ +||https://mmtalk.net/images/banner +||https://mobile.sina.cn/public/files/image/600x150_ +||https://mobile.sina.cn/public/files/image/620x300_ +||https://moe-acg.cc/ads.js +||https://moe-acg.cc/images/*/1225 +||https://moe-acg.cc/images/*/2000x710 +||https://moe-acg.cc/images/*/310 +||https://moe-acg.cc/images/*/700 +||https://moe-acg.cc/images/*/730 +||https://moe-acg.cc/wp-content/uploads/*/310x160 +||https://moe-acg.cc/wp-content/uploads/*/310x374 +||https://moe-acg.cc/wp-content/uploads/*_%E5%B9%BF%E5%91%8A%E5%9B%BE. +||https://moe-acg.cc/wp-content/uploads/2016/05/1234.gif +||https://moe.fm/public/images/fm/promotion_ +||https://moedao.com/js/top.js +||https://moerats.com/usr/ad/ +||https://momoshop.com.tw/goods/GoodsDetail.jsp?$subdocument +||https://momoshop.com.tw/league/ +||https://moneyweekly.com.tw/UC/JQueryJson.aspx/MwAD +||https://moneyweekly.com.tw/Uploads/AD/*970x +||https://monnsutogatya.com/himg/monst/ +||https://moonbbs.com/data/attachment/portal/ +||https://mop.com/js/common/watermark.js +||https://mop.com/newIndex/gg.html +||https://mopxing.com/skin/sex/js/*ad +||https://mopxing.com/skin/sex/js/*banner +||https://mopxing.com/skin/sex/js/*content +||https://moratame.tw/img/contents/banner +||https://movshow.com/*portal/ +||https://mowenxi.com/1.png +||https://mp3.haogeba.com^$image,object +||https://mp4ba.com^*/js/head.js +||https://mp4ba.net/static/js/mp4ba.js +||https://mp999.net/wp-content/uploads/*zgg +||https://mql5.com/rq? +||https://msdn.hk/templets/msdn/css/index.js +||https://msdn.hk/templets/msdn/css/msdng.js +||https://msdn.hk/templets/msdn/js/gg.js +||https://mshow.fang.com/s?z= +||https://msstatic.com/huya/main/img/mc-recom_ +||https://msstatic.com/huya/main3/widget/roomGgChat/ +||https://msstatic.com/huya/main3/widget/roomGgTop/ +||https://mt30.com/good/ +||https://mt30.com/ok/ +||https://mtime.cn/tg/ +||https://muyuge.com/fw.html/ +||https://muzisoft.com/static/*_f.js +||https://mvxz.com/bar3.js +||https://mvxz.com/boximg/ +||https://mvxz.com/img/ +||https://mw6.me/images/*.gif +||https://mwrf.net/images/js/*mrf.js +||https://mwrf.net/images/mrf/ +||https://my0511.com/*/ad_ +||https://my0538.com^*/thumb_1000_70_ +||https://my0832.com/xyz/xx/ +||https://mybjx.net/theme/default/js/common/bjx_service_ +||https://mybjx.net/theme/default/js/common/duilianchn.js +||https://mycodes.net/js/$image +||https://mycodes.net/js/hf_txt.js +||https://mydrivers.com/2018/ad/ +||https://mydrivers.com/2018/drivers/yjgg +||https://mydrivers.com/images/*_1100_90. +||https://mydrivers.com/images/hongbao +||https://mydrivers.com/m/apptuijian. +||https://mydrivers.com/news/*843x80. +||https://mydrivers.com/news/2017/db_ +||https://mydrivers.com/news/2018/contentfoot.png +||https://mydrivers.com/news/2018/wangluodianshi.gif +||https://mydrivers.com/www/gg_ +||https://mygeek.cn/pic_ +||https://myhack58.com/Articleacb0 +||https://myhack58.com^*0$script +||https://myhard.com/s?z= +||https://myjianzhu.com/file/upload/201806/12/192806811.gif +||https://mysteelcdn.com/gg/ +||https://myweb.hinet.net/menu.htm +||https://mzhhdn.com/hongbao.jpg +||https://n2.hk/apps/car_feed/tb/*/banner.html +||https://n2.hk/promo/ +||https://nanren400.com/goto/ +||https://naquan.com/packages/assets/js/jquery.reveal.js +||https://narutom.com/v2/js/ca.js +||https://narutom.com/v2/v/$subdocument +||https://natgeomedia.com/wp-content/uploads/*Banner.jpg +||https://nbegame.com/nbead/ +||https://nbegame.com/nbeos/nbegg.html +||https://nbyayu.cn/player.swf +||https://ncdiy.com/webindex/300-250AD.swf +||https://nczsks.com/SCWB/WebResource.axd +||https://nen.com.cn/eap/ +||https://nen.com.cn/service/js/beitou +||https://nen.com.cn/swf/0/*.swf +||https://netease.com/house-public/articleyunyans.js +||https://new-icon.ol-img.com/jslib/ad +||https://newasp.net/apps/counts.php?tid= +||https://newasp.net/apps/misc.php?action=advert& +||https://newasp.net/misc/js/foot_ +||https://news.cn/2018/images/2018rbqj_ +||https://news.hz66.com/IAA/201111/ +||https://news.sina.com.cn/js/792/*head*.js +||https://news.sina.com.cn/pfpnews/js/libweb.js +||https://news.sina.com.tw/js/ti.js +||https://news18a.com/image/ad_ina/ +||https://newsmth.net/nForum/baiduunion/ +||https://newsmth.net/nForum/files/adv/ +||https://newsmth.net/nForum/googlead/ +||https://newsres.cn/temp/tempad +||https://newyx.net/j/down_yd.js +||https://newyx.newyx.net/j/ +||https://nex.163.com/q? +||https://nihaovcd.com/js/neirong +||https://ningmengzhibo.com/ement/beforeSearchEment.action +||https://niu20.com/g/ +||https://niubixxx.com/seo/ +||https://njdaily.cn/templates/njdaily2014/widget/njdaily-slideAds +||https://njxzwh.com/downza/pc/v2017/images/downAD +||https://nlark.com/yuque/0/2019/jpeg/124897/1559321053265-assets/web-upload/c81b86b3-3fdd-4722-8e1c-834abc015442.jpeg +||https://nmgnews.com.cn/other/003/000/*.swf +||https://no1.168abc.net/upload/ +||https://nownews.com/assets/js/setAds.js +||https://nphoto.net/media/ +||https://nrsfh.com/neirong/ +||https://nvsheng.com/js/gg.js +||https://nxing.cn/uploads/uploads/*-size1220x +||https://nyaa.fun/static/js/costcheck +||https://nz04com.com/aabdd/ +||https://oa.hinews.cn/work/img/ +||https://oebais8m0.qnssl.com/media/img/edu250-200.jpg +||https://ofweek.com/img/proimage/2017/osl +||https://ofweek.com/pop/ad/ +||https://okbmf.com^*950_120 +||https://okooo.com/I/?method=system.data.ad& +||https://oldpig.org/live.html +||https://olevod.com/poppagen.php +||https://olgame.tw/home/attachment/ +||https://om.cn/api/ad-om/ +||https://omanhua.net/scripts/show/3 +||https://omanhua.net/scripts/show/a +||https://onedala.tv/uploads/banner/ +||https://onegreen.net/MyFile/ +||https://oneinstack.com/images/oneinstack- +||https://onemanhua.com/js/xvideo.js +||https://onetvb.com/assets/javascripts/ +||https://onlinedown.net/Public/img/bomAD.jpg +||https://onlinedown.net/Public/js/headAd.js +||https://onlyitv.com/assets/js/onlyitv.js +||https://onlytvb.com/assets/javascripts/ +||https://ooo.0o0.ooo/2017/11/03/59fc6b3c5b723.jpg +||https://ooqiu.com/ad_js/ +||https://open-open.com/gg_images/ +||https://opticsky.cn/images/2015/gy-px201 +||https://orsoon.com/assets/images/*.gif +||https://orsoon.com/assets/images/tuidc.png +||https://orzx.im/Document/recommend/flashpoint.html +||https://orzx.im/Document/union/ +||https://orzx.im/images/downloader.jpg +||https://orzx.im/js/*pop +||https://oscaches.com/dj.js +||https://oschina.net/promotion/ +||https://oschina.net/uploads/ad/ +||https://oschina.net/uploads/cooperation/ +||https://ouliu.net/i/*.gif +||https://ouo.us/nyad/ +||https://ousns.net/daohang/ +||https://oxxvideos.xyz/static/tmp/ +||https://oyksoft.com/assets/images/*.gif +||https://oyksoft.com/show/b. +||https://p.37youyou.com/*.jpg +||https://p.kugou.com/?id= +||https://p.zol.com.cn/download/detail.js +||https://pan66.com/popup/ +||https://panc.cc/uploads/hongbao.png +||https://panjin.net/ichat2/adhtml.htm +||https://panpan.org/js/google +||https://panpan.org/other/ +||https://panpan.org/plus/img/ +||https://panpan.org/templets/ad/ +||https://paopaoche.net/public/bd/article_inc.js +||https://paopaoche.net/skins/count.js +||https://pbmp.ali213.net/js/ +||https://pc0359.cn/style/js/un.js +||https://pc0359.cn/Style/sc/ +||https://pc360.net/wp-content/themes/PcNet/ad/ +||https://pc6.com/img/ +||https://pc841.com/show/ +||https://pcauto.com.cn/forum/fz/hots/ +||https://pccoo.cn/js/dlv1.0.js +||https://pcgames.com.cn/g/ +||https://pchome.com.tw/iframe/ +||https://pchome.net/flow.php +||https://pcmx.autohome.com.cn/impress? +||https://pconline.com.cn/_hux_/ +||https://pconline.com.cn/download/*/intf*.js +||https://pconline.com.cn/jrzcz/*/intf +||https://pconline.com.cn/js/ad_ +||https://pconline.com.cn/js/ivy.js +||https://pcpp.com.cn/news/a/*_article_right.html +||https://pcpp.com.cn/news/ad/ +||https://pcstore.com.tw/adm/psearch_payad_ +||https://pcstore.com.tw/css/myacc_init.js +||https://pctowap.com/dowap2/mobile/*.js +||https://pdfbook.cn/wp-content/uploads/2017/11/049.jpg +||https://penglai.com.cn/UploadFile/image/*.gif +||https://people.com.cn/adv/ +||https://people.com.cn/img/gjt/ +||https://perlmaven.com/img/*0x2 +||https://perlmaven.com/img/sticker-you.jpg +||https://pfizer.com.tw^$subdocument +||https://pfp.sina.com.cn^$script,subdocument +||https://pfp.sina.net/ea/ad/ +||https://pg.udn.com/BT/*.swf +||https://pharmnet.com.cn/cnbanner/ +||https://pharmnet.com.cn/js/float_div.js +||https://php1.cn/uploads/huayun.jpg +||https://piaodown.com/other/*.js +||https://piaohua.com/js/wlfloat.js +||https://piaohua.com/js/yzz/$script +||https://piaoliang.com/js/all.js +||https://piaoliang.com/js/gg.js +||https://piaotian.com/scripts/read/style +||https://pic.959.cn/media/js/ +||https://pic.gongkong.com/UploadPic/gongkong/ +||https://pic.jd-bbs.com^*.swf +||https://pic.pimg.tw/cwyuni/*.gif?v= +||https://pic.yupoo.com/showflash/ +||https://pic.zol-img.com.cn^$image +||https://pic.zol-img.com.cn^$object +||https://picb.cc/uploads/2018/06/26/2zxrsi.jpg +||https://picgd.com/images/*.gif +||https://picgd.com/images/2018/12/01/h1pi5.png +||https://pics.wanlibo.com/js/pagemodulestat.js +||https://picuphost.com/2016/upload/image/20170422/42206436302.gif +||https://picuphost.com/imghost/upload/image/20171226/122600098149.gif +||https://picyq.com/index.php/Home/run/get_ad/ +||https://pigol.cn/myinc/ +||https://piimg.com/508806/d53a8d13a40f814d.gif +||https://pingmeibang.com/zt/zx.jpg +||https://pingpang.info/themes/v1.0/images/temp/ad/ +||https://pingwest.com/api/news_ad +||https://pingwest.com/wp-content/uploads/*/ad.jpg +||https://pipi.cn/player/ +||https://pixfs.net/js/mib.min.js +||https://pixfs.net/js/mib_falcon +||https://pixfs.net/module/fullPage/dist/ad-full-page. +||https://pjtime.com/js/show_ad +||https://pk200.com/xb/tui.jpg +||https://play6111.com/js/ +||https://playtv.com.cn/Pictuer/ +||https://plures.net/prod/player/live_page_adv +||https://poco.cn/v1_1/rank/get_floating_layer_ad +||https://poco.cn^*_info_banner +||https://popomh.com/js/ +||https://porn87.com/static/stream_ads/ +||https://potplayer.org/sc/ +||https://poxiao.com/template/default/images/12345.js +||https://ppshk.com^*banner/ +||https://ppsj.com.cn/images/ppsj300.gif +||https://ppsj.com.cn/images/usa_250_120.gif +||https://ppsj.com.cn/ppsj728.gif +||https://pptv.com/game/aplus/client/gamedetail.html +||https://prettyvirgin.com/images/banners/ +||https://prettyvirgin.com/js/show.html +||https://price.com.hk/dfp_price.php? +||https://price.com.hk/ec-discuss-widget.php +||https://price.com.hk/scripts/ysm.js +||https://programmer-club.com.tw/images/uuu/ +||https://property.hk/js/adside.js +||https://ps123.net/MyFile/ +||https://ps557.com/link/ +||https://pstv.tv/pstv.jpg +||https://psyzg.com/Public/Home/images/tuhe_240_236.gif +||https://pt80.net/source/plugin/fysq_ad/ +||https://ptbus.com/s.js +||https://ptfish.com/*/ad$image,object +||https://pub.sxrtv.com/crossdomain.xml +||https://pupudy.com/images/wxrj.gif +||https://putaoys.com/static/js/acb1.js +||https://putaoys.com/static/js/t.js +||https://putonghua520.com/skins/10ym/3jin.gif +||https://putonghua520.com/skins/10ym/baicai.gif +||https://puudeng.com.tw^$subdocument +||https://pw321.com/bulu/ +||https://pythontab.com/statics/images/*abc +||https://pythontab.com/statics/images/*ads +||https://pythontab.com/statics/images/*comp +||https://pythontab.com/statics/images/*comtu +||https://pythontab.com/statics/images/*show +||https://pythontab.com/statics/images/goodad/ +||https://pythontab.com/statics/images/yigegg/ +||https://qchubxx.com/static/js/edfunc.js +||https://qconbeijing.com/js/infoqcn.js +||https://qdaily.com/mount_details/pc/ +||https://qdjimo.com/html/js/ +||https://qdosm.cn/images/*.gif +||https://qdross.com/vip/ +||https://qhdlz.net/ssyyss/m.js +||https://qhf168.com/data/attachment/portal/ +||https://qhimg.com/static/*/common/seed.js +||https://qhnews.com/tupian/ +||https://qhres.com/static/*/common/seed.js +||https://qhres.com/static/4b6ab193405b6ca3.js +||https://qhres.com^*/baidu_ +||https://qianjia.com/HotImages/2017/11/img20171109122716999.jpg +||https://qianzhan123.com/jsgg/ +||https://qicheyinyue.wang/wp-content/themes/RedSOHO/images/hongbao. +||https://qihoo.com/hot/text.html?site= +||https://qiming360.com/mingJs/xmKu_ +||https://qimm.org/Uploads/ad/ +||https://qinbing.cn/data/upload/ueditor/ +||https://qingchunji.cn/960x +||https://qingkai.com/2009/html/top.htm +||https://qingkai.com/gg_img/ +||https://qingkan520.com/file/script/ +||https://qingkong.net/skin/htcs/images/980.jpg +||https://qiqi321.com/jquery/ +||https://qiuw.com/static/xin-ad.js +||https://qiuyi.cn/Baojian/ +||https://qixingquan.com/api.php?mod=ad&adid= +||https://qixingquan.com/partner/ +||https://qixingquan.com/qxq-images/dawangka.png +||https://qixingquan.com/qxq-images/js/qxq_t.js +||https://qiyipic.com/common/*%E9%80%9A%E6%A0%8F +||https://qiyipic.com/common/*/225x230.jpg +||https://qiyipic.com/common/*/250-230. +||https://qiyipic.com/common/*/250230. +||https://qiyipic.com/common/*/255x205 +||https://qiyipic.com/common/*/980 +||https://qiyipic.com/common/*/baiyao. +||https://qiyipic.com/common/*/banner.jpg +||https://qiyipic.com/common/*/kehuzhuanqu +||https://qiyipic.com/common/*980x +||https://qiyipic.com/common/*_aLink +||https://qiyipic.com/common/*tonglan +||https://qiyipic.com/common/*vivo +||https://qiyipic.com/common/20141021/sanjiukehuzhuanqu.jpg +||https://qiyipic.com/common/20160302/ban250.jpg +||https://qiyipic.com/common/fix/dasdasdasdk.jpg +||https://qiyipic.com/common/fix/rebull_ +||https://qiyipic.com/common/fix/wh-leftbanner.jpg +||https://qiyipic.com/zongyi/*Banner01.jpg +||https://qiyipic.com/zongyi/fix/mxdj +||https://qiyipic.com/zongyi/fix/runningman20141008_bg02.jpg +||https://qiyipic.com/zongyi/fix/runningman20141008_bg03.jpg +||https://qiyue.com/statics/js/3g.js +||https://qiyun.org/images/js/*.htm +||https://qncye.com/templets/default/js/mb.js +||https://qnsb.com/news/index.php?m=poster& +||https://qnvod.net/qna/ +||https://qpgyy.com/add01.html +||https://qpic.cn/fans_admin/0/3_1379495610_1557565080852/0 +||https://qpic.cn/mblogpic/47a05e3dca9d6bc9e20e/2000 +||https://qq260.com/shout.js +||https://qq745.com/m/ad/ +||https://qqcf.com/js/Content_Get.js +||https://qqcyl123.com/js/*.html +||https://qqddc.com/homeSite/news/js/newsad.js +||https://qqfby.com^*ad +||https://qqjia.com/dan.js +||https://qqjia.com/images/ad +||https://qqread.com/*js/$script +||https://qqread.com/swf/ +||https://qqtn.com/js/*0.js +||https://qqtn.com/js/downinfo- +||https://qqtn.com/js/html/down_ +||https://qqtn.com/skin/know/ +||https://qqyy.com/js/commAdv +||https://qqyy.com/js/public_end_add.js +||https://qsptv.com/tpl/newstyle/js/extension.js +||https://quanmin.tv/static/pages/adranktit.html +||https://qunar.com/render/*Advertisement.jsp? +||https://qunar.com/vata?chan= +||https://qunar.com/vataframe/b.html? +||https://qwertyuiopa.co/qun/top.js +||https://qyule.fun/v-content/ +||https://qz828.com/css/2010/script/*ad +||https://qzone.la/Scripts/m.js +||https://r3sub.com/images/ccc/ +||https://r3sub.com/posters/0069810.jpg +||https://r3sub.com^*0.gif +||https://rainpat.com/Content/1360x55/ +||https://rainpat.com/Scripts/jquery.SuperSlide. +||https://rar8.net/htmljs/ +||https://ratedxbiz.com/d/ +||https://rayfile.com/media/img/rili_ +||https://rdance.cn/g- +||https://realsrv.com/popunder1000.js +||https://redshu.com/js/pcAdv.js +||https://redshu.com/js/www/jquerygg.js +||https://renrenfabu.com/Runtime/Js/960_90.js +||https://rentiyishu.org/*.js +||https://rentiyishu99.net/a.js +||https://rentiyishu99.net/b.js +||https://rentiyishu99.net/d.js +||https://rentiyishu99.net/e.js +||https://rentiyishu99.net/f.js +||https://repian.com/a/ +||https://replays.net/j/dazui +||https://replays.net/j/pinglunshang.png +||https://requirejs.cn/ts.png +||https://res.cngoldres.com/web/index/img/*_ad_ +||https://res.ythouse.com/image/index/2012/ +||https://rfidworld.com.cn/js/a.js +||https://rfidworld.com.cn/js/b.js +||https://rfidworld.com.cn/js/c.html +||https://rfidworld.com.cn/js/RFID.js +||https://rfidworld.com.cn/js/RFIDExec.js +||https://rfidworld.com.cn/Notice/Home +||https://rigengjihua.cn/banner/ +||https://right.com.cn/logo/*.gif +||https://right.com.cn/logo/yyb.png +||https://riju.com/pr/ +||https://rijutv.com/statics/js/tb.js +||https://rijutv.com/uploadfile/8c96dc2f564c1b56.png +||https://rising.cn/js/haoAdData.js +||https://rising.cn/rxbox/ +||https://rising.cn^*/pic-ad/ +||https://rising.com.cn/weblog/ +||https://rjfcxxw.com/yimaopic/ +||https://rjsos.com/channel/laomo_dibu.png +||https://rjzxw.com/include/ +||https://rsccs.com/code/ +||https://rsdown.cn/static/new0613/down.js +||https://rsdown.cn/static/t/ +||https://rtbs.cn/bi.js +||https://ruanyifeng.com/9he/ +||https://ruanyifeng.com/blog/checker.js +||https://rugao35.com/Public/config/Couplet/Index +||https://ruian.com/img/2016/a1-6-1.gif +||https://ruian.com/img/y13/ +||https://ruiwen.com/js/a/p.js +||https://runmang.vip/img/ +||https://runsky.com/bbsadv- +||https://runsky.com/html/*_index_ +||https://ruten.com.tw/js/gads_ +||https://ruten.com.tw/search/imp_ad_ +||https://ruten.com.tw^*/ahd_ +||https://ruyig.com/730x76.png +||https://rxdsj.com/Runtime/js/vod960.js +||https://rznews.cn/viscms/r/cms/rzw/rzxw/images/*.swf +||https://s-msn.com/portal/xiatui.js +||https://s.go.sohu.com^*/?callback= +||https://s.pacn.ws^*?$image +||https://s.yimg.com/*_160x800_$subdocument +||https://s.yimg.com/gs/apex/ +||https://s.yimg.com/ja/ap/$script,subdocument +||https://s.yimg.com/ja/ap/tw/js/ +||https://s.yimg.com/uv/dm/scripts/syndication.js +||https://s.yimg.com^*/flash_general_ +||https://s1.pplive.cn/sta.js +||https://s8bbs.com/ad/ +||https://s8bbs.com/g.php? +||https://sass.hk/js/ggcn.js +||https://sass.hk/plus/mytag_js.php?aid= +||https://sbo8.com/static/theme/js/bottom. +||https://sc.chinaiiss.com/do.php?do=ad& +||https://sccnn.com/SF/zt.jpg +||https://scibook.cn/tuiguang. +||https://sciencenet.cn/html/js/n +||https://sciencenet.cn/images/20180521.jpg +||https://scol.com.cn/scol-3/js/08scol_text_ +||https://sconline.com.tw/top/coolpc_ +||https://scupio.com/adpinline/ +||https://scw98.com/ADMM. +||https://scw98.com/js/Index +||https://sd173.com/images/ +||https://sd888.org/house/flash/ +||https://sd888.org/images/tbuyer200.jpg +||https://sdbeta.com/statics/mystyle/js/1 +||https://sdgundam.cn/js/91.js +||https://sdo.com/static/image/mkads/ +||https://sdzbcg.com/images/sdfhyl +||https://se533.com/template/new/css/*.js +||https://se8u.cc/statics/images/*.gif +||https://secretmine.net/wp-content/uploads/2019/08/secretmine_20190809_1565312910.jpg +||https://seek68.cn/img/*.gif +||https://sefu8j.com/index.php?m=poster& +||https://segmentfault.com/sponsor/ +||https://seqing.world/qq/qq.js +||https://sese277.info/photo/ +||https://sesefu8.com/index.php?m=poster& +||https://sesefu8.com/statics/js/layer/layer.js +||https://setn.com/js/advertisement? +||https://sex141.com/img/banner/ +||https://sex2077.com/js/dl.js +||https://sex2077.com/js/gg.js +||https://sexbarss.net/wap/ +||https://sextop.com.tw/upload/blocker/header_new.gif +||https://sexyno1.com/mk-banner/ +||https://sh.sina.com.cn/iframe/522/ +||https://sh.sina.com.cn/js/441/ZwyArticle_commo_23.js +||https://shandian.biz/a/guga.js +||https://shang.hlgnet.com/code/ +||https://shangqun.com/webforms/embed/ +||https://shangxueba.com/ask/images/woxiaoyun.jpg +||https://shaoxing.com.cn^*.files/gg +||https://shaoxing.com.cn^*gg. +||https://share.dmhy.org^*?$image +||https://share44.com/300 +||https://share44.com/adad2014/ +||https://shbear.com^*/ad/ +||https://shdx10000.com/yang/ +||https://shen4club.com/style/*.js?v= +||https://shfq.com/data/attachment/portal/ +||https://shhgg.in/js/shangjia +||https://shhgg.in/shlf1314/ +||https://shihuo.cn/alibtn_ +||https://shimo.im/api/ads? +||https://shiyanlou.com/img/shiyanlou- +||https://shoudian.org/diantong/laoma +||https://shouji.com.cn/static/v2/images/sj_banner_ +||https://shouyoutv.com/assets/api/web/v4/js/global_head.js +||https://showhaotu. +||https://shufazidian.com/float/yanue. +||https://shufazidian.com/image/728x90ty.jpg +||https://shulihua.net/js/gzlishi468google.js +||https://shulihua.net/js/gzlishigoogle.js +||https://shulihua.net/js/topcen.js +||https://shulihua.net/js/yegonggao.js +||https://shuowan.com/Public/shuo/20160119/569dafddd13be.jpg +||https://shuqi6.com/static/jquery/gg.js +||https://sihbb.com/yang/ +||https://sina.cn/cm/sinaads_ +||https://sina.cn/interface/*_game_wap_home_mid_list_in. +||https://sina.cn^*/impress? +||https://sina.com.cn/131/20150515/266.js +||https://sina.com.cn/activity/promotion? +||https://sina.com.cn/js/*/AdvertisingByNewIndex_ +||https://sina.com.cn/js/*/bgads.js +||https://sina.com.cn/js/87/20140101/hongbao/ +||https://sina.com.cn/litong/ +||https://sina.com.cn/NewIndexAdStart.js +||https://sina.com.cn/other/src/app/FinanceAppPics.js +||https://sina.com.cn/rwei/hapi2014/64video_titu_logo_500x90.gif +||https://sina.com.tw^$subdocument +||https://sina.com/ads/ +||https://sina.com/assets/js/dart/ +||https://sina.com/rm/ +||https://sinaimg.cn/finance/zwy/sidead_ +||https://sinaimg.cn/jslib/kuozhanad.js +||https://sinaimg.cn/large/ +||https://sinaimg.cn/large/*.gif +||https://sinaimg.cn/large/005BYqpggy1g3m368q4ucj30xc03cwf2.jpg +||https://sinaimg.cn/large/005EuLLtgw1eji5kzbgvlg30r801ogpy.gif +||https://sinaimg.cn/large/0060lm7Tly1g3a6izuyo6j30qk01xt93.jpg +||https://sinaimg.cn/large/0060lm7Tly1g3dc0ae1b8j30d50foaax.jpg +||https://sinaimg.cn/large/006CZIQPgy1fbziwpw0b8g306y06yq7w.gif +||https://sinaimg.cn/large/006CZIQPgy1fbzjg10emag30ka02in2s.gif +||https://sinaimg.cn/large/006CZIQPgy1fh2jcc14tog30l402iahm.gif +||https://sinaimg.cn/large/006CZIQPgy1fsc8y98k8mg30jg01odi6.gif +||https://sinaimg.cn/large/006UijYYgy1fjcaf2sjbqj30sc09q49o.jpg +||https://sinaimg.cn/large/006ZdrOOgy1flbruaukyxg30l401o444.gif +||https://sinaimg.cn/large/006ZdrOOgy1flbrubi93eg30m801oaff.gif +||https://sinaimg.cn/large/006ZdrOOgy1flbrum925hg30pu01o0z0.gif +||https://sinaimg.cn/large/006ZdrOOly1fld3ezu0n2g304g0godo9.gif +||https://sinaimg.cn/large/007cYCbaly1ftdqurgyj4g30hs02iaaq.gif +||https://sinaimg.cn/large/007hXlMJgy1fuyt7uoe5lg30l401o444.gif +||https://sinaimg.cn/large/5431d036ly1fh6gmu6gxmg20tg02i3yr.gif +||https://sinaimg.cn/large/5431d036ly1fhxbxz31nkj20tg02ignm.jpg +||https://sinaimg.cn/large/673b17ccly1ffu8mb9g4zj20k8020whe +||https://sinaimg.cn/large/692843begy1fy539f881bj20qo028abm.jpg +||https://sinaimg.cn/large/8c8bd65d +||https://sinaimg.cn/large/df8f080agw1f47u58kr42j20dw0dwadl.jpg +||https://sinaimg.cn/large/e6b79078ly1fdwzlienvfg20uk01odg0.gif +||https://sinaimg.cn/mw1024/006NYgrsgy1ffahk0lf8og30i204677m.gif +||https://sinaimg.cn/mw1024/006VdIwfgy1fiqkkhowdzg30qo02876g.gif +||https://sinaimg.cn/mw690/005th0Pegy1fmd666rsh2j30go05kn14.jpg +||https://sinaimg.cn/mw690/0060lm7Tly1fwa4j35tfpj30fr0nodg9.jpg +||https://sinaimg.cn/mw690/7d1c8e96gw1e6f70r8mwcj20qe082q40.jpg +||https://sinaimg.cn/mw690/83e2e207gy1ft97e1fenkj20fr0no40e.jpg +||https://sinaimg.cn/mw690/a1916e89gw1dye4d6qvyaj.jpg +||https://sinaimg.cn/mw690/a1916e89gw1dye4d74zmij.jpg +||https://sinaimg.cn/unipro/ +||https://sinaimg.cn^*/deco/$script +||https://sinaimg.cn^*_wap_ad_ +||https://sinajs.cn/t4/apps/publicity/static/wbad.js +||https://sinajs.cn/t6/home/js/pl/guide/adforfqy/ +||https://sinajs.cn/t6/home/js/pl/guide/bigday/ +||https://singlove.com/qq/qq.js +||https://sinolub.com/index.php?m=poster& +||https://site-bk.oss-cn-shenzhen.aliyuncs.com/img/aliyun/ +||https://sitv.com.cn/cookiead.php +||https://sj33.cn/js/side.js +||https://sj33.cn/js/tuchong.js +||https://sjzdaily.com.cn/sjznewsad/ +||https://skads.gxsky.com^$script +||https://slit.cn/slimages/ +||https://smzy.com/v1/img/ +||https://so.com/baike/ads? +||https://so.com/recomm/simi? +||https://so.com/sug-hot? +||https://so.open.163.com/v/list.htm?pid= +||https://soaspx.com/images/hws.gif +||https://soaspx.com/images/iiszj.gif +||https://soaspx.com/images/js/dropdown.js +||https://sobaidupan.com/top_txtad.asp +||https://sobaigu.com/images/server_tourist.jpg +||https://sobt8.org/Public/static/js/common.js +||https://sodu.cc/js/xufu.js +||https://soduso.com/js/4 +||https://soduso.com/js/sat.js +||https://soduso.com/js/so.js +||https://soft.mumayi.net/images/download.gif +||https://soft.mumayi.net/js/ +||https://soft6.com/index.php?m=poster& +||https://softhy.net/hp/ +||https://sogou-inc.com/AdvPreview. +||https://sogou.com/acquireAdvertise. +||https://sogou.com/adlist? +||https://sogou.com/amdjs/release/common/act_all_ad. +||https://sogou.com/ask?id= +||https://sogou.com/athena/ +||https://sogou.com/GetAdv. +||https://sogou.com/html/ext/agentsdk.js +||https://sogou.com/img_logo/wp.js +||https://sogou.com/uniplan/?pageID= +||https://sogou.com/wap_ask_service? +||https://sogoucdn.com/dhfe/ +||https://sogoucdn.com/imgu/*.swf +||https://sogoucdn.com/nstatic/js/tmallskin_ +||https://sogoucdn.com/wap/js/ +||https://sohu.com.cn/ppp/bms/bms.popup. +||https://sohu.com/adgtr/ +||https://sohu.com/api/labs/hotnews/c/load? +||https://sohu.com/api/labs/mp/load? +||https://sohu.com/api/photo/photo_bottom.json +||https://sohu.com/interaction/get/ +||https://sonimei.cn/images/gg.png +||https://sonimei.cn/images/llq.png +||https://sonimei.cn/qipai.jpg +||https://sooopu.com/asphtml/plnew. +||https://sooopu.com/js/*950.js +||https://sooopu.com/js/contentad330.js +||https://sootoo.com/son_media/msg/2010/11/16/30324.jpg +||https://sopan.me/images/1.gif +||https://soufunimg.com/imgd/viewimage/*/640x210 +||https://souid.com/images/css/123.js +||https://souid.com/templets/js/sougg.js +||https://soulu365.com/images/zhuce.jpg +||https://southmoney.com/page/pc/ +||https://southmoney.com/page/top +||https://southmoney.com^*/Inc/ +||https://sozi.cn/images/tj/downad +||https://sozi.cn/images/tj/hukead.gif +||https://sozi.cn/templets/sozi/js/js.js +||https://speedtest.cn/assets/images/ce_ +||https://sportscn.com/js/commerical +||https://sportsv.net/dist/ads/ +||https://sportsyeah.hk/wp-content/uploads/XfwppqROyThU/qQTuYinCrndr.js +||https://spqi.xyz/static/tmp/ +||https://srzc.com/images/*.swf +||https://ssnn.net^*-200-250.jpg +||https://sspai.com/api/v1/recommends?*=article_ +||https://sspai.com/attachment/sponsor/ +||https://ssyy881.com/zz/ +||https://stackpathdns.com/imgs/wondershareAd +||https://starbaby.cc/201608/36/f526d86de292e4.jpg +||https://starnnews.com/banner/ +||https://stat.api.4399.com/crossdomain.xml +||https://static.doyouhike.net/partner/ +||https://static.tianyaui.com^*/stat_20080313.js +||https://stats.chinaz.com/tool/ +||https://stats.chinaz.com/tool_img/ +||https://stcn.com/common/flash/aigu.swf +||https://steamcn.com/data/attachment/common/*.gif +||https://steamcn.com/img/ +||https://stheadline.com/images/heading-jm +||https://stnn.cc/images/xy/sfs +||https://stockstar.com/*DUILIAN&t= +||https://storm.mg/ad? +||https://storyren.com/images/dl +||https://storyren.com/imgg/ +||https://strip.taobaocdn.com/tfscom/$subdocument +||https://stulip.org/static/js/header.js +||https://su.bdimg.com/static/dspui/js/ +||https://subhd.com/images/970 +||https://subhd.com/images/ap/ +||https://sufile.com/jsa/ +||https://suibi8.com/aa1.gif +||https://suibianlu.com/zb_users/theme/tx_fzy/script/zhao.js +||https://sumo.com/api/load/ +||https://suning.com/cpc/getCpcSearchDatasRev? +||https://suning.com/getCpcDatas? +||https://supfree.net/england/ +||https://supfree.net/top.gif +||https://supfree.net/xxx/ +||https://suv.cn/data/js/64.js +||https://suv.cn/data/js/86.js +||https://szfcol.com/images/wxright240.jpg +||https://szfcol.com/js/siteAd.js +||https://szhk.com/565.jpg +||https://szhk.com/iframe/ +||https://szhk.com/include/taobao +||https://szhongzi.com/js/ +||https://szkaidi.cn/statics/g +||https://sznews.com/*.files/$image,object +||https://sznews.com/s?z= +||https://szonline.net/zhongyuan +||https://szyepu8.com/data/AADDimg/ +||https://t.cn/RkHfjHk| +||https://t57.cn/cert.php +||https://taijuba.com/js/*_ +||https://taijuba.com/js/tj +||https://taipwl.com/yingshidaquan/popwin.js +||https://taiwannutrition.com/blog/wp-content/plugins/arscode-ninja-popups/ +||https://taiyingshi.com/js/960_ +||https://talkfx.net/showTKImg? +||https://taobaocdn.com^$image +||https://taoguba.com.cn/js/tgbduilian +||https://taoguba.com.cn/res/libs/tgbxc.js +||https://taosq.net/public/250x250.jpg +||https://taoyizhu.com/images/guanggao2/ +||https://taporn.com/d/ +||https://tbcdn.cn/mm/tanxssp-custom/sina_ +||https://tbtdg.com/img/2018s11.jpg +||https://tc.cn/ad123/ +||https://tc.cn/g/dl.ashx? +||https://tc.cn/g/upload/ +||https://tc.cn/news/images/h.jpg +||https://tc.cn/news/images/right.jpg +||https://tcmap.com.cn/js/b_ +||https://techug.com/mug/ +||https://techweb.com.cn^*aliyun +||https://tengtv.com/skin/xin/Picture/img +||https://texnet.com.cn/images/cnbanner/ +||https://tfg2.com/images/upfile/AD/ +||https://theporn.xyz/static/tmp/ +||https://third-bucket.oss-cn-shenzhen.aliyuncs.com/ad/ +||https://thisav.com/index.js +||https://thisav.com/nb/ +||https://thisav.video/v3/nb/ +||https://thzok.com/6/ +||https://thzok.com/images/*.gif +||https://tianjimedia.com/s?z= +||https://tianmu.com/DA201 +||https://tianshif.com/zeis/ts.gif +||https://tianshui.com.cn/datugg/ +||https://tianshui.com.cn/newbg +||https://tianshui.com.cn/Scripts/AC_ +||https://tianshui.com.cn/yb.html +||https://tiantianzhibo.com/js/banner.js +||https://tiantianzhibo.com/sda/$image +||https://tianyaui.com/gamify/broadcast/js/ +||https://tianyaui.com/global/broadcast/*/bc_ +||https://tianyaui.com/global/broadcast/js/router.jsonp +||https://tianyaui.com/global/m/v3/static/js/list_ +||https://tieba.baidu.com/f/urlcheck? +||https://tieba.baidu.com/game/markConf? +||https://tietuku. +||https://tietuku.com/b975a9f7c494738b.gif +||https://tietuku.com/d57c01987e74d8f8.gif +||https://tiexue.net/domain-policy/ +||https://tiexue.net/zgg/ +||https://tieyou.com/images/xiao_tuan_you.jpg +||https://tigtag.com/images/*1000x +||https://tigtag.com/images/pic1/ +||https://tigtag.com/styles/phpcms/js/tigtag/ads.js +||https://tingchina.com/images/aibaoliang.gif +||https://tingchina.com/js/*220- +||https://tingchina.com/js/760 +||https://tingchina.com/js/990 +||https://tingchina.com/js/allad.js +||https://tingchina.com/js/dp468 +||https://tingge123.com/attachment/js/mm +||https://tingroom.com/images/qsbdc.gif +||https://tingroom.com/images/z923.js +||https://tingroom.com/skin/dy/images/enread.jpg +||https://tingroom.com/tingroom/ad/ +||https://tingvoa.com/images/*img.js +||https://tingvoa.com/images/top_600_80.js +||https://titan007.com/ad/ +||https://titan007.com/images/item.gif +||https://titan007.com/news.aspx +||https://tiyuxiu.com/media/mm/ +||https://tmbbs.com/data/attachment/portal/*.swf +||https://tmdm.tv/fgr/ +||https://to8to.com/api/ggdata. +||https://tohomh123.com/js/funasd.js +||https://tom.com/*TomFlashAd +||https://tom.com/adsender/ +||https://tonnn.com/promotion2/*.js +||https://toolfk.com/common/cp.js +||https://toolfk.com/tools/images/vps/ +||https://toolnb.com/Public/aliyun/900x60.png +||https://topmba.mobi/ad/ +||https://topthink.com/api/basic/ +||https://totheglory.im/pic/business/ +||https://totheglory.im/pic/fangtuo.jpg +||https://totheglory.im/pic/picad/ +||https://totheglory.im/pic/ttg- +||https://totheglory.im/pic/ttg_ +||https://tp-shop.cn/Public/images/830-80- +||https://tq121.com.cn/j/ad/ +||https://trafficjam.cn^$third-party +||https://trendmicro.com.tw/wp-content/uploads/*Banner +||https://ts.cn^*/site1/$object +||https://tt1069.com/bbs/zgg_ +||https://tt1069.com/or_pu_0604.js +||https://tt1069.com/script.min.js +||https://tt1069.com/t0602.js +||https://tt27.com/js/jsg/ +||https://ttavav6.com/zz/ +||https://ttkyy.net/uploads/allimg/201710/1a13f1cdc0917406.jpg +||https://ttll.cc/js/ttll/ +||https://ttrar.com/live/ +||https://ttx.cn/js/float.js +||https://ttyavav.com/kanshenmekan/ +||https://ttyavav.com/qian/ +||https://tuan.cs090.com/gettuan.php? +||https://tudouui.com/tspecial/assets/PauseContainer.swf +||https://tudown.com/script/subhd.js +||https://tui.gtimg.com//res/ +||https://tui22.com/b/ +||https://tui22.com/cc/ +||https://tuicool.com/images/upload/aliyun +||https://turnpage.com/image/product/common/appcgn.png +||https://tuwan.com/myad/ +||https://tuyiyi.com/images/zone/201706/1-1F62G232310-L.png +||https://tuzz.cn/AD_ +||https://tv1box.com/Runtime/Js/ +||https://tv432.com/templets/gg.js +||https://tv699.com/AllTemplet/js/ +||https://tv699.com/Templet699/js/ +||https://tvmao.com/images/style/yx500x160.gif +||https://tvyan.com/images/jscss/tv- +||https://tw.beanfun.com/bfweb/NEW/commonlogin +||https://tw.buy.yahoo.com/?z= +||https://twavtv.com/js/jquery.colorbox +||https://twmeiju.com/images/axd.js +||https://twunbbs.com/images/ +||https://txahz.com/static/image/tp/ +||https://txtshu365.com/img/ +||https://txzqw.me/attachment88txzqw/*.gif +||https://txzqw.me/tupian/ +||https://ty121.cn/IAA/ +||https://tzfdc.com.cn/userfiles/flash/ +||https://tzfdc.com/fdcSell/ +||https://tzfdc.com/Images/09/flv/flv_index.js +||https://u.ctrip.com/showcaseadvertisementsit/ +||https://u.riju.com/click.php +||https://u17i.com/readad/ +||https://u627.com/dis/tj.js +||https://uc.cn/s/uae/g/0s/ua.js +||https://uc129.com/images/top_hjsj.jpg +||https://uc129.com/m/ +||https://ucbug.com/gaibian/js/tlys.js +||https://ucbug.com/js/ +||https://ucbug.com/new2018/ +||https://uchks.com/2018/% +||https://uczfl.com/data/content +||https://udn.com.tw/upf/*_banners/BD/ +||https://udn.com.tw/upf/2015_money/SSI/ad/ +||https://udn.com/2010MAIN/inc/t03-CMS.html +||https://udn.com/common/iframe/ +||https://udn.com/common2/iframe/ +||https://udn.com/SSI/neckFrame +||https://udn.com^*/ad/ +||https://uedfa.net/Static/imgs/affiliate/ +||https://ufanw.com/js/hongbao.js +||https://uho.com.tw^$subdocument +||https://ulifestyle.com.hk/images/*_300x100 +||https://union.591.com.tw/cpt? +||https://uooyoo.com/hz/*str.js +||https://up.qingdaonews.com/up/$object,script +||https://upaiyun.com/newimg88/2017/11/yideng +||https://upaiyun.com/system/post_tile/new_web_banners/ +||https://upan.cc/images/pay/ +||https://upantool.com/a/ +||https://upload.cc/i/*.gif +||https://upload.jjxw.cn^*.swf +||https://usnewsexpress.com/wp-content/uploads/*ad- +||https://usxpic.com/btimg/upload/image/20181018/101806323369.png +||https://uu114.cn/static/*/ad.js +||https://uulucky.com/show- +||https://uumtu.com/js/lqbz.js +||https://uuu9.com/news/css/news_content_in.js +||https://uuu9.com/yoyo_ +||https://uuu9.tieba.com^$subdocument +||https://uwants.com/dfp_forum.php?au=Uwants_Web_ +||https://uwants.com^*_prod.html +||https://uxxux.com/js/zd.js +||https://uzzf.com/skin/know/ +||https://v.beta.yinyuetai.com/swf/plugins_new.xml? +||https://v.huanqiu.com/tres/xml/vda.xml +||https://v4.cc/m/common.js +||https://v4dwkcv.com/html/click/ +||https://v8gay.com/apps/misc.php?action=advert& +||https://vali*.cibntv.net^*.mp4?$media,rewrite=abp-resource:blank-mp3 +||https://vansky.com/agdg/homegg/ +||https://vansky.com/agdg/infoRight/ +||https://vansky.com/agdg/middle/ +||https://vansky.com/agdg/vans/*_top +||https://vansky.com/agdg/vans/adv +||https://vansky.com/agdg/vans/tabbao +||https://vansky.com/index_files/*.gif +||https://variflight.com/carnoc/ad/ +||https://vdianying.cc/img/youhuiquan250.gif +||https://vdianying.cc/img/zfbhb.png +||https://vdianying.cc/wp-content/plugins/wp-adblock-dedect/ +||https://vdisk.cn/img/*.gif +||https://veryhuo.com/images/soft/js/download +||https://veryhuo.com/plus/js/ +||https://vgao.xyz/images/*.gif +||https://videojj.com/api/v1/adsTags? +||https://videojj.com/api/v1/plat_tags? +||https://videojj.com/flash/bin/vjj_config.xml +||https://videospeedy.com/myimg/ +||https://videowood.me/assets/js/popup.js +||https://videowood.tv/popjavascript +||https://vip.luanren.com/data/*.gif +||https://vipbuluo.com/2/123.png +||https://vipcn.com/hezuo/ +||https://vipcn.com/hz/down_r.js +||https://vipcn.com/js/indexfoot.js +||https://vipdage.com/wp-content/uploads/ad/ +||https://visit-japan.jp/parts/visitjapan_f35_170_170.jpg +||https://vista.tgbus.com/s.js +||https://vista.tgbusdata.cn/s.js +||https://vista.tuwan.com/s.js +||https://vjcdn.com/wp-content/uploads/*640x200 +||https://vkeke.net/public/agd +||https://vkugq.com/data/attachment/portal/ +||https://vnet.cn^*.html +||https://voc.com.cn/adsClick/ +||https://voc.com.cn/Frame/qqms_cs.html +||https://voc.com.cn/js/xc/ +||https://vodtw.com/m- +||https://vsimg.com/jd.gif +||https://vuejs.org/images/geekbang +||https://vuetifyjs.com/supporters.json +||https://vx.com/api/ads? +||https://vzmz.com/template/paody/aaaa/*0 +||https://vzmz.com/template/paody/aaaa/357.js +||https://w010w.com.cn^$subdocument +||https://w3school.com.cn/i/kaikeba.gif +||https://w3school.com.cn/i/sp_header.gif +||https://w3school.com.cn/i/sp_sidebar.gif +||https://w51t.com^$subdocument +||https://wa.kuwo.cn/lyrics/img/kwgg/ +||https://wacowla.com/wp-content/plugins/popover/js/ +||https://wallstcn.com/image?url=http%3A%2F%2Fcbjs. +||https://wallstcn.com^*-300x250. +||https://wallstreetcn.com/apiv1/earn/impression/ +||https://wan.liebao.cn/zt/ +||https://wan.sogou.com/static/fragment/ +||https://wan.sogoucdn.com/cdn/flash/ +||https://wandouys.com/Runtime/Js/ +||https://wangbase.com/blogimg/asset/201806/bg2018060604.jpg +||https://wanghualang.com/wp-content/gallery/ad/ +||https://wangjing.cn/iframe/zhounian.php? +||https://wangjing.cn/images/js/YlFloat.js +||https://wangpan007.com/themes/default/js/global.js +||https://wanmcy.com/toolsda/ +||https://wanwan.sina.com.cn/third_party/ +||https://wanyx.com/Public/js/cqby.swf +||https://wanyx.com/Public/js/qian.js +||https://wbzol.com/swf/352X76.swf +||https://wdstatic.cn/tg/v2ex/ +||https://wdzj.com/wdzj/images/hezuo/ +||https://we560.com/js/*.js +||https://weathercn.com/m_mobile/ad_image/ +||https://webfly.bid/images/bill960x90.gif +||https://webjx.com/zanzhushang/ +||https://webkaka.com/info/script/articleAd.js +||https://webkaka.com/script/cp.js +||https://wehefei.com/htmlphp/tmall/ +||https://wei2008.com/js/*0. +||https://wei2008.com/js/jump +||https://wei2008.com/js/t_ +||https://wei2008.com/skin/js/top.js +||https://weike87.com/images/*0 +||https://weike87.com/images/*1 +||https://wendangku.net/js/common.js +||https://wendellyu.com/banner/ +||https://wenku.baidu.com/browse/interface/getrec? +||https://wenku1.com/js/head.js +||https://wenkuxiazai.com^*reward +||https://wenxiu998.com/static/js/top.js +||https://west.cn/vcp/getJScode/ +||https://weste.net/js/showpagead.js +||https://whinfo.net.cn/ad20 +||https://whinfo.net.cn/js/adDuiLian_ +||https://whinfo.net.cn/js/fly_right.js +||https://whnews.cn/news/data/*gg +||https://whnews.cn/wh_public/dl/ +||https://whnews.cn/wh_public/xuxu/ +||https://wholehk.com/atttuop.js +||https://wholehk.com/ptpptt.js +||https://whsir.com/image/aliyun +||https://wigcw.cn/20180109150051.png +||https://wigcw.cn/240X355.jpg +||https://williamlong.info/script/sidebar.js +||https://win007.com/js/flashad +||https://win007.com/mn/ +||https://win0168.com/images/item.gif +||https://win2008.info/gongyi.gif +||https://windows7en.com/images/ +||https://windows7en.com/static/images/xiaobai_ +||https://windows7en.com/statistics/statistics.js +||https://windows7en.com/statistics/stats.js +||https://winning11cn.com/temp/*.gif +||https://winning11cn.com/temp/bifen/ +||https://winvvv.com^$subdocument +||https://wishdown.com/img/ +||https://wlrjy.com/assets/images/*.gif +||https://wlrjy.com/assets/images/tuidc.png +||https://wm114.cn/0images/hlbxd3.jpg +||https://wmzhe.com/pics/ae/d3/ +||https://wn789.com/wp-content/uploads/*/SugarHosts +||https://wo256.com/256_gg/*.gif +||https://woaidu.org/images/20180802/3.jpg +||https://wobuka2.com/js/ +||https://wokao.co/qq/qq.js +||https://woyaoq.com/201904100958_5cad4dbac9c5f.png +||https://wpjam.com/wpjam/banner/qiniu.png +||https://wples.com/pc/common.js +||https://wstimes.cn/public/wstimes/js/*ad +||https://wstx.com/api.php?mod=ad& +||https://wudizuqiu.com/fy +||https://wumii.cn/site_images/c/ +||https://ww7814.win/pic +||https://wwuuoo.com/11bb/ +||https://www-dnwx-com.anquanbao.cn/pic +||https://www.china.com.cn/node_ +||https://www.dmhy.org^*?$image +||https://wwwcdn.kimiss.net/btn/ +||https://wx.sina.com.cn/iframe/pdps/ +||https://wxdown.net/images/*.gif +||https://wxrb.com/g/js/baidu.cbjs.m.js +||https://wxt999.net/template/*/images/g_js/ +||https://wyh.tv/image/upload/ad/ +||https://wzbaohe.com/imgadnew/midad.js +||https://x3cn.com/data/attachment/portal/*.gif +||https://x7w7.com/js/float +||https://x81zw.com/hf.js +||https://xcar.com.cn/dsp/adpc? +||https://xdcad.net/source/plugin/disad/disad.js +||https://xdf.cn/v4/js/leyus/ +||https://xdnice.com/themes/xdnice/public/assets/images/quna.png +||https://xdnice.com/themes/xdnice/public/assets/images/xdnice.png +||https://xdowns.com/ggco.js +||https://xdowns.com/info.js +||https://xdowns.com/js/lefttuijian.js +||https://xdowns.com/template/tshouyou/js/jietu.js +||https://xfsub.com:88/js/*ad +||https://xghylt.com/api.php?mod=ad&adid= +||https://xgmeizi.com/smdd/ +||https://xhymsq.com/data/attachment/portal/ +||https://xia1ge.com/wp-content/uploads/*/wechat-ad.png +||https://xiacaidd.com/xiacai/ad/ +||https://xiami.com/player/iframe-adm? +||https://xiancn.com^*/adv_content/ +||https://xiangai365.com/ad_js/ +||https://xianliao.me/ads +||https://xianliao.me/assets/js/lib/ne3u3.js +||https://xianliao.me/etoron/get? +||https://xianshuabao.com/ashx/pt.ashx?cmd=record&filter=&order=all& +||https://xianzhenyuan.cn/data/attachment/common/ +||https://xiaodutv.com/xda? +||https://xiaoma.com/images/form/getclueforxiaomazonghe.js +||https://xiaoma.com/images/form/overlay +||https://xiaopi.com/500/ +||https://xiaopi.com/api.php?op=get_p& +||https://xiaopi.com/statics/new_js/15.js +||https://xiaopi.com/statics/skin_js/jquery.posrj.js +||https://xiaoz.me/wp-content/uploads/*_banner_ +||https://xiazaiba.com/data/xzb_haha.js +||https://xiazaizhijia.com/w2/js/wxzzj.js +||https://xici.net/_img/ad.png +||https://xici.net/r/ +||https://xici.net/z/ +||https://xiepp.com/JS/expand.js +||https://xiepp.com/JS/topshow.js +||https://xiexingcun.com/tongji.js +||https://xiexingcun.com/tyong.js +||https://xigua110.com/a/ +||https://xigua66.com/ps/aaa/ +||https://xilu.com/iframe/pagepic/ +||https://xilu.com/js/bd.js +||https://xilu.com/script/tag/2.0/func.js +||https://xineurope.com/static/image/banner/ +||https://xingkbjm.com/hengchuang.gif +||https://xingkbjm.com/wp-content/uploads/*/Ad +||https://xingwangzz.com/123/ +||https://xinhuanet.com/18gg/ +||https://xinhuanet.com/iframe/ad +||https://xinhuanet.com/imgad/ +||https://xinhuanet.com/jjimages/jc/js/fla.js +||https://xinhuanet.com^*/ad_ +||https://xinhuanet.com^*/adv +||https://xinjs.cn/2010/zzz.jpg +||https://xinku.org/jbLoader.js +||https://xinmin.cn/framepage/foot1.htm +||https://xinmin.cn/framepage/left1.htm +||https://xinmin.cn/framepage/top +||https://xinmin.cn/framepage/yqLink1.htm +||https://xinshijue6080.com/gg +||https://xinshijue6080.com/Runtime/js/ +||https://xinwenren.com/index.php?m=poster& +||https://xinyi.com/Public/config/Couplet/Index39.js +||https://xinyi.com/Public/config/Couplet/Index40.js +||https://xinyi.com/Public/config/Couplet/Index41.js +||https://xitangwenhua.com/muban/mh/js/asd.js +||https://xitek.com/idzone +||https://xitong8.com/theme/default/images/725x90.gif +||https://xitong8.com/theme/default/images/index_13.jpg +||https://xitongzhijia.net/theme/2017/images/temp/ad_ +||https://xitongzhijia.net/theme/2017/js/total_soft.js +||https://xiu8.com/baidu-tieba/*&forum_name= +||https://xizi.com/a/ +||https://xizi.com/js/rotator.js +||https://xkhouse.com/display/displaygg/ +||https://xl720.com/tmp/ +||https://xlpu.cc/adv/ +||https://xmcimg.com/js/m.js +||https://xmfish.com/chanel/www/cpm.html +||https://xng02.com/api.php?mod=ad& +||https://xnnews.com.cn/adgl/ +||https://xnnews.com.cn/Templets/image/zyyy.swf +||https://xnnews.com.cn/Templets/js/*link +||https://xntk.net^*.html +||https://xp811.com/img/xitong.gif +||https://xp85.com/common/images/downad +||https://xp85.com/common/js/allpage.js +||https://xpcha.com/js/notice.js +||https://xpgod.com/statics/skin_js/xpgod/ +||https://xrc3.com/js/floatcaoplus.js +||https://xspic.com/css/asd +||https://xuehi.cn/reward/reward +||https://xuehuile.com/resource/images/banner/ +||https://xueqiu.com/promotion/ +||https://xun9u.com/css/js/text_link.js +||https://xunleige.com/js/functionx.js +||https://xunyugong.com/wp-content/uploads/*.gif +||https://xunzai.com/www/all_common.js +||https://xuzhi.net/index.php?m=poster& +||https://xuzhi.net/uploadfile/poster/960x50.jpg +||https://xv98.com/js/daohang +||https://xv98.com/js/hengfu +||https://xx978.info/images/468-60OK.gif +||https://xxdm6.com/js/union/ +||https://xxdy8.cn/template/Datll/aaaa/ +||https://xxffo.com^*_slett.php +||https://xxhh.com/xh.js +||https://xyfdcw.com.cn/userfiles/flash/ +||https://xywy.com/gk?a= +||https://xywy.com/zhixing/ +||https://xz7.com/js/3000.js +||https://xz7.com/js/bann +||https://xz7.com/js/gg_ +||https://xz7.com/js/jctj.js +||https://xz7.com/js/top2.js +||https://xz7.com/js/xia +||https://xzbu.com/img/xueshu +||https://xzbu.com/xueshu/btxm.jpg +||https://xzbu.com/xueshu/zwyc.gif +||https://y3600.com/1 +||https://yahoo.com/embed/tv?site=buzzhand& +||https://yahoo.com/gdsale/gdsale.asp +||https://yam.com/ad_yam/ +||https://yan007.com/js/sss/ad.js +||https://yangtianya.com/images/ +||https://yanjiao.com/zt/indexad/ +||https://yantuchina.com/Upload/Ad/ +||https://yanu.qiniudn.com/*x60. +||https://yanu.qiniudn.com/270300.jpg +||https://yaojingweiba.com/inc/ +||https://yaolan.com/wenku_debris/time_debris/images/mary +||https://yaolanimage.cn/assets/ask/js/ask_video_popup.js +||https://yaolanimage.cn/cms/image/960-90 +||https://yaseok.com//static/src/images/loading.gif +||https://yatu.tv/m/images/*300_100 +||https://yaxi.net/hz/ +||https://ybbs.ca/index/js/advReplay_ +||https://ydss.cn/static/js/autoAd.js +||https://ydss.cn/test.www.jdpay.com +||https://ydstatic.com/fanxian/minisite/promotion/ +||https://yea.im/5hq.gif +||https://yea.im/5ht.gif +||https://yecaoyun.com/AD/ +||https://yeeyi.com/bbs/api.php?mod=js&bid= +||https://yefu365.com/rebo/function.js +||https://yehaobo5.com/js/ +||https://yesky.com/monitorjs/imp- +||https://yeyou.com/2013/new/yeyou-float-window.js +||https://yg006.com/attachment/js/ +||https://yg006.com/attachment/xjdb.jpg +||https://ygdy8.com/jsy/ +||https://ygdy8.net/js1/ +||https://yhdm.tv/bar/yfyh.js +||https://yibo5.cn/img0 +||https://yigujin.cn/tp/abc/*yun +||https://yikeyz.com/pm.js +||https://yimg.com/bf/homerun/ysm_ +||https://yimg.com/cv/ae/default/*_STATIC-JPEG_ +||https://yimg.com/cv/ae/tw/bwchou/728x210. +||https://yimg.com/cv/ae/tw/bwchou/bubble_ +||https://yimg.com/cv/api/hk/fp_czy_ad/ +||https://yimg.com/geminivideoads/ +||https://yimg.com/no/ +||https://yimuhe.com/n_ad/ +||https://yinduabc.com/res_base/*/makemoney/ +||https://yingshidaquan.cc/Templet/js/ +||https://yinyuetai.com/others/admin/*_1200x100. +||https://yinyuetai.com/proment/get-play-medias?json=true&position=preroll +||https://yiqikanba.cn/wp-content/uploads/*.gif +||https://yiren34.com/js/ +||https://yivian.com/repo/ad/ +||https://yiwenbaida.com/images/pzz.gif +||https://yixiaoba.com/js/yxb_normal.js +||https://yixieshi.com/media/ +||https://yiybb.com/inc/ +||https://yjhas.net^$image +||https://yjyc-ask.com/res/ads/ +||https://ykimg.com/material/*/ad/ +||https://ylnet.com.cn/gj.js +||https://ylnet.com.cn/inc/ad$subdocument +||https://ynzd.org/dict/uploads/20111007/ad_710.jpg +||https://yoka.com/s?z= +||https://yorkbbs.ca/yorkads/ +||https://youivr.com/image/*-960x80 +||https://youquba.net/js/ +||https://youth.cn/hezuo/index.js +||https://youth.cn/images/c.js +||https://youth.cn/images/m.js +||https://youth.cn/images/public_ +||https://youth.cn/qwtf2015/ +||https://youth.cn^*.html$subdocument,~third-party +||https://youth.cn^*.php$subdocument,~third-party +||https://youthwant.com.tw/dodo.php?adjs= +||https://youtube.com/embed/*&origin= +||https://youtube.com/iframe_api +||https://youxi.baidu.com/tips/bdtips_min.js +||https://youxiduo.com/userdirs/2018/02/20180209194845ZKQD.jpg +||https://ysxs8.com/ysgg/ +||https://ytbbs.com/images/index/ +||https://yuesp.com/js/viu/ +||https://yueyuyy.com:350/images/pc-tongzhi.js +||https://yui-nya.com/wp-content/uploads/2016/12/37011.jpg +||https://yui-nya.com/wp-content/uploads/2016/12/neta370-370.jpg +||https://yundaquan.com/data/attachment/portal/ +||https://yundianb.com/hao/ +||https://yundianb.com/tu/jia.gif +||https://yunfile.com/ex/pop/ +||https://yunlaige.com/configs/article/*gg +||https://yunlaige.com/configs/article/*zx +||https://yunupload.net/jsa/ +||https://yx-w.com/1122in/619x93.js +||https://yxad.com/baidu/ +||https://yxad.com/js/lady.gif +||https://yxad.com/sg/ +||https://yxad.com/yxad/ +||https://yxbao.com/js/bt_ +||https://yxdd.com^$subdocument +||https://yxdm.tv/js/gad.js +||https://yxdown.com/cj/ +||https://yxdown.com/pc/news/js/news +||https://yxdown.com/zt/zt/js/zt.js +||https://yxlady.com/wxetj/pcfarmgg.jpg +||https://yxtvg.com/js/s.js +||https://yxzoo.com/style/js/fmt.js +||https://yy18.info/yyads/ +||https://yytcdn.com/headfile/avt/ +||https://yytcdn.com/others/*_175x660. +||https://yytcdn.com/others/avt/*_1 +||https://yytcdn.com/swf/plugins_new.xml? +||https://yytcdn.com/user/bugles/*_*x*.jpg +||https://yyzs.net/js/Float_ +||https://yyzs.net/js/flyers_ +||https://yzdh44.com/js/ +||https://yzs.com/d/file/p/*.swf +||https://yzs.com/d/file/p/2016/12/06/61e15b92a4a2a7cec4910f1d9ea79fb2.jpg +||https://yzz.cn/global_gg/ +||https://z4bbs.com/adst/ +||https://zantj.com/diao +||https://zb.cool/static/img/banner/ +||https://zbjimg.com/static/union/ +||https://zc173.com/173fee/ +||https://zc173.com/pp/ +||https://zcaijing.com/images/ +||https://zczj.com/special/ +||https://zdface.com/js/m/zw_banner.js +||https://zdqx.com/statics/v1/images/gif/ +||https://zdzdm.com/static/img/*ljs.jpg +||https://zeyi5.com/js/2412/ +||https://zfs.cn/8th/ +||https://zhaiiker.com^*_ads& +||https://zhainanba.org/ac/ +||https://zhan.com/static/js/*_ad_modal.js +||https://zhandi.cc/Runtime/js/*vod +||https://zhandi.cc/Runtime/js/900 +||https://zhandi.cc/Runtime/js/index +||https://zhangchengbo.com/meijuba/js/top.js +||https://zhanqi.tv/api/static/v2.1/actives.lists/ +||https://zhanqi.tv/uploads/*/ads-*.swf +||https://zhaolianmeng.com/plushuan/ad_js.php +||https://zhaozi.cn/d/js/mini/extended +||https://zhenjiang365.cn/*/ad_ +||https://zhenjiang365.cn/bbsatt/day_120827/1208271004af7c25b6e3d4fa1d.gif +||https://zhev.com.cn/file/weixin/ +||https://zhgmeitu.xyz/images/*.gif +||https://zhibo8.cc/js/adv-slide-toggle.js +||https://zhiboba.org/gg_js/ +||https://zhibok8.com/images/*.gif +||https://zhibok8.com/js/di +||https://zhibok8.com/js/scroll.js +||https://zhifuok.com/19xa.jpg +||https://zhijia.com/hd/*.swf +||https://zhimg.com^*_600x250 +||https://zhimg.com^*adx +||https://zhiys.com/img_new/mobilemo2.jpg +||https://zhongyi.ifeng.com/a/zt.js +||https://zhongyoo.com/img/js/tongji.js +||https://zhongzijun.com/js/adurl.js +||https://zhuici.com/990x60.jpg +||https://zhuji.net/2007_ad/ +||https://zhujiangroad.com/js/alltop.js +||https://zhujiceping.com/F/ +||https://zhulong.com/poster/get?positions_name=ZY_JZ_300_02 +||https://zhulong.com/poster/get?positions_name=ZY_SP_300 +||https://zhushou.360.cn/script/plugin_tiper.js +||https://zhzyw.com/js/InsertJS.js +||https://zi-han.net/theme/hplus/js/plugins/layer/ +||https://zimushe.com/res/other/ +||https://zimuzu.tv/public/rooms? +||https://zimuzu.tv/rrlx +||https://zineworm.com^*&localtype= +||https://zinggadget.com/wp-content/*/popup +||https://zj.cn^*/AD?location= +||https://zjbdt.com/onexgadimgs/ +||https://zjg.js.cn/Public/config/Couplet/Index4 +||https://zjol.com.cn/www/zzhzbd/ +||https://zk789.cn/Res/Scripts/Show/NetSys/Show.ashx +||https://zmtiantang.com/static/m.js +||https://zmtiantang.com/static/pace. +||https://zmzjstu.com/g3/ad-cp/ +||https://zmzjstu.com/g3/tool +||https://znjj.tv/uploadfiles/abi/ad201 +||https://zol-img.com.cn/ad/ +||https://zol.com.cn/active/*guomei +||https://zol.com.cn/active/*tmall +||https://zol.com.cn/adrs/ +||https://zol.com.cn/channel/index.php?c=Active_Tmall& +||https://zol.com.cn/index.php?c=Gethot& +||https://zol.com.cn/mainpage/2017/corner/ +||https://zol.com.cn/wapask/index.php?c=Ajax_Ask&a=NewAsyncResponseTmallAd +||https://zolsky.com^*ad/*.js +||https://zongheng.com/ajax/recommend.game. +||https://zongheng.com/upload/ad/ +||https://zongheng.com/upload/hzds/ +||https://zongheng.com/upload/recommend/game/ +||https://zongheng.com/v2014/js/mod/bad.js +||https://zongheng.com/zhuanti/2014/active/js/active.js +||https://zpgjz.com/cdn/new1/4.gif +||https://zpiyi.com/public/js/global.js +||https://zqsx.net/bbs/kehu/ +||https://zrblog.net/zzimg/ +||https://zsjjob.com/user/member/google.htm +||https://zsnews.cn/js/adControl- +||https://zt.chuanke.com/?mod= +||https://zt5.com/statics/img/ +||https://ztjal.info/wp-content/plugins/kill-adblock/ +||https://zuiacg.com/images/client/ +||https://zuidaima.com/images/1/201606/20160616135714978. +||https://zuixingkong.com/gao/ +||https://zuixingkong.com/show-g/ +||https://zuixingkong.com^*mygg/ +||https://zuoche.com/promo/*.jspx +||https://zwwooooo.com/images/hengtian. +||https://zx590.com/assets/style/js/paigu.js +||https://zxdy777.com/myimg/ +||https://zxip.com/2013_ad/ +||https://zzbaike.com/main/*-20 +||https://zzbaike.com/main/arvixe +||https://zzbaike.com/main/host +||https://zzc.cn/b1/live_b_ +||https://zzidc.com/images/1060.jpg +||https://zzidc.com/uploads/pintuan.jpg +||https://zzlzl.com/content/templates/emedia_better/images/1/ +||https://zzsky.cn/images/a_d_ +||https://zzz4.com/JS_AD/ +||https://zzzyk.com/js/ +||https://241hs.com/js/jquery.js +||https://0512s.com^$third-party +||https://100669.com^$third-party +||https://15tianqi.com^$third-party +||https://200218.com^$third-party +||https://21shebao.com^$third-party +||https://289.com^$third-party +||https://301848.com^$third-party +||https://4name.com^$third-party +||https://51yhzp.com^$third-party +||https://600zi.com^$third-party +||https://90370.com^$third-party +||https://91friend.com^$third-party +||https://94ab.com^$third-party +||https://999d.com^$third-party +||https://aa808.com^$third-party +||https://aili.com^$third-party +||https://aoshuku.com^$third-party +||https://cdeme.com^$third-party +||https://cfff.net^$third-party +||https://chnci.com^$third-party +||https://daxishi.com^$third-party +||https://dyscb.cn^$third-party +||https://fjzimaoqu.cn^$third-party +||https://fpb1.chinacar. +||https://fuz.cc^$third-party +||https://gsjdzx.com^$third-party +||https://gumgo.cn^$third-party +||https://gunmi.cn^$third-party +||https://gushifanyi.com^$third-party +||https://hmtoday.com^$third-party +||https://hrjg.com.cn^$third-party +||https://ikuailian.com^$third-party +||https://ixpub.net^*.js +||https://iy.com.cn^$third-party +||https://jeepyy.com^$third-party +||https://jiliw.com^$third-party +||https://jxdown.com^$third-party +||https://jy135.com^$third-party +||https://kuhou.com^$third-party +||https://kuk8.com^$third-party +||https://kuku99.com^$third-party +||https://kxji.com^$third-party +||https://liangpinge.com^$third-party +||https://luolikong.net^$third-party +||https://meishiba.com.cn^$third-party +||https://mipujia.com^$third-party +||https://miyudaquan.top^$third-party +||https://mj-medlab.com^$third-party +||https://mn586.com^$third-party +||https://modzj.net^$third-party +||https://mxitie.com^$third-party +||https://mxpwx.com^$third-party +||https://mzcsdf.com^$third-party +||https://nyhpyq.com^$third-party +||https://oicchina.com^$third-party +||https://pjcn.org^$third-party +||https://qizhihaotian.com^*.js +||https://qwxcs.com^$third-party +||https://redmx.cn^$third-party +||https://s11.cn^$third-party +||https://sg92.com^$third-party +||https://shuqw.com^$third-party +||https://star-media.cn^$third-party +||https://sundxs.com^$third-party +||https://tiexing.com^$third-party +||https://trebleperfect.com^$third-party +||https://vjie.com^$third-party +||https://wayqq.cn/g/ +||https://web8.net^$third-party +||https://weilianjie.com^$third-party +||https://wenshenbang.com^$third-party +||https://wshufa.com^$third-party +||https://xfyjz.cn^$third-party +||https://xiaomiaoquan.com^$third-party +||https://yihubaiying.com^$third-party +||https://yunzuowen.com^$third-party +||https://zhantai.com^$third-party +||https://zhongkaowu.com^$third-party +||https://zichenit.com^$third-party +||https://zxw51.com^$third-party +||https://uux79.com^$third-party +||https://camspic.com/imguang/*.gif +||https://canimgs.com/images/ +||https://caoimg.xyz/images/ +||https://caoimgs.com/images/*.gif +||https://ganimg.com/images/*.gif +||https://ganimgs.com/images/*.gif +||https://gaoimg.xyz/images/ +||https://haoimgs.com/images/*.gif +||https://paopic.com/imguang/ +||https://dlkoo.cc/down/$subdocument +||https://dlkoo.cc/down/*.htm$popup +||https://dlkoo.cc/down/copy +||https://haoxianggou.xyz/?from=$popup,third-party +||https://dlkoo.com/down/$subdocument +||https://dlkoo.com/down/copy +||https://ifun.tv/a/$xmlhttprequest +||https://s1-a1.dnvodcdn.me^*.svg +||https://s1-a4.ifun.tv^$rewrite=abp-resource:blank-mp3 +||https://dnvod.tv/abb/ +||https://s1-a4.dnvod.tv^$rewrite=abp-resource:blank-mp3 +||https://dnvod.tv/04/ +||https://dnvod.tv/1tJ/ +||https://dnvod.tv/2b/ +||https://dnvod.tv/34DH/ +||https://dnvod.tv/3a/ +||https://dnvod.tv/91/ +||https://dnvod.tv/BtT/ +||https://dnvod.tv/DBqW/ +||https://dnvod.tv/Home/ObtainPublic +||https://dnvod.tv/LbP/ +||https://dnvod.tv/Movie/GetResource.ashx?id= +||https://dnvod.tv/Qfj/ +||https://dnvod.tv/Scripts/jquery.public- +||https://dnvod.tv/WlCk/ +||https://dnvod.tv/a/$xmlhttprequest +||https://dnvod.tv/a/o +||https://dnvod.tv/a2/ +||https://dnvod.tv/b9/ +||https://dnvod.tv/cSTR/ +||https://dnvod.tv/d4/ +||https://dnvod.tv/f9/ +||https://dnvod.tv/ffcX/ +||https://dnvod.tv/gb/ +||https://dnvod.tv/jXdH/ +||https://dnvod.tv/sc3Xv/ +||https://dnvod.tv/upload/public/ +||https://dnvod.tv^*.MP4| +||https://pub.dnvod.tv^$xmlhttprequest +||https://public.dnvod.tv^$xmlhttprequest +||https://hh010.com/static/image/f/ +||https://hh010.com/static/image/g/ +||https://hh010.com/static/image/image/ +||https://hh010.com/static/image/t/ +||https://ifeng.com^*?*cl= +||https://ifengimg.com/*1751.js +||https://ifengimg.com/6536a +||https://ifengimg.com/9c86 +||https://ifengimg.com/c867 +||https://ifengimg.com/cfb80 +||https://ifengimg.com/d54c8 +||https://ifengimg.com/md86 +||https://ifengimg.com/sdk +||https://ifengimg.com/sfs-6536a6d5.js +||https://ifengimg.com^*/m/sources +||https://ifengimg.com^*679.js +||https://0577renliu. +||https://23txt.com^$third-party +||https://amu520.com/imgnk/02.gif +||https://beidouxin.com^*html? +||https://biquguan.com/guan/ +||https://book9.net^$third-party +||https://booksky.cc^*html? +||https://dabizi.net/images/pcad.png +||https://duanwenxue.com/functions/ +||https://feizw.com/style/t.js +||https://jx.cn^$third-party +||https://shumilou.co/style/html5.js +||https://soyue.cc^$third-party +||https://xszysc.com^$third-party +||https://zhenben.cc/2000/ +||https://playno1.club/uppic/ +||https://akamaihd.net^*/gsd.html?d= +||https://akamaihd.net^*/sid.html?p= +||https://commondisplay-a.akamaihd.net/cri/*.htm?cat= +||https://hjfile.cn/analytics/site/TrackEvent.js +||https://7moor.com^$third-party +||https://2005net.net^$third-party +||https://3jia5.com^$third-party +||https://5251.net^$third-party +||https://53kf.com^$third-party +||https://54kefu.net^$third-party +||https://5etv.com^$third-party +||https://bobo.com^$third-party +||https://knet.cn^$third-party +||https://kuaishang.cn^$third-party +||https://live800.com^$third-party +||https://looyu.com^$third-party +||https://lxbjs.baidu.com^$third-party +||https://meiqia.com^$third-party +||https://mylikechat.com^$third-party +||https://pop800.com^$third-party +||https://soperson.com^$third-party +||https://tui.cnzz.net^$third-party +||https://zoosnet.net^$third-party +||https://zoossoft.cn^$third-party +||https://025yimei.com/templets/default/js/swt.js +||https://100xuexi.com/CssModel/botad.js +||https://115img.com/static/pc/d_ +||https://126.net/caipiao/js2/dialog.js +||https://126.net/caipiao/js2/index/homePop.js +||https://163.com/special/*/bobo.html +||https://163.com^*/boboData +||https://17173.com/actapi/qiyu/ +||https://17173cdn.com^*/js/task/src/task/live/greenhand/ +||https://21sq.org/js/downloadbanner.js +||https://360doc.com/js/index7/mask_index_yc.js +||https://39.net/PictureLib/A/f76/20160825/org_749281.png +||https://51credit.com/bbs/js/bbs-end-layer.js +||https://51cto.com/iframe/get-station-ads +||https://51liucheng.com/js/dialogLogin.js +||https://51zxw.net/netclass/images/*_top.jpg +||https://6pan.cc/ps/vip.jpg +||https://ali213.net/js/3g/newsdetail.js +||https://alicdn.com/mtb/lib-smartbanner- +||https://aoji.cn/default/looyu/ +||https://asp300.com/2017images/kefu.js +||https://autohome.com.cn/news/$script +||https://autohome.com.cn/vr/*?pvareaid= +||https://autoimg.cn/Space/help/HelpRdTask.js +||https://baidu.com/cms/lemmaconfig/baikeDynamic. +||https://baidu.com/cms/lemmaconfig/navbarAd. +||https://baidu.com^*/app/banner_ +||https://baidu.dj/u/upan/you.html +||https://baike.com/newtop/news.html +||https://bdstatic.com/searchbox/icms/searchbox/img/*.jpg +||https://bdstatic.com/tb/img/icon_coo_operation_ +||https://bendibao.com/weixin_ +||https://betteredu.net/js/pop_tuiguang_ +||https://bilibili.com/html/ads-index.js +||https://bjsxt.com/statics/js/bjsxt/js.js +||https://bjwj2y.com/JS/LsJS.aspx +||https://blog.sina.com.cn/lm/mini/ +||https://bobo.com/special/mod-follow/ +||https://c-ctrip.com/ResUnionOnline/R3/float/floating_normal.min.js +||https://caixin.com/file/content/js/mobile_news_app_banner.js +||https://cctvpic.com/photoAlbum/templet/common/*/game_ +||https://chazidian.com/all/gg_ +||https://china.com/images/milapp +||https://chinaacc.com/lamu/piao +||https://chinacloudsites.cn/api/promotion? +||https://chinanews.com/fileftp/2016/06/2016-06-13/U194P4T47D35171F967DT20160613093733.jpg +||https://chinanews.com/fileftp/2016/08/2016-08-04/U194P4T47D36220F967DT20160804155100.jpg +||https://chinatimes.com/ads/ +||https://cndns.com/incs/js/website_mobile.js +||https://con-article.hjapi.com/v1/txs/ +||https://ctfile.com/img/*ssp +||https://daf-rs.com/imageViewer/wpAd +||https://dahe.cn/indiboy/ads/ +||https://dangbei.net/img/db/downdangbei.gif +||https://dilidili.wang/uploads/allimg/171227/1_1520203421.png +||https://dmzj.com/module/js/float_code.js +||https://dmzj.com/public/js/app_banner.js +||https://docin.com/building/getAdvById. +||https://douyu.com/dygev/*.swf +||https://duba.net/skins/2009/images/db300_250.gif +||https://dwstatic.com^*/newsPopup/ +||https://dwstatic.com^*/sidebar.js +||https://easteat.com/templets/default/images/media-top.png +||https://eastmoney.com/Extends/GetReferralLinkJavaScriptObj +||https://eastmoney.com/js/*Share.js +||https://eastmoney.com/public/ad.tools. +||https://eic.org.cn/api/Popup? +||https://eic.org.cn^*/analytics +||https://enet.com.cn/counter.php +||https://ettoday.net/style/mobileweb2014/js/smartbanner/jquery.smartbanner. +||https://ettoday.net/style/video-ad/ +||https://feng.com^*/index_treasure/ +||https://fengbuy.com/recommend-new. +||https://fh21.com.cn/js/passport/createQuickMenu.js +||https://forex.com.cn/index.php/Invoking/tanchukuang +||https://forex.com.cn/statics/images/ewm.jpg +||https://fydisk.com/images/showvip.gif +||https://goodcome.com.tw/block/ad/rndtopad.php +||https://gtimg.com/finance/js/st/p/news_ad_ +||https://gtimg.com/gamezone/2014index/images/600x75.jpg +||https://gtimg.com/pingjs/ext2020/dc2017/dist/m_tips/tips.js +||https://gz-chengkao.com/js/duo.js +||https://haha.mx/images/banner/ +||https://hanjutv.com/public/js/layer/layer.js +||https://hao123img.com/v4/MB/xU/jy/VY/YX/MBxUjyVYYX.js +||https://heiguang.com/_r/2015/js/hrBottomBar. +||https://hexun.com/2016/pc/618.swf +||https://hexun.com/2017-11-07/191534592.jpg +||https://hexun.com/inc/popbox.aspx +||https://hexun.com^*/appDplus +||https://hjapi.com/v1/pageSoftText? +||https://hjfile.cn/lib/hui/footer/0.1.0/footer.js +||https://hjfile.cn/lib/uzhi/uzt. +||https://hjfile.cn/site/hj-lzs/ +||https://hjfile.cn/site/js/pop_gift_plugin.js +||https://house365.com/js/fixWin.php +||https://howbuy.com/subject/js/jquery.blockUI.js +||https://howbuy.com/subject/js/layer/layer.js +||https://hujiang.com/Web/tx.ashx +||https://iask.sina.com.cn/s-b/mxbg +||https://iciba.com/static/images/download_banner.png +||https://ifeng.com/uploadfiles/main_blog/main_child/v3_block +||https://ifengimg.com/auto/js/*enquiry +||https://ifengimg.com^*/red2018icon. +||https://igo.cn/liuxue/js/slideBar +||https://ithome.com/block/headerline$subdocument +||https://ithome.com/images/productgif/pcmaster.gif +||https://ithome.com/images/v2.1/downsoftmaster.gif +||https://jc001.cn/img/yhj.gif +||https://jc001.cn/indexnew/js/yuyue.js +||https://jia.com/js/common/jia-common.js +||https://jia.com/js/tuku/footBanner_ +||https://jia.com/js/zixun/news.js +||https://jia.com/js/zixun/zixun_ +||https://jianshe99.com/lamu/ +||https://kaoyan.com/__pub/shop_book.html +||https://kaoyan.com/global/js/backtopnew.js +||https://kaoyan.com/school/final_class.html +||https://kaoyan.com/school/js/yz.school.packed.js +||https://kekenet.com/images/*/app +||https://kgimg.com/public/root//images/hardware.jpg +||https://kongzhong.com/style/newindex/js/tad.js +||https://koolearn.com/v2/js/*AD.js +||https://koolearn.com/v2/js/wxewm.js +||https://koolearn.com/www/subject/script/subject_form.js +||https://koolearn.com/zt/poster_js/ +||https://kuakao.com:6053/floatcard? +||https://kuwo.cn/static/swf/xctg.swf +||https://lab.feng.com/images_new/ad- +||https://lofter.com/blogPhotoAd? +||https://lofter.com/mailEntry.do?blogad +||https://longzhu.com/i/api/videos/dailyRecommend? +||https://me360.com/swt/swt.js +||https://meilele.com/js/mll/baiduLabelRecommend. +||https://mianwww.com/wp-content/uploads/2014/05/insigmaedu1.gif +||https://mitbbs.com/img/app +||https://mnks.cn/jk/appAD_ +||https://mtime.cn/library/*/ECommerce/GoodsAndFeatureCtrl.js +||https://naajie.com/float.js +||https://netease.com/f2e/auto/modules/float-ask-price/ +||https://netease.com/fz/interface/frontend/fz.do?pos=tongyong- +||https://netease.com^*bobologo +||https://neuralstemcell.com.cn/img/js.js +||https://ntce.com/images/js/ntce_public.js +||https://offcn.com/index.php?m=dbsource&c=call&a=get&id=75 +||https://offcn.com/offcnewm/ +||https://ol-img.com/channel/tuku/js/tukuPopup.js +||https://pcauto.com.cn/forum/1508/intf7631.js +||https://pcauto.com.cn/forum/autobbs/clubtl/ +||https://pchome.com.tw/js/fancybox/ +||https://pconline.com.cn/intf/hot_ +||https://pinggu.org/api/bbsgg. +||https://pstatp.com/growth/mobile_list/image/bonus_ +||https://pstatp.com^*/bannersdk/ +||https://qhimg.com/static/5dcd236fc857be9c,5b391c33a0748022.js +||https://qidian.com/Images/990x40_ +||https://qudao.com/common/minisite.js +||https://qyer.com/qcross/home/ajax?action=banner +||https://qyerstatic.com/common/models/common/component/footerBanner/ +||https://rjzxw.com/temp/index.files/logo2.gif +||https://rrjc.com/home/seo/ad/ +||https://shejiben.com/common/libs/layer.js +||https://shejiben.com/common/widgets/ui/*zb.js +||https://shopping.udn.com/mall/cus/cat/OutWebAd.do? +||https://showguide.cn/templets/*/qqcenter.js +||https://showguide.cn/templets/*/sg-ad.js +||https://sina.com.cn/1016/getPhones- +||https://sina.com.cn^*/energypop. +||https://sinaimg.cn/finance/*/hqMainTopBanner.js +||https://sinaimg.cn/finance/*/sideQR +||https://sinaimg.cn/finance/app2018/js/appbar.js +||https://sinaimg.cn/finance/hq_finapp_ad/ +||https://sinaimg.cn/finance/wanghong_ +||https://sinaimg.cn/large/a518ed97jw1eu4mxubbe6j209q01e3ys.jpg +||https://sinaimg.cn/mw690/005uyUwYjw1eocc98cbgag30gk02ygm9.gif +||https://sinaimg.cn/tech/*/sidebar.js +||https://sinaimg.cn^*/everyoneReading.js +||https://soft4fun.net/wp-content/themes/arthemia/js/common_footer_min.js +||https://soso.com/wenwen/i/ad/ +||https://soufunimg.com/common_m/m_public/js/wa +||https://tfg2.com/images/upfile/banner/ +||https://tianya.cn/shang/*/index.shtml +||https://tianyaui.com/cms_fragments/res/*/bbs_include_mod.js +||https://tianyaui.com/global/dashang/vip_seat/js/ds_vip_seat.js +||https://to8to.com/assets/wap//common/widgets/appGuide/appGuide. +||https://to8to.com/yezhu/zxbjWidget. +||https://to8to.com^*_bottom_ +||https://toutiao.haotui.com/data/js/0.js +||https://tq.cn/floatcard? +||https://tsdmw.net/img01/MP3/pm_ +||https://tuyiyi.com/tuyiyi/m.js +||https://tv002.com/img/down1_ssp1.gif +||https://upaiyun.com/wp-content/uploads/2016/12/wenzhangyouce +||https://w3cschool.cn/attachments/image/20170919/1505817817281252.jpg +||https://wanwan.sina.com.cn/kb/ +||https://wanwan.sina.com.cn/sinasupersport/back/ +||https://wbiao.cn/common/adapi/ +||https://wbiao.cn/common/newsbannerAds/ +||https://wbiao.co/src2/js/expand/fudong/ +||https://wingontravel.com/Static/headerfooter/Content/js/masterpage. +||https://wumii.cn/ext/relatedItemsWidget +||https://wuxibus.com/Image/title +||https://xcar.com.cn/bbs/adfocus.js +||https://xiaoma.com/kf.php?arg= +||https://xiaoma.com/xiaoma/www/js/article_right +||https://xnimg.cn^*/liveinc/rightlive.js +||https://ye120.com/swt.js +||https://ye120.com/zool.js +||https://youdao.com/market/banner/banner +||https://youdao.com/www/banner.html +||https://yytcdn.com/js/common/widget/pcpusher. +||https://zhiyoo.com/mplus/images/banner.jpg +||https://zol-img.com.cn/star/image/star-banner2.gif +||https://zol.com/index.php?c=ZolShopIndex +||https://zp365.com/newhousered/hb-index-pop- +||https://zuoyebang.cc/static/question/question/resource/QRCode_ +||https://zuoyebang.cc/zyb_4953cbb8a9a2332469592196c056a906.jpg +||https://yuedu.baidu.com/hybrid/wkrec/search? +||https://zhan.com^*/middle_ad_modal.js +||https://dealmoon.com/build/js/www/home/activity-pop/index. +||https://zglww.net/jsnew/pfkf.js +||https://ld0766.com/index.php?m=call&id=10 +||https://sina.com.cn/other/src/app/SFANewVersionPop.js +||https://gtimg.com/finance/js/st/p/cms/ce56e2f3303d17b6.js +||https://gtimg.com/finance/js/st/p/quotpage/maxcard_ +||https://med66.com/lamu/ +||https://51cto.com/edu/blog/*box.js +||https://taisha.org/statics/js/pc2.0/common/form.bottom. +||https://sohu.com/os/text/focus? +||https://autoimg.cn/club/v1Content/images/heycar +||https://china.cn/js/common/daniel_pop/ +||https://chinaacc.com/lamu/*dl- +||https://chinaacc.com/lamu/*piao +||https://zol.com.cn/js/ask/ask.js +||https://xhd.cn/topic/leyu-piaofu/ +||https://zol.com.cn/index.php?c=Api_JumpApi& +||https://jjwxc.net/adsmanage. +||https://sinaimg.cn/tech/zcapp2018/zcapp.js +||https://233.com/js/side.htm +||https://soufunimg.com/homepage/new/*/buttomLayer.js +||https://vuetifyjs.com/notify.json +||https://qhres.com/static/b4f92ac067a4768b/v4/modules/footer.js +||https://daniujiaoyu.com/js/zk +||https://daniuxuexiao.org.cn/js/zk +||https://aoji.cn/static/js/pushadv.js +||https://aoji.cn/static/js/yiliao/ad_common.js +||https://zx123.cn/templates/zx123cs/theme-2015/js/right_xh.js +||https://people.com.cn/rmrb/tplimg/new.js +||https://appledaily.hk/banners/subscription/ +||https://bilibili.com/x/web-interface/archive/special/recommend?aid= +||https://lancdn.com/tmp3/GG_Notice.png +||https://chinaacc.com/upload/*zhongjizhicheng +||https://zhangzishi.cc/cdn-cgi/apps/ +||https://macx.cn/js/blockadblock.js +||https://bestqikan.com/static/js/swt.js +||https://book118.com/Public/book118/js/side-customer/customer.js +||https://51cto.com/js/activity_pop.js +||https://kuakao.com/index.php?m=content&c=index&a=show_ad +||https://qinxue100.com/qinxue/pc/js/add_js.js +||https://hujiang.com/ciku/getDetailSoftText/ +||https://hujiang.com/ciku/getLesson +||https://zbcdn.net/__uvjgyw/slb.default.js +||https://sina.com.cn/other/src/sfc_app_sidebar.js +||https://sinaimg.cn/cj/finance/forex/res/searchCallup.js +||https://tsdm.live/weibo.html +||https://126.net^*analysis +||https://zol.com.cn/pvn/ +||https://laosiji.com/static/js/lib/od_statistics.js +||https://100bt.com/dc?Url +||https://115img.com/static/115tj.js +||https://123cha.com/counter.js +||https://218.30.15.193/phpstat/count/ +||https://28.com/count.js +||https://28.com/countnew.js +||https://39.net/js/wt.js +||https://51.la^$third-party +||https://5173.com/__tra.gif? +||https://51la.net^$third-party +||https://58cdn.com.cn/resource/xxzl/xxfw/ +||https://91160.com/nykj/f=static/v4/common/tj.js +||https://a.tbcdn.cn/s/ac.js +||https://a.tbcdn.cn/s/atp.js +||https://a.tbcdn.cn/s/tb-tracer-min.js +||https://abab.com/pv.js +||https://agrantsem.com/js/ag.js +||https://api.cupid.qiyi.com/etx? +||https://api.cupid.qiyi.com/track2 +||https://apple.www.letv.com/env/? +||https://ark.letv.com/t? +||https://atpanel.com^$image +||https://autohome.com.cn/risk_fp_log? +||https://autoimg.cn/bi/mda/ahas_body. +||https://baidu.com/4.gif? +||https://baidu.com/smalllog/ +||https://baidu.com^*/w.gif? +||https://bendibao.com/js/count.js +||https://bitauto.com/bglog.gif? +||https://bshare.cn/bshare_view?Callback= +||https://bt.ktxp.com/iframe/statistics.js +||https://btdb.in/beacon.html +||https://btime.com/api/weblog? +||https://bytecdn.cn/ta/resource/v0/analytics.js +||https://ca.cbsi.com.cn/rpv? +||https://cbsi.com.cn/js/mlt.js +||https://ccoo.cn/mystat.asp +||https://cheshi-img.com/js/pv.min.js +||https://chinatimes.com/analytics/ +||https://chouti.com/js/tingyun-rum.js +||https://cig.com.cn^$third-party +||https://cjyun.org/assets/js/analytics.js +||https://cnfol.com/Count.html +||https://cnmo.com/pv.js +||https://damai.cn/phpstat/ +||https://dcs.conac.cn/js/ +||https://dfcfw.com/libs/js/counter.js +||https://dianping.com/hippo.gif? +||https://doc88.com^*/count.js +||https://duba.com/static/v2/js/min.pop.js +||https://ea3w.com/pv.js +||https://eastmoney.com/analysis/ +||https://fjsen.com:81/mysql/count/ +||https://frame.enet.com.cn/a.php +||https://ftchinese.com/index.php/jsapi/analytics +||https://ftchinese.com/index.php/jsapi/ga +||https://ftchinese.com/js/log.js +||https://ftchinese.com/log/analytics.js +||https://fx678.com/htcount/count.js +||https://gridsumdissector.cn/gs.gif? +||https://guahao.cn/blank.gif? +||https://hao123img.com/res/js/track.js +||https://hc360.com/js/module/common/logrecordservice. +||https://hd.sohu.com.cn^$object-subrequest +||https://hdslb.com/js/bfd.js +||https://hexun.com/js/att_count.js +||https://hiido.com^$third-party +||https://hm.baidu.com/mkt.js +||https://hupu.com/_dace.gif? +||https://house365.com/js/analyze.js +||https://iciba.com/web/static/scripts/kds2_record.js +||https://icon.zol-img.com.cn/mainpage/js/click.js +||https://ifengimg.com^*/sta_collection +||https://img.kuai.xunlei.com/js/statistics.js +||https://ipinyou.com^$third-party +||https://it168.com/pv.js +||https://itc.cn/cache/lib/v2/odvmonitor/ +||https://itc.cn/hdpv.js +||https://itc.cn/pv/ +||https://itc.cn^*/tracker.js +||https://itsmore.cn^$third-party +||https://js.passport.qihucdn.com/11.0.1.js +||https://kaipuyun.cn/count/ +||https://lotour.net/analytics/statsv2.js +||https://mafengwo.cn/uva/i.gif? +||https://msn.ynet.com/c/tj_comm.js +||https://news.cn/pc-log? +||https://newspage.xilu.com/model/visitlog.js +||https://nmgnews.com.cn/sys/online_calc.js +||https://optaim.com^$third-party +||https://p2p.v.yyclouds.com/crossdomain.xml +||https://pconline.com.cn/count.php? +||https://pcpop.com/pv/pv.js +||https://push.zhanzhang.baidu.com/push.js +||https://qhimg.com/clk.gif? +||https://qhimg.com/js/iwt.js +||https://qunar.com/js/ga.min.js +||https://qunar.com/render/ga.jsp? +||https://qunar.com/render/googlesem.jsp +||https://qyer.com^*/base_beacon_ga.js +||https://qzwb.com/phpstat/ +||https://runsky.com/phpstat/ +||https://s-msn.com/portal/js/vendor/manto/ +||https://sogou.com/cl.gif? +||https://sohu.com/mail/pv/ +||https://stat.2u.com.cn/ol_2u.js +||https://static.zongheng.com^*/ad_click.js +||https://static.zongheng.com^*/adClickStat.js +||https://static.zongheng.com^*/logger.min.js +||https://suning.cn/javascript/sn_da/sa.js +||https://sxrb.com/front/stat/ +||https://ta.trs.cn^$third-party +||https://tingyun.com^$third-party +||https://trends.com.cn/k.js +||https://tw.rd.yahoo.com^$image +||https://uedas. +||https://uuu9.com/photolog.html +||https://wanmei.com/public/js/stat.js +||https://wlxww.com/html/analytics/ +||https://xgo.com.cn/pv.js +||https://xs8.cn/qreport? +||https://xunlei.com/api/stat/rt/js? +||https://yaolan.com/ylk.mini.js +||https://ynet.com/c/js/manto.min.js +||https://youdao.com/ctlog? +||https://youdao.com/rlog.php +||https://youdao.com/tl? +||https://zdnet.com.cn/js/pv.js +||https://zdw.w8.com.cn/p.ht? +||https://zhulang.com/zlpv.php +||https://zol.com.cn/cgimp/zc.js +||https://cnzz.com^$third-party +||https://duba.com/proxy/tj/ +||https://google-analytics.com/analytics.js +||https://hm.baidu.com^$third-party +||https://sinajs.cn/open/analytics/ +||https://wrating.com^$third-party +||http://ladsblue.com^ +||http://last2.cn^$third-party +||http://0024aaaa.com^ +||http://0082tv.net^$third-party +||http://00880808.com^ +||http://012.tw^$third-party +||http://0133hao.net^ +||http://02123s.com^ +||http://022aifang.com^ +||http://023hysj.com^ +||http://025suyu.com^ +||http://0313413.com^ +||http://033.com^$third-party +||http://0451106.com^ +||http://04zl.cn^ +||http://0516bm.com^ +||http://0531kt.com^ +||http://0571hy.com^ +||http://0571yy.com^ +||http://0591101.com^$third-party +||http://0592weixin.com^ +||http://0756j.com^$third-party +||http://0756sjlm.com.cn^ +||http://0796gou.com^ +||http://080644.com^ +||http://0937jyg.com^ +||http://0nin.cn^ +||http://0xiaoshuo.com^$third-party +||http://0xxd.com^ +||http://1000dy.com^ +||http://100cpc.com^$third-party +||http://100ea.com^ +||http://100fenlm.com^ +||http://103.249.111.179^$third-party +||http://103.249.254.113^ +||http://104.195.62.12^ +||http://104.197.140.120^ +||http://104.198.198.188^ +||http://104.233.203.164^ +||http://106.187.95.251^ +||http://107.187.255.178^ +||http://110160.com^$third-party +||http://111.175.219.*.js +||http://111.73.45.147^ +||http://111111qb.com^ +||http://112.74.95.46^ +||http://1133.cc^$third-party +||http://11370090.net^ +||http://114.95.102.77^ +||http://114la.com^$third-party,domain=~ylmf.com +||http://114lm.com^$third-party +||http://114yeah.com^$third-party +||http://115.238.246.181^ +||http://115.29.148.61^$third-party +||http://116.55.227.242^ +||http://116b.com^$third-party +||http://116zhuce.com^ +||http://117.25.133.209^ +||http://118.144.88.216^ +||http://118114.cn^$third-party +||http://1188.com^$third-party +||http://119.29.207.87^ +||http://119.4.249.166^ +||http://12086.net^ +||http://121.40.25.88^ +||http://122.227.254.195^ +||http://12291.com^$third-party +||http://123.59.150.56^ +||http://12306media.com^ +||http://12365chia.com^ +||http://123hala.com^ +||http://124.232.160.178^ +||http://12l22.net^$third-party +||http://134.73.54.252^ +||http://138138138.top^ +||http://138lm.com^ +||http://139.159.32.82^ +||http://139.196.166.21^ +||http://139site.com^$third-party +||http://1503.net/code/ +||http://1515788.net^ +||http://1680go.com^ +||http://16k6.com^ +||http://170yy.com^ +||http://175bar.com^ +||http://176um.com^ +||http://178bx.cn^ +||http://17tuozhai.com^ +||http://17un.co^ +||http://17zhaole.com^$third-party +||http://180.76.171.28^ +||http://181lm.net^ +||http://182.92.81.104^ +||http://189.cn^*/push/$third-party +||http://189.gd^*.html$third-party +||http://18tzx.com^ +||http://194.36.101.178^ +||http://1999sg.com^ +||http://1d1a.com^ +||http://1d1px.net^ +||http://1i580.com^ +||http://1kmb.cn^ +||http://1kzh.com^ +||http://1l1.cc^ +||http://1lib.cn^ +||http://1lo0.net^$third-party +||http://1qwe3r.com^$third-party +||http://1uandun.com^ +||http://1v7.cn^$third-party +||http://1x3x.com^$third-party +||http://201071.com^ +||http://2012ui.com^ +||http://210.65.10.32^$third-party +||http://211.103.159.32^ +||http://211.149.225.23^ +||http://211.167.105.131^ +||http://2155ec.com^$third-party +||http://217wo.com^$third-party +||http://218.25.246.118^ +||http://218.26.217.*.html +||http://219.234.83.60^ +||http://220.115.251.25^ +||http://221.204.213.222^ +||http://222im.com^ +||http://22lm.cc^ +||http://23.244.43.212^ +||http://23.89.50.180^ +||http://23456dj.com^ +||http://235123.net^$third-party +||http://23kmm.com^$third-party +||http://2529.com^$third-party +||http://258pcf.com^ +||http://268mob.cn^ +||http://272xb.com^ +||http://280dp.com^ +||http://28487.net^ +||http://2898.com^$third-party +||http://28acglz.com^ +||http://293870.com^ +||http://2d-c.cn^ +||http://2f.com^$third-party +||http://2m2n.com^ +||http://31365y.com^ +||http://321tui.cn^$third-party +||http://321tui.com^$third-party +||http://32414.com^$third-party +||http://3324.cn^$third-party +||http://333dm.com^ +||http://338336.com^ +||http://3399.com/act/$third-party +||http://33shangyou.com^ +||http://3600ys.com^$third-party +||http://360366.net^$third-party +||http://360baidus.com^ +||http://360doo.com^$third-party +||http://361315.cc^ +||http://36500.com^$third-party +||http://36500.net^$third-party +||http://365bibi.com^ +||http://365safego.com^ +||http://366safego.com^ +||http://36pn.com^ +||http://376zf.com^ +||http://3798.com^$third-party +||http://37cs.com^$third-party +||http://37pk49.com^$third-party +||http://3808010.com/code$third-party +||http://3839168.com^$third-party +||http://38ra.com^$third-party +||http://3975lm.com^$third-party +||http://39xc.net^ +||http://3alian.net^$third-party +||http://3amall.cn^ +||http://3dwwwgame.com^$third-party +||http://3g.990.net^ +||http://3gmtr.com^ +||http://3htai.com^ +||http://3p-link.com^$third-party +||http://3qmh.com^ +||http://3qsys.com^ +||http://3vlm.com^$third-party +||http://3xx.vip^ +||http://3ygww.com^ +||http://4006825178.com^ +||http://44pv.com^$third-party +||http://45.34.240.72^ +||http://456juhd.com^ +||http://46cq.cn^ +||http://47.90.50.177^ +||http://4936.cn^$third-party +||http://49ko.com^$third-party +||http://4ggww.com^ +||http://4kt2.com^$subdocument +||http://50bang.org^$third-party +||http://50zera.com^ +||http://5125129.com^ +||http://5151gj.com^ +||http://517m.cn^ +||http://517pass.com^ +||http://5188yy.com^$third-party +||http://51ads.com^$third-party +||http://51fuliwang.cn^ +||http://51gugu.com^$third-party +||http://51jumintong.com^ +||http://51junpin.net^$third-party +||http://51sxzz.com^ +||http://51weidashi.com^ +||http://51xumei.com^ +||http://5207470.com^ +||http://525cm.com^$third-party +||http://5269120.com^ +||http://526d.com^$third-party +||http://52kmh.com^$third-party +||http://52kmk.com^ +||http://52lover.info^$third-party +||http://52yugan.com^ +||http://52zfl.com^ +||http://5399.com^$third-party +||http://550tg.com^ +||http://5535aibo.com^ +||http://55803.net^$third-party +||http://565882.com^$third-party +||http://57union.com^ +||http://58.215.179.159^ +||http://592man.com^ +||http://59519.com^$third-party +||http://59gt.cn^ +||http://59hi.com^$third-party +||http://5imoney.com^ +||http://5jcom.com.cn^ +||http://5leji.com^$third-party +||http://5mnh.com^$third-party +||http://5pub.com^ +||http://5rxk.cn^ +||http://60.190.139.164^ +||http://61.152.223.15^ +||http://61.160.200. +||http://61.174.50.211^ +||http://626uc.com^ +||http://63kc.com^$third-party +||http://643226.com^ +||http://652748.com^ +||http://6604.org^$third-party +||http://6612151.cn^ +||http://6612152.cn^ +||http://664gp.com^ +||http://6666lm.com^ +||http://668559.com^$third-party +||http://66san.com^ +||http://6728812.com^ +||http://6789.net^$third-party +||http://67lm.com^$third-party +||http://685wo.com^$script,third-party +||http://68665565.com^ +||http://69duk.com^ +||http://6dad.com^$third-party +||http://6dvip.com^ +||http://6huu.com^ +||http://6ped2nd3yp.com^ +||http://6travel.com^$third-party +||http://700ok.net^ +||http://70e.com^$third-party +||http://70lm.com^ +||http://70yst.cn^ +||http://710070.com^$third-party +||http://711kk.com^ +||http://71sem.com^ +||http://7540.com^$third-party +||http://766ba.net^ +||http://7676.com^$third-party +||http://77417.cn^ +||http://7794.com^$third-party +||http://77power.com^ +||http://77zhuan.com^$third-party +||http://788xj.com^$third-party +||http://7891655.cn^ +||http://7895983.cn^ +||http://7bwan.com^$third-party +||http://7clink.com^$third-party +||http://7dah8.com^ +||http://7dlm.cn^$third-party +||http://7gg.cc^ +||http://7jiajiao.com^ +||http://7o2o.com^$third-party +||http://7wen.cn^ +||http://7xi9g1.com1.z0.glb.clouddn.com^ +||http://7xz3.com^ +||http://8080i.com^$third-party +||http://80sjw.com^ +||http://810236.com^$third-party +||http://810251.com^ +||http://813690.top^ +||http://81c.cn^ +||http://825145.com^ +||http://827649.com^ +||http://8368661.com^ +||http://8521448.com^ +||http://857yx.com^$third-party +||http://85tgw.com^ +||http://85un.com^$third-party +||http://860010.com^ +||http://8800271.com.cn^ +||http://88818122.cn^ +||http://8881919.cc^ +||http://88cpc.com^$third-party +||http://88rpg.net^ +||http://88shu.cn^$third-party +||http://88ysg.com^$third-party +||http://8910ad.com^$third-party +||http://892155.com^ +||http://89h8.com^ +||http://8ao8ao.com^ +||http://8hdp.cn^ +||http://8le8le.com^$third-party +||http://8mfty.com^ +||http://904ad.com^ +||http://911.cc^$third-party +||http://913h6.cn^$third-party +||http://9158918.com^$third-party +||http://91lmgg.com^$third-party +||http://91xry.com^ +||http://91ysa.com^ +||http://91zgm.com^ +||http://9377aa.com^ +||http://9377bh.com^ +||http://9377co.com^ +||http://9377hi.com^ +||http://9377if.com^ +||http://9377ku.com^ +||http://9377or.com^ +||http://9377os.com^ +||http://93manhua.com^ +||http://941adu.com^$third-party +||http://94lm.com^ +||http://94nw.com^ +||http://95105012.com^ +||http://9519.net^$third-party +||http://95558000.com^ +||http://9639927.com^$third-party +||http://96518.org^$third-party +||http://9665yx.com^$third-party +||http://9669.com^$script,third-party +||http://96mob.com^ +||http://9718.com^$third-party +||http://980th.com^$third-party +||http://9868.online^ +||http://9898c.com^ +||http://991pao.com^ +||http://99909988.com^ +||http://99lolo.com^ +||http://99pps.com^ +||http://99tuan.com.cn^ +||http://9ads.net^$third-party +||http://9dtiny.cn^ +||http://9ead.com^$third-party +||http://9kff.com^ +||http://9nwg9sib9e.com^ +||http://9w1an.com^$third-party +||http://9w39.com^$third-party +||http://9wotuan.com^ +||http://9xiazaiqi.com^ +||http://9xu.com^$third-party +||http://a.youdao.com^ +||http://a0b11.com^ +||http://a0b22.com^ +||http://a0b33.com^ +||http://a0c66.com^ +||http://a0c77.com^ +||http://a3p4.com^$third-party +||http://a3p4.net^ +||http://a7shun.com^$third-party +||http://a907907.com^ +||http://a9377j.com^ +||http://abctcqq.top^ +||http://acasys88.cn^ +||http://acgbase.com^$third-party +||http://achicih.gitee.io^$third-party +||http://acs86.com^$third-party +||http://acwgf.com^ +||http://ad-plus.cn^$third-party +||http://ad-survey.com^$third-party +||http://ad.52av.tv^ +||http://ad000000.com^ +||http://ad8.cc^$third-party +||http://ad9377.com^ +||http://adacgov.cn^ +||http://adbot.tw^ +||http://adbxb.com^$third-party +||http://adchina.cc^$third-party +||http://adconfer.com^$third-party +||http://adfeifan.com^$third-party +||http://adget.cn^ +||http://adhouyi.com^$third-party +||http://adkongjian.com^$third-party +||http://adm-cnzz.net^ +||http://adm.cnzz.net^$third-party +||http://admaji.com^$third-party +||http://admartzone.com^$third-party +||http://admin6.com^$third-party +||http://adnex.tech^ +||http://adnow.cc^$third-party +||http://adomv.com^ +||http://adondemand.com^$third-party +||http://adpro.cn^$third-party +||http://adpush.cn^$third-party +||http://adreal.cn^ +||http://adreep.cn^$third-party +||http://adrs.sdo.com^ +||http://ads.uc.cn^ +||http://ads80.com^$third-party +||http://adsage.com^$third-party +||http://adsbang.top^ +||http://adsbro.com^$third-party +||http://adsinstant.com^ +||http://adt100.com^$third-party +||http://adunioncode.com^$third-party +||http://adunite.com^$third-party +||http://adver.com.tw^$third-party +||http://adxiaozi.com^$third-party +||http://adxxx.com^$third-party +||http://adytx.com^ +||http://adyun.com^$third-party +||http://affiliate.rakuten.co.jp^$third-party +||http://afjlb.com^ +||http://agrantsem.com^$third-party +||http://agtsjb.com^ +||http://aguo.com^$third-party +||http://agxclick.com^$third-party +||http://agzxj8990.com^ +||http://ahhuazhen.com^ +||http://ahlxxx.com^ +||http://ahszgog.com^ +||http://ahyau.com^ +||http://ahyuns.com^ +||http://aiclicash.com^$third-party +||http://aidaicn.com^$third-party +||http://aifei.info^$third-party +||http://aigou023.com^ +||http://aijielang.cn^ +||http://aimato.com^$third-party +||http://aishang.bid^ +||http://aishangcan.com^ +||http://aishiguolong.com^ +||http://ajaxcdn.org^ +||http://ajhdf.com^$third-party +||http://ajuhd.com^ +||http://akrwi.cn^ +||http://alicmayuns.com^ +||http://alifixed.cn^ +||http://alimama.alicdn.com^ +||http://aliqqjd.cn^ +||http://alisinak.com^ +||http://alitianxia168.com^ +||http://aliyuncss.com^ +||http://aliyunxin.com^ +||http://alllget.com^$third-party +||http://allxin.com^ +||http://allyes.$third-party +||http://amazingmagics.com^ +||http://amensh.cn^ +||http://anastasiaana.com^ +||http://andmejs.com^$third-party +||http://anioscp.com^ +||http://anquanzhuomian.cn^ +||http://anreson.net^ +||http://anzhuocpm.com^ +||http://aomeng.net^$third-party +||http://aoparking.com^$third-party +||http://apkdo.com^ +||http://aqgyju.cn^ +||http://arealx.com^ +||http://arrows-hitech.com^ +||http://artedu.pw^ +||http://as75.info^ +||http://assigned.cn^ +||http://aswlx.cn^ +||http://at918.com^$third-party +||http://at98.com^ +||http://atanx.alicdn.com^ +||http://av8d.net^$third-party +||http://awifi.cn^$third-party +||http://awkjs.com^ +||http://axhxa.com^ +||http://axiba66.com^ +||http://b5h7.com^$third-party +||http://b7nkd.cn^ +||http://b9377h.com^ +||http://b99u.top^ +||http://baiapk.com^ +||http://baidu360haosou.info^$third-party +||http://baiduace.com^ +||http://baidujavascript.com^ +||http://baidulao.com^ +||http://baiduyoukualiyun.com^ +||http://baiduyubaidu.com^ +||http://baisuijk.com^ +||http://baitaiad.com^$third-party +||http://baizhu.cc^$third-party +||http://balmoralmkt.com^$third-party +||http://bang5mai.com^$third-party +||http://bangbang521.com^ +||http://baodaozhan.cn^$third-party +||http://baolic.com^ +||http://bazhigu.com^ +||http://bccyyc.com^ +||http://bdpuaw.com^ +||http://bdtongfei.cn^ +||http://bdyxzx.com^ +||http://bebelait.com^ +||http://bedhdig.cn^ +||http://beeho.site^ +||http://behe.com^$third-party +||http://beijinglvyou.net.cn^ +||http://bejzz.top^ +||http://bench-life.me^ +||http://bensezhiye.com^ +||http://biandaosheng.com^ +||http://bianxianmao.com^$third-party +||http://biddingx.com^$third-party +||http://bigbos.top^ +||http://billionfocus.com^ +||http://bingyinq.com^ +||http://biochempop.com^ +||http://biquge22.com^$third-party +||http://birdmedia.com^$third-party +||http://bivitr.com^ +||http://biyibia.com^ +||http://bjedpt.com^ +||http://bjgtsh.com^ +||http://bjtrld.com^ +||http://bjxiaohua.com^$third-party +||http://bjyikao.org^ +||http://bkyhq.cn^ +||http://bla01.com^ +||http://bllzgqbyp^ +||http://blogad.com.tw^$third-party +||http://blogdaka.xyz^ +||http://bloggerads.net^$third-party +||http://bmw100.cn^$third-party +||http://bnuni.com^$third-party +||http://books.com.tw/exep/ap/$third-party +||http://borsendental.com^ +||http://bosatria.cn^ +||http://bosiwangzi.cn^ +||http://boyueguoji.com^ +||http://bp776.com^ +||http://breezily168.com^ +||http://bs777.net^$third-party +||http://bskchina.cn/js/ +||http://bsriedu.cn^ +||http://btmp4.net^ +||http://bttyue.com^$subdocument +||http://btwan5.com^ +||http://btyou.com^$third-party +||http://buzzads.com^$third-party +||http://bv8888.com^ +||http://bxgmb.com^ +||http://bxjpl.cn^ +||http://bxjt518.com^ +||http://bydonline.com^ +||http://bypbwm.cn^ +||http://c.91wan.com^$third-party +||http://cachesit.com^ +||http://caicool.co^ +||http://caiyifz.com^$third-party +||http://caliyuna.cn^ +||http://cangnews.com^ +||http://caob5.info^ +||http://caolvch.com^ +||http://cardniu.com^$third-party +||http://carpenterrprp.com^ +||http://cayanfang.com^ +||http://cb.baidu.com^ +||http://cbjs.baidu.com^ +||http://cc599.com^ +||http://ccbaihehq.com^ +||http://cccccd.com^ +||http://cctyly.com^ +||http://cd-best.cn^ +||http://cdlinli.com^ +||http://cdnjsp.wang^ +||http://cdnny.com^ +||http://cdyqc.com^ +||http://cfboo.com^ +||http://cferw.com^ +||http://cfqpxzx.com^ +||http://cg2017.com^ +||http://cgskqg.com^ +||http://chadegongxiao.com^ +||http://championmachinery-cn.com^ +||http://chanet.com.cn^$third-party +||http://chaoliangyun.com^ +||http://chapm.com^$third-party +||http://charlesfc.com^ +||http://che0.com^$third-party +||http://chebse.com^ +||http://chengruide.com^$third-party +||http://chengzhao95511.com^ +||http://chenyanjiao.cn^ +||http://china-pengdu.cn^ +||http://chinaheh.com^ +||http://chinauma.net^$third-party +||http://chinaweichu.net^ +||http://chinesean.com^$third-party +||http://chiuhua.com.cn^ +||http://chmae.com^ +||http://chnhty.com^ +||http://chongxiaota.top^ +||http://christinehris.com^ +||http://chromc.com^ +||http://chucity.com^ +||http://chuhanweb.com^ +||http://chushoushijian.cn^ +||http://chuzushijian.cn^ +||http://ciajingman.com^ +||http://cifenqi.com^$third-party +||http://cj-cy.com^ +||http://ckseeknew.com^ +||http://claz.com.cn^ +||http://cloudad.asia^$third-party +||http://cmaxisolation.com^ +||http://cmslayue.com^ +||http://cnbole.net^ +||http://cncy8.com^ +||http://cnfanglei.com^ +||http://cnhbxx.com^ +||http://cnkok.com^ +||http://cnpinzhuo.com^ +||http://cnscdj.com^ +||http://cnsjx.net^ +||http://cnxad.com^$third-party +||http://cnxad.net^ +||http://cnzz.com.so^ +||http://cnzzlink.com^ +||http://code222.com^ +||http://code668.com^ +||http://coinadv.com^$third-party +||http://compass-fit.jp^ +||http://coolnay.com^$third-party +||http://cooolyi.cn^ +||http://coostack.com^$third-party +||http://corocksi.com^ +||http://cosoyoo.com^ +||http://couqm.com.cn^ +||http://cpc.cc^$third-party +||http://cpcv.cc^ +||http://cpm360.com^$third-party +||http://cpms.cc^ +||http://cpro.baidu.com^ +||http://cpro.baidustatic.com^ +||http://cpshwl.cn^ +||http://cpv6.com^ +||http://cpva.cc^ +||http://cqfangduan.com^ +||http://cqftonline.com^ +||http://cqhnm.com^ +||http://cqjjlsy.com^ +||http://cqyhd.com^ +||http://cr-nielsen.com^$third-party +||http://crazymike.tw^$third-party +||http://crdrjs.info^ +||http://cre99.com^ +||http://cs.37see.com^$third-party +||http://csad.cc^$third-party +||http://csbew.com^$third-party +||http://csbthyhh.com^ +||http://csgtfruit.com^ +||http://csqiulong.com^ +||http://cssdiv.club^ +||http://cstoa.com^ +||http://ctrhfd.top^ +||http://ctsywy.com^ +||http://cxd-ailegou.com^ +||http://cxfzw.cn^ +||http://cxxtv.com^$third-party +||http://cyacc.com^ +||http://cylinderlongcheng.com^ +||http://cytcm.com^ +||http://czdqhyo1.net^ +||http://czjiuding.cn^ +||http://czpush.com^ +||http://czpwm.com^ +||http://cztanchao.com^ +||http://d15cjcet1djbmv.cloudfront.net^ +||http://d1ad.com^$third-party +||http://d8360.com^$third-party +||http://dadjia.com^ +||http://dahanedu.com^ +||http://daima123.cc^ +||http://dalianhengtai.com^ +||http://dami66.cn^ +||http://danangmo.cn^ +||http://dandan11.top^ +||http://dandan13.top^ +||http://dandan15.top^ +||http://danpinwu.com^ +||http://dante2007.com^ +||http://dashaowu.com^ +||http://dashet.com^ +||http://datafastguru.info^ +||http://dawwx.com^ +||http://dazhonghua.cn^ +||http://dbncp.com^ +||http://dbojetp.cn^ +||http://dcxmy.com^$third-party +||http://dddddd.net^$third-party +||http://ddhtek.com^ +||http://ddomm.com^ +||http://detuns.com^ +||http://df3n43m.com^ +||http://df77.com^ +||http://df9377.com^$third-party +||http://dgpzx.com^ +||http://dhlmy.com^ +||http://dhxyzx.cn^ +||http://dian500.com^$third-party +||http://dian5000.com^$third-party +||http://dianwenwang.com^ +||http://dianxin.com^$third-party +||http://diaojiaoji168.com^ +||http://dilcn.net^ +||http://dingge.cc^$third-party +||http://dingon.com.cn^ +||http://dingyuanyao.cn^ +||http://displink.com^$third-party +||http://diuling.com^ +||http://djy518.com^ +||http://dkqapp.cn^ +||http://dlads.cn^$third-party +||http://dleke.com^ +||http://dlhygj.com^ +||http://dlkjgjmy.com^ +||http://dlpifu.com^ +||http://dlrijiaele.com^ +||http://dlzjdesign.com^ +||http://dm1080p.com^$third-party +||http://dmtrck.com^$third-party +||http://dnskuu.com^ +||http://dnvus.com^ +||http://doniv.net^$third-party +||http://door2new.net^ +||http://dotmore.com.tw^$third-party,domain=~savebar.com.tw +||http://dou777.com^ +||http://doubleadv.com^$third-party +||http://doudao.cn^ +||http://dpc6.cn^ +||http://dpjszs.com^ +||http://dqsft.com^ +||http://dragoncent.com^ +||http://dreamfull.cn^ +||http://drjgjngf.com^ +||http://drlsf.com^ +||http://drmcmm.baidu.com^ +||http://drmfslx.cn^ +||http://drwzn.com^$third-party +||http://drxrc.com^ +||http://dshrx.com^ +||http://dugbvb.com^ +||http://duiwai.baidu.com^ +||http://duobaoqj.com^ +||http://duomai.com^$third-party +||http://duoqumanhua.com^ +||http://dushimj.com^$third-party +||http://duusuu.com^ +||http://duyihu.net^ +||http://dvr8.com^ +||http://dw998.com^ +||http://dx1200.com^ +||http://dxpmedia.com^$third-party +||http://dxssiyi.com^ +||http://dy886.cn^ +||http://dyhs52.com^$third-party +||http://dzjzg.com^ +||http://dzsstye.com^$third-party +||http://e-demx.com^ +||http://e7001.com^ +||http://e7002.com^ +||http://e7009.com^ +||http://e701.net^ +||http://e70123.com^ +||http://e7015.com^ +||http://e704.net^ +||http://e705.net^ +||http://e706.net^ +||http://e708.net^ +||http://e719.net^ +||http://ea3721.com^$third-party +||http://easou.com^$third-party +||http://ecuc123.net^ +||http://eddjf.com^ +||http://edncui.net^ +||http://edo5.com^ +||http://eduad.baidu.com^ +||http://eduzzjy.com^ +||http://ee4kdushuba.com^$third-party +||http://eeee500.com^ +||http://eeyy.com^$third-party +||http://egjq.com.cn^ +||http://egooad.com^$third-party +||http://eiv.baidu.com^ +||http://ejin56.com^$third-party +||http://ekeide.com^ +||http://elsad.tw^$third-party +||http://emarbox.com^$third-party +||http://enohb.com^ +||http://erdsyzb.com^ +||http://erqimall.net^ +||http://evefashion.cn^ +||http://expo123.net^ +||http://eyd77s.com^ +||http://eyouv.cn^$third-party +||http://ez33.com^$third-party +||http://ez33.org.cn^ +||http://ezucods.cn^ +||http://f1190.com^ +||http://f11w.com^$third-party +||http://f1zd.com^$third-party +||http://f2zd.com^ +||http://f6ce.com^ +||http://f70123.com^ +||http://f8272.com^$third-party +||http://facebookma.cn^ +||http://fadama.com^$third-party +||http://fage1.club^$third-party +||http://family-joy.com^ +||http://fanli.in^ +||http://farm-cn.plista.com^ +||http://fastable.com^ +||http://fccxgjg.com^ +||http://fcsass.org.cn^ +||http://fd7c.com^ +||http://fecjf.cn^ +||http://feisia1.cn^ +||http://feitian001.com^$third-party +||http://fenggejiaju.com^ +||http://fengxiangstore.com^$third-party +||http://fengyelin.net^ +||http://fexiaen.com^ +||http://ff112244.com^ +||http://ffhtek.com^ +||http://findqc.com^$third-party +||http://fjkst.com^ +||http://fjmeyer.com^ +||http://flashwing.net^$third-party +||http://flowcodeapp.com^ +||http://fmad.cc^$third-party +||http://fnkjj.com^ +||http://focusprolight.com^ +||http://food5.net^$third-party +||http://foreveryoung.gz01.bdysite.com^ +||http://forrerri.com^ +||http://founseezb.cn^ +||http://fqtra.com^ +||http://fst360.com^ +||http://fsyzcs.com^ +||http://ft76531.com^ +||http://fthcz.com^ +||http://fu68.com^ +||http://fujianryt.com^ +||http://fuxunb.com^ +||http://fv99.com^ +||http://fwt0.com^ +||http://fxmacd.com^ +||http://fxtducb.cn^ +||http://fxxgw.com^$third-party +||http://fydgold132.com^ +||http://fytza.cn^ +||http://fzglqyy.com^ +||http://g1c5.com^ +||http://g1f5.com^ +||http://g35.cc^$third-party +||http://g3user.com^$third-party +||http://game3737.com^$third-party +||http://gamecps.com^$third-party +||http://gameone.com^$third-party +||http://gangtiebang.net^ +||http://gansha.co^$third-party +||http://gaoxiaocup.com^ +||http://garacy.cn^ +||http://gasxf.com^ +||http://gclick.cn^$third-party +||http://gd.189.cn^*.htm?SP=$third-party +||http://gdbly.com^ +||http://gdgy56.com^ +||http://gdskywings.com^ +||http://gdxxb.com^$third-party +||http://ge95.com^ +||http://geili.co^ +||http://geiyujieda.com^ +||http://genieesspv.jp^$third-party +||http://geotmt.com^$third-party +||http://geryi.com^ +||http://gf108.com^ +||http://gf1352.com^ +||http://gf1353.com^$third-party +||http://gfd80.com^ +||http://gg0376.com^ +||http://gg570.com^ +||http://ggdoubi.com^ +||http://ggdydz.com^ +||http://ggmm777.com^$third-party +||http://ggweb.net^ +||http://ggxt.net^$third-party +||http://ghnmg.top^ +||http://ghosttty.cn^ +||http://gjghy.com^ +||http://glasszz.com^ +||http://gm682.com^ +||http://gohappy.com.tw^$third-party +||http://goodgz.cn^ +||http://googleadsl.com^$third-party +||http://googlealiyun.cn^ +||http://googleapi.club^ +||http://googletakes.com^ +||http://gotonav.com^$third-party +||http://gotoniubiurl.pw^ +||http://gouzhibao.cn^ +||http://govgift.com^ +||http://gowin01.com^ +||http://gowinxp.com^$third-party +||http://gqswg.com^ +||http://greenbetterkids.com^ +||http://gs307.com^$third-party +||http://gso0.com^ +||http://gsycdb.com^ +||http://gszbba.cn^ +||http://gtmucs.cn^ +||http://guangzizai.com^ +||http://guduopu.com^ +||http://gugeys.com^$third-party +||http://gugulonger.cn^ +||http://guidashu.com^ +||http://guoshennet.com^ +||http://gw069.com^ +||http://gwylm.com^ +||http://gxejgs.com^ +||http://gxgzyny.com^ +||http://gydag.com^ +||http://gygdmy.com^ +||http://gzbywl.com^$third-party +||http://gzdhzb.com^ +||http://gze3.cn^ +||http://gzktpf.com^ +||http://gzmjnx.cn^ +||http://gzqudou.com^ +||http://h0o33.cn^ +||http://h501.cn^$third-party +||http://h9377c.com^ +||http://hailuoxiang.com^$third-party +||http://haitejs.com^ +||http://haiwengji.net^ +||http://haiyunimg.com^ +||http://haiyunpush.com^ +||http://haiyunx.com^$third-party +||http://haizirv.cn^ +||http://hanju18.net^ +||http://hanqidq.com^ +||http://hao123rt.com^ +||http://hao123union.baidu.com^$third-party +||http://hao222.com^$third-party +||http://hao61.net^ +||http://haoba.info^$third-party +||http://haohaowan8.com^ +||http://haolew.com^ +||http://haomm.com^$third-party +||http://haoqq.me^$third-party +||http://haosf.com^$third-party +||http://haoyiwang.net^$third-party +||http://hascosafety.com^ +||http://hauchi.com.tw^$third-party +||http://hbalx.cn^ +||http://hbguohua.com^ +||http://hbhtbn.com^ +||http://hblinwei.com^ +||http://hbngfy.com^ +||http://hbsimg.com^$third-party +||http://hcreditx.com^ +||http://hcwljy.com^ +||http://heib10.top^ +||http://heib12.top^ +||http://heima8.com^$third-party +||http://hejingroup.cn^ +||http://hen360.com^$third-party +||http://hesxz.com^ +||http://heygugu.com^ +||http://hfjuki.com^ +||http://hfsteel.net^ +||http://hhly88.com^ +||http://hhppyt.com^ +||http://hi760.com^ +||http://hiad.myweb.hinet.net^ +||http://hivecn.cn^ +||http://hk662.com^ +||http://hkfuy.com^ +||http://hmnjf.com^ +||http://hmp33.com^ +||http://hn163fck.com^$third-party +||http://hnasd.com^ +||http://hnctsm.com^ +||http://hnfpgm.com^ +||http://hnh-hotel.com^ +||http://hntymg.com^ +||http://hnyiche3.com^ +||http://hnyny.com^ +||http://hot-eam.com^ +||http://houdaolj.com^ +||http://hqygz.com^ +||http://hr41.cn^ +||http://hr44.com^ +||http://hrbpay.com^ +||http://hrcmzp.cn^ +||http://hskj.net^ +||http://hslyqs.com^ +||http://hsmkj.net^$third-party +||http://htg-x.com^$third-party +||http://huaerduo.com^ +||http://huanqiucaizhi.com^ +||http://huashengtai.net^ +||http://huashuowork.com^ +||http://huimee.com^$third-party +||http://huimee.net^ +||http://humanding.com^ +||http://hw6.com^ +||http://hwmwin.com^$third-party +||http://hxadt.com^ +||http://hxgccl.cn^ +||http://hxlif.com^ +||http://hxqu.com^$third-party +||http://hxscba.com^ +||http://hxtwl.cn^ +||http://hxyifu.com^ +||http://hxyx360.com^ +||http://hy-cn.cn/index.php? +||http://hys4.com^ +||http://hystq.com^ +||http://hytgj.com^ +||http://hyz86.com^ +||http://hz3137.com^$third-party +||http://hzaibi.com^ +||http://hzmiyou.cn^ +||http://hzxma.com^ +||http://i.zhuoyaju.com^ +||http://i000o.com^$third-party +||http://i3818.com^ +||http://i3z.cn^$third-party +||http://i92xue.com^ +||http://icast.cn^$third-party +||http://icolor8.com^$third-party +||http://id528.com^ +||http://idasai.com^ +||http://idasui.cn^ +||http://idcqi.com^ +||http://idianfang.com^ +||http://ie8q.cn^ +||http://iee5.com^$third-party +||http://ienkdaged.cn^ +||http://if1512.com^ +||http://ifocus.cn^$third-party +||http://igo5.cc^$third-party +||http://iguang.tw^$third-party +||http://ihualun.com^ +||http://il8r.com^ +||http://ilepai.com^$third-party +||http://ilovechenyuqian.xyz^ +||http://image.qndown.com^$third-party +||http://img80.net^ +||http://imneinei.com^ +||http://index8.cn^$third-party +||http://instreet.cn^$third-party +||http://inte.sogoucdn.com^$domain=~index.sogou.com|~zhishu.sogou.com +||http://intentarget.com^$third-party +||http://ipaypay.cn^$third-party +||http://iprefer.com.tw^$third-party +||http://iqu-operation.com^ +||http://iroby.com^ +||http://is686.com^$third-party +||http://isabelisa.com^ +||http://ishowbg.com^ +||http://istcg.com^$third-party +||http://istreamsche.com^$third-party +||http://italy-lottery.com^ +||http://itechwall.com^$third-party +||http://itemccmod.com^ +||http://iuuff.com^ +||http://iwansf.com^ +||http://iyygzs.com^ +||http://j8j9.com^$third-party +||http://ja9377.com^ +||http://jackaow.com^ +||http://jbyy010.com^ +||http://jczzjx.com^ +||http://jdlcg.cn^ +||http://jdlhg.com^ +||http://jermr.com^ +||http://jfjsp.com^ +||http://jfqkj.com^ +||http://jgchq.com^ +||http://jghcy.com^ +||http://jhakie.com^ +||http://jhtcdj.com^ +||http://jhzl001.com^ +||http://jiaheyonggu.com^ +||http://jiajv.net^ +||http://jianbaimei.com^ +||http://jianbangjiaoyu.com^ +||http://jianduankm.com^ +||http://jianglishi.cn^$third-party +||http://jiangmg.com^ +||http://jianjiaovip.vip^ +||http://jiankang13.com^$third-party +||http://jianmei123.com^ +||http://jiehantai.com^ +||http://jiekc.com^ +||http://jimeilm.com^ +||http://jindu179.com^ +||http://jingezhao.cn^ +||http://jinglongtang.cn^ +||http://jinshasi.cn^ +||http://jisucn.com^$third-party +||http://jiudianhudong.com^$third-party +||http://jiuku.cc^ +||http://jiupinshan.cn^ +||http://jiuzhilan.com^$third-party +||http://jixian360.com^$third-party +||http://jixing8.com^$third-party +||http://jixing8.net^$third-party +||http://jiyou2014.com^ +||http://jjxgly.com^ +||http://jk939.com^ +||http://jkjjkj.top^ +||http://jkmxy.com^ +||http://jktopia.com^ +||http://jl027.com^ +||http://jlssbz.com^ +||http://jlwljym.com^ +||http://jntmedia.cn^$third-party +||http://jnyngg.cn^ +||http://johtzj.com^ +||http://jointreport-switch.com^$third-party +||http://josipr.com^ +||http://jossuer.net^ +||http://joyfuldoors.com^ +||http://jozee.cn^ +||http://jqsex.com^ +||http://jqz9.com^ +||http://jsadt.com^ +||http://jschuangnuo.com^ +||http://jscsd.cn^ +||http://jsinfo.net^$third-party +||http://jsjxhd.com^$third-party +||http://jsmbaidu.com^$third-party +||http://jsmwd.com^ +||http://jsyd139.com^$third-party +||http://jsyxfdj.com^ +||http://jsyzw132.com^ +||http://jtxh.net^$third-party +||http://ju33.com^$third-party +||http://juandou.com^$third-party +||http://juejdkio.com^$third-party +||http://juhepen.com^$third-party +||http://junfull.com^ +||http://junkucm.com^ +||http://junnew.com^$third-party +||http://jusha.com^$third-party +||http://jutou5.com^ +||http://juuhe.com^ +||http://juxiangyou.com^$third-party +||http://juyiqiche.com.cn^ +||http://jwqj.net^ +||http://jxabp.com.cn^ +||http://jxbjt.com^ +||http://jxjzny.com^ +||http://jxlqgs.com^ +||http://jxwlkssb.com^ +||http://jxxiangchu.com^ +||http://jystea.com^ +||http://k12shequ.com^ +||http://k3851.com^$third-party +||http://kaixinjiehun.com^$third-party +||http://kakayy.com^$third-party +||http://kawa11.space^ +||http://kawinhome.com^ +||http://kddtri.cn^ +||http://kdly.net^$third-party +||http://kefeng56.com^$third-party +||http://kehuziliaona.com^ +||http://kejet.$third-party +||http://kele4.com^ +||http://keydot.net^$third-party +||http://keyrun.cn^$third-party +||http://keyyou.net^ +||http://kf3msfm.com^ +||http://kfd3sm2c.com^ +||http://kfi8.com^ +||http://kfluoa.com^ +||http://kgcjgsa8.net^ +||http://kguke.com^ +||http://kh2134.com^ +||http://khgj.cn^$third-party +||http://khufaw2.com^ +||http://kicnse.com^ +||http://kiees.com^$image,subdocument,third-party +||http://kingpolo.com.cn^ +||http://kingwam.com^ +||http://kiwihk.net^$third-party +||http://kjfoqi.cn^ +||http://kjgen.com^ +||http://kjwx8.com^ +||http://kkcaicai.com^ +||http://kl-toys.com^ +||http://kld666.com^ +||http://kldmm.com^ +||http://klsdmr.com^ +||http://kmadou.com^ +||http://kmwqxqh.com^ +||http://kod4pc293.com^ +||http://kojwex.top^ +||http://koopei.com^$third-party +||http://kooyum.com^ +||http://koukou7.com^ +||http://kqy1.com^ +||http://ksrsy.com^ +||http://kt220.com^ +||http://ktunions.com^ +||http://ktv0311.com^ +||http://ku63.com^$third-party +||http://ku9377.com^ +||http://kuaipai666.cn^ +||http://kuaizitech.com^$third-party +||http://kuqi.com^$third-party +||http://kuwoyy.com^ +||http://kwiago.com^ +||http://kxrxh.com^ +||http://kyouad.com^ +||http://laifu365.com^ +||http://lamwatch.com^ +||http://langchars.com^ +||http://lanmogu.net^$third-party +||http://lanxiangji.com^ +||http://laobei.top^ +||http://laolinow.com^ +||http://lashou1000.com^ +||http://ldgjhd.net^ +||http://le123.cn^$third-party +||http://le4le.com^ +||http://leamain.net^ +||http://letaoxiaochi.com^$third-party +||http://leturich.org^$subdocument +||http://leturich.org^$third-party +||http://leztc.com^ +||http://lfhnkp.com^ +||http://lflili.com^ +||http://lhafy.com^ +||http://lhengilin.com^ +||http://lhusy.com^ +||http://lhzly.com^$third-party +||http://liangyi360.com^$third-party +||http://liangziweixg.com^ +||http://lianjie.phpwind.com^$third-party +||http://lianle.com^$third-party +||http://lianmeng.360.cn^$domain=~lianmeng.360.cn +||http://lifu11.com^ +||http://liliwoin.top^ +||http://linjiajia.cn^ +||http://linkbide.com^ +||http://linkpage.cn^ +||http://linkvans.com^$third-party +||http://lishuanghao.com^ +||http://litlif.net^ +||http://livehapp.com^ +||http://ljqnbiogjp.com^ +||http://llqss.top^ +||http://lm.35.com^$third-party +||http://lnctc.net^ +||http://lnfund.org.cn^ +||http://lnr1.com^$third-party +||http://loandatec.com^ +||http://log.interest.mix.sina.com.cn^ +||http://loveconer.com^ +||http://lovestyl.com^ +||http://lsper.top^ +||http://lsxmg.com^ +||http://ltcprtc.com^ +||http://ltdnc.com^ +||http://lthxz.cn^ +||http://lu.sogou.com^ +||http://lu.sogoucdn.com^ +||http://lubosheng.cn^ +||http://lucting.cn^ +||http://luntan588.space^ +||http://lv55p.cn^ +||http://lv711.net^$third-party +||http://lvehaisen.com^ +||http://lx167.com^$third-party +||http://lxqcgj.com^ +||http://lyadu.com^ +||http://lyaeccn.com^ +||http://lygshgj.com^ +||http://lyhdream.com^ +||http://lymstsc.com^ +||http://lyraik.cn^ +||http://lyrymy.com^ +||http://lytubaobao.com^ +||http://lyunsd.cn^ +||http://lyztdz.com^ +||http://lzmm8.com^ +||http://lzwla.top^ +||http://lzzqqc.com^$third-party +||http://maibahe300cc.com^ +||http://mainbx.com^ +||http://maisoncherry.com^ +||http://maizhenai.cn^ +||http://mall043.com^ +||http://mamamiyu.com^$third-party +||http://maskbaby.com.cn^ +||http://mathtag.com^$third-party +||http://maxfull.info^ +||http://mbai.cn^$third-party +||http://medi-8.net^$third-party +||http://media8.cn^$third-party +||http://mediav.com^$third-party +||http://meicubao.cn^ +||http://meimeidaren.com^ +||http://meimeiha.com^ +||http://meiti1.net^ +||http://mengheyu.com^ +||http://menghuanzs.com^ +||http://mengmengdas.com^ +||http://mengyuanwei.com^ +||http://metmt.com^ +||http://mglvqian.com^ +||http://mgwcn.com^ +||http://mgwl668.com^$third-party +||http://miaozhen.com^$third-party +||http://mingxianshanghang.cn^ +||http://mingysh.com^ +||http://mjx123.com^ +||http://mkaqh.cn^ +||http://mlt01.com^ +||http://mnxtu.com^ +||http://mobads.baidu.com^$third-party +||http://momzs.com^$third-party +||http://moodoocrv.com.cn^ +||http://moogos.com^$third-party +||http://moonwish.com.cn^ +||http://mosa86.com^$third-party +||http://motohelpr.com^ +||http://moutaihotel.cn^ +||http://mozist.com^ +||http://mr087.cn^ +||http://mrksys.com^ +||http://ms758.com^ +||http://mscimg.com^ +||http://msltzer.cn^ +||http://mstzym.com^ +||http://msujd.cn^ +||http://mtburn.com^$third-party +||http://mtqys.com^ +||http://mtty.com^$third-party +||http://mtxsk.com^$third-party +||http://mu722.com^ +||http://mxmrt.com^ +||http://mycctvmedia.com^$third-party +||http://mytanwan.com^$third-party +||http://mytzdhz.cn^ +||http://myzk1.com^ +||http://myzwqwe12.com^$third-party +||http://mzy2014.com^$third-party +||http://namemek.com^ +||http://nbhxgjz.com^ +||http://nbzq.net^ +||http://ncachear.com^ +||http://nchte.com^ +||http://ndtzx.com^ +||http://ne9377.com^ +||http://newjulads.com^ +||http://news.tagtoo.co^$third-party +||http://newtech-beauty.com^ +||http://nextcps.com^ +||http://ni22.com^$third-party +||http://ni87.com^ +||http://nijiua.com^ +||http://niubiba.com^ +||http://niuguwang.net.cn^ +||http://niurenw.com^$third-party +||http://niuxgame77.com^ +||http://niuza.com^$image,subdocument,third-party +||http://niwota.com^$third-party +||http://njdijiani.com^ +||http://njfsk.com^ +||http://njmpacc.com^ +||http://njq.net^ +||http://njwxh.com^ +||http://nkeo.top^ +||http://nkjwmb.com^ +||http://nklwgj.com^ +||http://nkrwxf.com^ +||http://nkscdn.com^ +||http://nktcw.cn^ +||http://nktwpc.com^ +||http://nlrsq.com^*.js +||http://nmbtedu.com^$third-party +||http://nmeithybnvik.com^ +||http://nmkgs.cn^ +||http://nmpcdn.com^ +||http://nmqbg.com^ +||http://nnedbx.com^ +||http://nngft.com^ +||http://noberlmall.com^ +||http://nongsalei.com^ +||http://nord-raum.com^$third-party +||http://notice.uchome.manyou.com^ +||http://nowskip.com^ +||http://nr1234.com^ +||http://nsnmiaomu.cn^ +||http://nszmz.com^$third-party +||http://nterbx.com^ +||http://nthtcs.com^ +||http://ntxiangtai.com^ +||http://nunc-china.com^ +||http://nuxyz.cn^ +||http://nvshuyun.com^ +||http://nxrhs.com^ +||http://ny5159.com^$third-party +||http://nydql.com^ +||http://nysita.com^ +||http://nzezn.com^ +||http://o091i.com^$third-party +||http://o6uea.cn^ +||http://oa-panther.data.aliyun.com^$third-party +||http://oaer9.cn^ +||http://officeme.cn^ +||http://oikxlcv.wang^ +||http://okm918.com^ +||http://okokw.com^$third-party +||http://olmvkq.cn^ +||http://omgnjvrjgpeg.com^ +||http://onetad.com^$third-party +||http://onewhee.com^$third-party +||http://onlifjj.net^ +||http://onsnv.com^ +||http://open8.cn^$third-party +||http://openxt.cn^ +||http://oq68.com^ +||http://orchidscape.net^ +||http://oumazg.com^ +||http://oxrm.com^$third-party +||http://p0y.cn^$image,domain=~ipinyou.com.cn +||http://p0y.cn^*.swf +||http://p3tt.com^ +||http://pababy.cn^$third-party +||http://pagechoice.net^$third-party +||http://panel-cn.com^ +||http://papajia55.com^ +||http://partner-safe.men^ +||http://partnerwork.men^ +||http://pay838.com^ +||http://pcmzn.com^ +||http://pdsjycm.com^ +||http://pedailyu.com^ +||http://penggua.com.cn^ +||http://penxiangge.com^ +||http://picsinfog.com^ +||http://pjshw.cn^ +||http://pjtymy.cn^ +||http://pnhfc.com^ +||http://pnxs.com^ +||http://pofang.com^ +||http://poke88.com^ +||http://polkoa.com^ +||http://popin.cc^$third-party +||http://pos.baidu.com^ +||http://powergg.top^ +||http://poxzyu.com^$third-party +||http://poyang.cn^$third-party +||http://poyang.com^ +||http://pr00001.com^ +||http://pro.cn^$third-party +||http://prohibited.cn^ +||http://prohost.com.tw^$third-party +||http://ptdrw.com^ +||http://ptkhy.com^ +||http://pubbirdf.com^ +||http://pyzkk.com^ +||http://qbyy010.com^ +||http://qchannel03.cn^$third-party +||http://qclcdn.cn^ +||http://qcupup.com^ +||http://qdchunyu.com^ +||http://qdxrhg.com^$third-party +||http://qfs365.com^ +||http://qgss8.com^ +||http://qhaif.com^ +||http://qi-duo.com^ +||http://qiailm.com^ +||http://qidou.com^$third-party +||http://qigemm.com^ +||http://qilashou.com^ +||http://qingqu.la^ +||http://qiqivv.com^ +||http://qiqiww.com^ +||http://qiqiyii.com^ +||http://qiyou.com^$third-party +||http://qjjtc.com^ +||http://qling.com^$third-party +||http://qmkdy.com^ +||http://qmname.com^ +||http://qnvih8.cn^ +||http://qoiusky.com^ +||http://qq4g.cn^$third-party +||http://qqm98.com^ +||http://qs01.cn^ +||http://qsart.cn^ +||http://qsbz2011.com^ +||http://qshxc.com^ +||http://qsj65.com^ +||http://qtch888.com^ +||http://qtmojo.cn^ +||http://qtmojo.com^$third-party +||http://quadasdata.cn^ +||http://quanbailing.com^$third-party +||http://quansj.cn^ +||http://qubilou.com^$third-party +||http://qucaigg.com^ +||http://queene.cn^ +||http://quw18.com^ +||http://qwedcfv.com^ +||http://qxfly.com^ +||http://qxjdlf.com^ +||http://qxxys.com^ +||http://qycjrkfzx.com^ +||http://qyctj.com^ +||http://qytyf.com^ +||http://qzdfc.com^ +||http://qzkxt.com^ +||http://qzmhnk.com^ +||http://qzzljx.com^ +||http://r5g.cc^$third-party +||http://rainfinemalawi.com^ +||http://rangeblessedness.men^ +||http://raonie.com^$third-party +||http://rayli.com.cn^$third-party +||http://rcaiv.com^ +||http://rdiqt.cn^ +||http://re.taotaosou.com^ +||http://rekanw.com^$third-party +||http://reliancevalve.com^ +||http://remotedu.cn^ +||http://rencai56.com^ +||http://renminben.com^ +||http://resetgey.com^ +||http://rhgyg.com^ +||http://rickysblast.cn^ +||http://rideraid.net^ +||http://riqu2015.com^ +||http://rjk1.com^ +||http://rmetop.com^ +||http://roay.cn^ +||http://rongchengxxw.com^ +||http://rpaulfrank.com^ +||http://rqgsf.com^ +||http://rrsubway.com^ +||http://rsccs.com^$third-party +||http://rscxwmj.cn^ +||http://ruangkayu.cn^ +||http://ruanwenclub.com^$third-party +||http://runiman.com^ +||http://ruxianke.com^ +||http://rwjfs.com^ +||http://s17cnzz.com^$third-party +||http://s400cc.com^ +||http://s8dj.com^$third-party +||http://s9w.cc^ +||http://sadobo.com^ +||http://saf588.com^ +||http://saferwet.com^ +||http://sales-frontier.com^$third-party +||http://samboc.com^$third-party +||http://sangxi.top^ +||http://sbrqp.com^ +||http://scenepass.com^ +||http://scfatao.com^ +||http://sciencelolb.com^ +||http://scize.com^$third-party +||http://sclizhong.com^ +||http://scriptcc.cc^ +||http://scw0.com^ +||http://sdhzstone.net^ +||http://sdjjr.com^ +||http://sdqoi2d.com^ +||http://sdtbhbyb.com^ +||http://sdxkdj.cn^ +||http://sdycd.com^ +||http://seaxm.com^$third-party +||http://sexy-more.com^$third-party +||http://sfloushi.com^ +||http://sfxl.com.cn^ +||http://sgbfjs.info^ +||http://shama5.com^ +||http://shandongkuntuo.com^ +||http://shangjiabiao.com^$third-party +||http://shanglinli.com^ +||http://shaqm.com^*.js$third-party +||http://sharedaddomain.com^ +||http://sharele.cn^$third-party +||http://sharrysweb.com^ +||http://shbywsd.cn^ +||http://shenglonghg.net^ +||http://shenyian.net^ +||http://shiftrro.com^ +||http://shkywh.com^ +||http://sho9wbox.com^$third-party +||http://shouwangba.cn^ +||http://show.kc.taotaosou.com^ +||http://shucaihangjia.com^ +||http://shuihulu.com^$third-party +||http://shujuwu.com^$third-party +||http://shushijiameng123.com^ +||http://shuwuzhan.com^ +||http://shxinjie.cn^ +||http://shypqc.com^ +||http://si9377.com^ +||http://sicentlife.com^ +||http://sigbusa.com^ +||http://sigo99.com^ +||http://sin114.com^$third-party +||http://sina-img.club^ +||http://sinaalicdn.com^ +||http://sinaaliyun.cn^ +||http://sinawbimg.com^ +||http://sino-seve.com^ +||http://sitemobia.com^ +||http://sjgnskf.com^ +||http://sjy-stone.com.cn^ +||http://skatehot.net^ +||http://smitionsory.co^ +||http://smucdn.com^ +||http://smxsg.com^ +||http://snmi.cn^$third-party +||http://snnnyy.com^ +||http://snxyf.com^$third-party +||http://snyu.com^$third-party +||http://so9l.com^ +||http://socdm.com^ +||http://somennew.com^$third-party +||http://sos0easy.com^ +||http://souacode.com^$third-party +||http://sp96878.com^ +||http://spcode.baidu.com^ +||http://spectram.pro^ +||http://sphwq.net^$third-party +||http://sqext.com^ +||http://sscefsol.com^ +||http://sscj123.com^$third-party +||http://ssdaili.com^ +||http://ssh.*.com^*!$script,third-party +||http://ssjy168.com^ +||http://ssmuse1314.cn^ +||http://sspsky.com^$third-party +||http://sstc360.com^ +||http://st123.info^ +||http://staqnet.com^ +||http://star8.net^$third-party +||http://static-cn.plista.com^ +||http://staticjs.cn^ +||http://steadfastsystem.com^ +||http://stn88.com^ +||http://stocksbsc.com^ +||http://stsywl.com^ +||http://subo.me^$third-party +||http://sucodb.com^ +||http://sufficient.cn^ +||http://sums.suning.com^$third-party +||http://superfish.com^$third-party +||http://swzhaohuo.com.cn^ +||http://sxbhzs.net^ +||http://sxcol.cn^ +||http://sxdyrq.com^ +||http://sxz67.com^ +||http://sxzmj.cn^ +||http://sykty.com^ +||http://symac.cn^$third-party +||http://symav.cn^$third-party +||http://symaw.cn^$third-party +||http://syofew6o.net^ +||http://sytcyf.com^ +||http://sytz1288.com^ +||http://szapp22.cc^ +||http://szdzbx.com^ +||http://szfaq.com^ +||http://szggdw.com^ +||http://szrk3.com^ +||http://sztbjs.com^ +||http://szvr.com^$third-party +||http://szxiuchang.com^ +||http://szxpsg.com^ +||http://t3nlink.com^$third-party +||http://t70123.com^ +||http://ta80.com^$third-party +||http://taat00889.com^ +||http://tab20.com^$third-party +||http://tad.suning.com^ +||http://tagtic.cn^$third-party +||http://tamedia.com.tw^$third-party +||http://tanchuang002.info^$third-party +||http://tangoutianxia.com^ +||http://tanwanyx.com^$third-party +||http://taobaly.cn^ +||http://taobaoaliyun.cn^ +||http://taobayun.cn^ +||http://taohanpai.com^ +||http://taojingu.cn^$third-party +||http://taotu001.com^$third-party +||http://tbaocdn.com^ +||http://tbjfw.com^$third-party +||http://tc600.com^ +||http://tdayi.com^ +||http://tebaidu.cn^$third-party +||http://techsolutions.com.tw^$third-party +||http://tenmax.io^$third-party +||http://tequanma.com^ +||http://tg.1155t.cn^ +||http://tgjkbx.cn^$third-party +||http://th21333.com^ +||http://thefifthera.com^$third-party +||http://thescenseproject.com^ +||http://thishare.com^ +||http://thli43.cn^ +||http://thxnr.com^ +||http://thyvjboy.com^ +||http://tianfus.com^$third-party +||http://tiangu99.com^ +||http://tianji520.cn^$third-party +||http://tianjieleather.com^ +||http://tianqi777.com^ +||http://tiantianedu.net^$third-party +||http://tianyanzs.com^ +||http://tinglian.com^ +||http://tj-cmys.com^ +||http://tjgxzs.com^ +||http://tjhhr.com^ +||http://tjqonline.cn^ +||http://tkd777.cn^ +||http://to8to.com^$subdocument,third-party +||http://togo666.com^ +||http://tongdejiayuan.com^ +||http://tongqing2015.com^ +||http://toourbb.com^ +||http://top.baidu.com^$subdocument,third-party +||http://top267.com^ +||http://top888.com^$third-party +||http://touchrom.com^$third-party +||http://toufangke.com^$third-party +||http://toy9090.com^$third-party +||http://tpe163.com^ +||http://trackingpro.pro^ +||http://tradeccl.com^ +||http://trourted.pro^ +||http://trys5.com^$third-party +||http://trzina.com^ +||http://tsdlp.com^ +||http://ttbaods.com^ +||http://ttfgames.cn^ +||http://ttlowe.com^ +||http://ttz.com^$third-party +||http://tudown.com^$third-party +||http://tuia.cn^$third-party +||http://tukeai.com^ +||http://tukj.net^$third-party +||http://tvrom.cn^$third-party +||http://twb98.com^$third-party +||http://twcczhu.com^$third-party +||http://twitterzs.com^ +||http://twldmx.com^ +||http://twm.com.tw^$third-party +||http://twrank.com^$third-party +||http://twzui6.com^ +||http://txdwc.cn^ +||http://txkjad.com^$third-party +||http://txt2017.com^ +||http://ty229.com^ +||http://tylll.com^ +||http://tz-dsp.com^$third-party +||http://u.801t.com^$third-party +||http://u.huoying666.com^ +||http://u88.cn^$third-party +||http://ubalh.com^ +||http://ubcpm.com^$third-party +||http://ubmcvideo.baidustatic.com^ +||http://uc610.com^ +||http://ucaliyun.cn^ +||http://ucrzgcs.cn^ +||http://ucstatic.cn^ +||http://uctrac.com^$third-party +||http://ucxxii.com^ +||http://ueadlian.com^$third-party +||http://ufstone.com^$third-party +||http://ugg66.com^ +||http://ugoooo.com^$third-party +||http://uhijmv.cn^ +||http://ujian.cc^$third-party +||http://ujikdd041o.cn^ +||http://ukeiae.com^ +||http://uklyv.cn^ +||http://ulink.cc^$third-party +||http://um29.com^$third-party +||http://umjsik.com^ +||http://unimhk.com^$third-party +||http://union-wifi.com^$third-party +||http://union.zbj.com^$third-party +||http://union009.com^$third-party +||http://unionbig.com^$third-party +||http://unionli.com^$third-party +||http://unionsky.cn^$third-party +||http://unionsky2.cn^$third-party +||http://uoyrsd.com^ +||http://urhu.cn^ +||http://urlad.com.tw^$third-party +||http://urlat.cn^ +||http://usingde.com^$third-party +||http://uvclick.com^ +||http://uvsea.cn^ +||http://uw9377.com^ +||http://uzpmrbek.com^ +||http://v-links.net^$third-party +||http://v.center^$third-party +||http://v.xi666.com^$third-party +||http://v707070.com^ +||http://va88p.cn^ +||http://vamaker.com^$third-party +||http://vboo349.com^ +||http://vbtrax.com^$third-party +||http://vdazz.net^ +||http://ve001nz.com^ +||http://vedeh.com^ +||http://vegent.cn^ +||http://velocecdn.com^ +||http://vf5c.com^$third-party +||http://vfdxlt.cn^ +||http://victorjx.com^ +||http://videondun.com^ +||http://visadd.com^$third-party +||http://vlion.cn^$third-party +||http://vmjjzk.cn^ +||http://vnnv777.cn^ +||http://vns3359.com^ +||http://vpie.net^$third-party +||http://vsnoon.com^$third-party +||http://vtale.org^ +||http://vvvulqn7.com^ +||http://vwws6.net^ +||http://w3989.com^ +||http://w65p.com^ +||http://waihui518.com^ +||http://walibao.com^$third-party +||http://wangdaizao.com^ +||http://wangdddy.com^ +||http://wangdq.com^ +||http://wangsufast.com^ +||http://wantaico.com^ +||http://wantfour.com^ +||http://wanzituandui.com^$third-party +||http://wapadv.com^ +||http://waptime.net^ +||http://watchsk.com^ +||http://wazero.online^ +||http://wcnmd.top^ +||http://wdymwzz.com^ +||http://wdzsb.com.cn^ +||http://weareqy.com^$third-party +||http://webofxm.cn^ +||http://weddingeeos.com^$third-party +||http://weihuiyungou.com^ +||http://weiqiqu.cn^ +||http://weixiangzu.cn^ +||http://werpig.com^ +||http://wffengtai.com.cn^ +||http://wgnlz.com^ +||http://wgnmp.com^ +||http://whafwl.com^ +||http://whale123.com^$third-party +||http://whhxnz.com^ +||http://whpxy.com^ +||http://whshangsha.com^ +||http://whytoss.com^ +||http://wicp.net^*.swf +||http://widget.ezprice.com.tw^$third-party +||http://wikigifth.com^ +||http://winasdaq.com^$third-party +||http://winvestern.com.cn^ +||http://wjguc.com^ +||http://wka8.com^ +||http://wlkpa.cn^ +||http://wmrmb.cn^$third-party +||http://wndlkj.com^ +||http://wo685.com^$third-party +||http://wodemeitu.com^$third-party +||http://wodhid.com^ +||http://wofan.net^$third-party +||http://wole.us^ +||http://wowips.com^ +||http://wq42219.com^ +||http://wqsph.net^ +||http://wqzyt.net^$third-party +||http://wrvdmh.cn^ +||http://ws341.com^ +||http://ws7j.com^ +||http://wsgblw.com^ +||http://wstztt.com^ +||http://wu36n.cn^ +||http://wu65.com^ +||http://wudang05.com^$third-party +||http://wuwaii.com^ +||http://wuwho.cn^ +||http://wvstatic.cn^ +||http://wwlolbs.com^ +||http://wxbdfm.com^ +||http://wxstatic.cn^ +||http://wyhzzy.com^ +||http://wyttech.cn^ +||http://wywsdx.com^ +||http://wzaigo.com^ +||http://wzjijia.com^ +||http://wzsygdl.com^ +||http://x-ssp.com^$third-party +||http://x6z6.com^ +||http://x8ad.com^$third-party +||http://x9377a.com^ +||http://xa9t.com^ +||http://xabaitai.com^ +||http://xabmjr.com^ +||http://xajx.com^$third-party +||http://xcclzs.com^ +||http://xchgx.com^ +||http://xcjy876.com^ +||http://xcsaz.com^ +||http://xcxzxc.cn^ +||http://xcy8.com^ +||http://xcycm.com^$third-party +||http://xcyjzs.net^ +||http://xcyrc.com^ +||http://xdbwc.com^ +||http://xdcqcyp.com^ +||http://xdwan.com^$third-party +||http://xdywlw.cn^ +||http://xe2c.com^$third-party +||http://xhbqczl.com^ +||http://xhmrv.com^ +||http://xhrxb.com^ +||http://xhsxgmt.cn^ +||http://xhxnkyy.com^ +||http://xhydrs.cn^ +||http://xi0021.com^ +||http://xiald.com^ +||http://xiaobiaoucai.cn^ +||http://xiaoyang.mobi^ +||http://xiaoyida.com^$third-party +||http://xiaozhishi852.com^ +||http://xiaxuanfu.com^ +||http://xibei70.com^ +||http://xidexableact.cn^ +||http://xihashuale.com^ +||http://xijinfa.com^$third-party +||http://xilele.com^ +||http://xiliweisha.cn^ +||http://xinasiaj.com^ +||http://xing678.com^$third-party +||http://xingjuhe.com^ +||http://xinlongrubber.com^ +||http://xinyijiasc.cn^ +||http://xiongdong.com^ +||http://xiongyin.com^$third-party +||http://xitao3.com^$third-party +||http://xixianad.com^$third-party +||http://xixiashengdian.com^ +||http://xjidian.com^ +||http://xjzyq.com^ +||http://xk2012.com^ +||http://xkwfao.com^ +||http://xlcun.com^$third-party +||http://xlingdi.com^$third-party +||http://xlwnx.com^ +||http://xm9178.com^ +||http://xmcmn.com^ +||http://xmliw.com^ +||http://xmshqh.com^$third-party +||http://xmsqz.com^ +||http://xmtsyg.com^ +||http://xn6ffc.com^ +||http://xnjpg.com^ +||http://xp3366.com^$third-party +||http://xpjis.com^ +||http://xpqfc.com^ +||http://xq12.com^$third-party +||http://xq199.com^ +||http://xsu.cc^$third-party +||http://xt2d.cn^ +||http://xtgreat.com^$third-party +||http://xtianqi.com.cn^ +||http://xtxa.net^ +||http://xuanmeiguoji.com^ +||http://xueyongbao.com^ +||http://xugsh.cn^ +||http://xul478.com^ +||http://xulizui6.com^ +||http://xuqinqi.cn^ +||http://xvtpvc.cn^ +||http://xxad.cc^ +||http://xxhrd.com^ +||http://xxlmxsh.com^ +||http://xxwkjl.com^ +||http://xxx55tp.com^*.gif +||http://xxyzwtsylw.com^ +||http://xycnz.com^ +||http://xyimg.net^$domain=~xy.com +||http://xyqptm.com^ +||http://xyqxr.com^ +||http://xyrhd.com^ +||http://xyssp.com^ +||http://xytom.com^ +||http://xzdchl.com^$third-party +||http://xzyituo.com^ +||http://xzzyi.com^ +||http://y0o1g.cn^ +||http://yageben.com^ +||http://yamaidei.cn^ +||http://yangdasen.cn^ +||http://yanglaopt.net^ +||http://yaohq.com^ +||http://yaoxiaoli.com^ +||http://yaoyl.com^ +||http://yatemy.cn^ +||http://ychml.com^ +||http://ychun03.com^ +||http://ydcpc.com^$third-party +||http://ydlnt.com^ +||http://ydqzkj.com^ +||http://ye3.com^$third-party +||http://yenlm.com^ +||http://yeyajipp.com^ +||http://yezijizhang.com^ +||http://yezilm.com^$third-party +||http://yf898.com^ +||http://yfycy.com^ +||http://yghua.com^$third-party +||http://yhsmk.com^ +||http://yhtcd.com^ +||http://yidulive.net^ +||http://yigao.com^$third-party +||http://yigyx.com^ +||http://yiiwoo.com^$third-party +||http://yijia2009.com^ +||http://yijikm.com^ +||http://yingdatuofu.com^ +||http://yingshidaquan.cc^$third-party +||http://yinhaijuan.com^ +||http://yinoo.cn^$third-party +||http://yinyuehu.cn^ +||http://yiqifa.com^$subdocument +||http://yiqifa.com^*.js$third-party +||http://yiqiv.com^$third-party +||http://yiran686.cn^ +||http://yiranxian.cn^ +||http://yishuifa.org^ +||http://yiwad.com^$third-party +||http://yiwuds.com^ +||http://yixige.com^$third-party +||http://yixui.com^ +||http://yjoiunf.com^ +||http://yk0712.com^ +||http://ykjmy.com^ +||http://ylzx.net^$third-party +||http://ymcqb.com^ +||http://ynbojie.com^ +||http://yndianju.com^ +||http://ynmbz.com^ +||http://ynwqls.com^ +||http://yongkang6.com^ +||http://yongv.com^$third-party +||http://youbet8.com^$third-party +||http://youfumei.com^ +||http://youle55.com^$third-party +||http://youmw.com^$third-party +||http://yousee.com^ +||http://youxiaoad.com^$third-party +||http://youxicool.net^$third-party +||http://youyoumw.com^ +||http://yoyi.com.cn^$third-party +||http://yoyi.tv^$third-party +||http://ypa.focusoftime.com^ +||http://ypmob.com^ +||http://yqcy988.com^ +||http://yqw88.com^ +||http://yrzyks.cn^ +||http://ysdhe.com^ +||http://ysgsq.cn^ +||http://ysjwj.com^ +||http://ysm.ezprice.net^$third-party +||http://yuanhsu.com^$third-party +||http://yueyetiyu.com^ +||http://yuggcd.com^ +||http://yujyjms.cn^ +||http://yule8.net^ +||http://yunfanlm.com^$third-party +||http://yunsoka.com^ +||http://yuu360.com^$third-party +||http://yuyue008.cn^ +||http://ywadf.cn^ +||http://ywjsgc.com^ +||http://ywjxsp168.cn^ +||http://ywxi.net^ +||http://yxdyk.com^$script,third-party +||http://yxjad.com^ +||http://yxmspx.com^ +||http://yxszy.com^ +||http://yxxwyz.com^ +||http://yy32.com^$third-party +||http://yy58ju.com^ +||http://yyp17.com^ +||http://yyylg.cn^ +||http://yzaosite.com^ +||http://yzh360.com^ +||http://yzxls.com^$third-party +||http://yzygo.com^ +||http://yzytb.com^ +||http://zampda.net^$third-party +||http://zampdsp.com^$third-party +||http://zantainet.com^ +||http://zcrtd.com^ +||http://zd6789.com^$third-party +||http://zdjby.cn^ +||http://ze5.com^$third-party +||http://zencu.com.cn^ +||http://zfkmw.com^ +||http://zgc66.com^ +||http://zgczjw.com^$third-party +||http://zgksb.com^ +||http://zgktxx.com^ +||http://zgrsq.cn^ +||http://zgunion.cn^ +||http://zgyemy.com^ +||http://zgyiyi.com^$third-party +||http://zh1144.com^ +||http://zhaibei112.top^ +||http://zhandi.cc^$third-party +||http://zhao258.com^ +||http://zhenhun.co^$third-party +||http://zhfosenghtr.com^ +||http://zhichi08.com^ +||http://zhihei.com^ +||http://zhinengap.com^ +||http://zhiong.net^ +||http://zhixiuchang.com^ +||http://zhjfad.com^ +||http://zhongjiangguoji.org^ +||http://zhongzk.com^ +||http://zhuba8.com^ +||http://zhudiaosz.com^ +||http://zhufushuo.com^ +||http://zhululm.com^$third-party +||http://zhunishunli.com^ +||http://zhy333.com^ +||http://zhybzp.cn^ +||http://zi63m.cn^ +||http://ziig.com.cn^ +||http://zj66.net^$third-party +||http://zjhim.com^ +||http://zjhoudao.com^ +||http://zl588.com^ +||http://zlongad.com^$third-party +||http://zmlled.cn^ +||http://zp22938576.com^ +||http://zp265.com^$third-party +||http://zqworks.com^ +||http://zrpfk.com^ +||http://zry8181.com^ +||http://zsdexun.com.cn^ +||http://zsedu99.cn^ +||http://ztdsp.com^$third-party +||http://ztidu.com^ +||http://zx573.cn^ +||http://zxb918.com^ +||http://zxwdw.com^ +||http://zybpj.com^ +||http://zydyjzw.cn^ +||http://zymro.com^ +||http://zyqp9.com^ +||http://zyrfanli.com^ +||http://zytwq.net^$third-party +||http://zz123.com^$third-party +||http://zzad.com^$third-party +||http://zzbaowen.com^ +||http://zzrcz.com^ +||http://zzsssy.com^ +||http://zzyonghao.com^ +||http://1024wanzhai.$popup,third-party +||http://133gp.com^$popup +||http://189.cn/actpush/$popup,third-party +||http://35.$popup,domain=dfpan.com +||http://415.net^$popup +||http://76fengyun.com/vip.php$popup +||http://7866593178.com^$popup +||http://9100300.com^$popup +||http://9453hot.com^$popup +||http://aiwanma99.com^$popup +||http://ark.letv.com/t?$popup +||http://avkankankan.com^$popup,third-party +||http://baidu.com/adrc.$popup +||http://baidu.com/baidu.php?url=$popup +||http://bm999999.com^$popup +||http://c.admaster.com.cn^$popup +||http://cpm.193g.cn^$popup +||http://csaimall.com^$popup,third-party +||http://ctfile.com/popjump.php?$popup +||http://d6262.com^$popup +||http://dilidili.wang/toGame.$popup +||http://duoyi.com/welcome/$popup +||http://dwz.cn^$popup,domain=aixiaoju.com +||http://flash.cn/success/$popup +||http://fu9453.com^$popup,third-party +||http://gd.189.cn*/push/$popup +||http://gd.189.cn/ad/$popup,third-party +||http://gd.189.cn/gz/promotion/$popup,third-party +||http://gd.189.cn^*.htm?SP=$popup,third-party +||http://gd.ct10000.com^*/push/$popup,third-party +||http://gotourl.xyz^$popup +||http://greenet.cn^*_popu_$popup +||http://hinet.net/product/promotion/$popup +||http://huancaicp.com/?pid=$popup +||http://ieeod0.com^$popup +||http://ihualun.com^$popup +||http://img999.com^$popup,domain=tt1069.com +||http://jjwxc.net/jjad*.html$popup +||http://kuheju.com^$popup +||http://p.ynb2dca.com^$popup +||http://puma.com^$popup,domain=hupu.com +||http://qx568.com^$popup +||http://sohu.com/i/?pvid=$popup +||http://todayapp.tv^$popup,third-party +||http://u26u.com^$popup,third-party +||http://vnet.cn^*.html?$popup,third-party +||http://wy213.com^$popup,third-party +||http://xingshenfang.cn^$popup +||http://xiyouence.com^$popup,third-party +||http://yy18.info^*thanks$popup +||http://*.$image,rewrite=abp-resource:1x1-transparent-gif,third-party,domain=rmdown.com +||http://000001.azureedge.net/script/common.js +||http://000001.azureedge.net/script/p.js +||http://000b.info/js/ +||http://005.tv/s/setcores.js +||http://005.tv/shouye/moe-9 +||http://005.tv/templets/muban/js/jquery-1.8.3.js +||http://005.tv:60000/ad.js +||http://007.mx/flv/ +||http://007ds.com/js/js/ +||http://0379home.com/public/js/ad_pic.js +||http://0379home.com/public/js/beside.js +||http://0439.com/wtj/homepage/handler/guangg.ashx?ut=classify +||http://0439.com/wtj/homepage/handler/guangg.ashx?ut=topslide +||http://0439.com/wtj/homepage/handler/guangg.ashx?ut=zhuangx +||http://0460.com/images/banner/ +||http://0460.com/js/txtrec.js +||http://04cmm.com:8888/js +||http://04stream.tv/sda/ +||http://0573fang.com/upimg/switch/ +||http://0575bbs.com/js/float.js +||http://0575bbs.com/updateimeags/ +||http://0579.cn/SHow/Showplacenew.aspx +||http://0597ok.com/ilike/597/ +||http://0598yu.com/api.php?mod=ad& +||http://0606kk.com/js/index/index.js +||http://060s.com/my_ad/ +||http://0668gz.com/data/attachment/portal/ +||http://0712fang.com/Public/js/cf_flash.js +||http://0722fc.com/index/index.php?/ajax/get_adv/ +||http://0722fc.com/index/tools/js.php +||http://073img.com/*/| +||http://073img.com^$subdocument +||http://0758net.com/data/attachment/portal/ +||http://0772fang.com/assets/js/lffoi.js +||http://0772fang.com/assets/js/Newhouse/inserAds.js +||http://0772fang.com/media/20*.swf +||http://07908.com/images/ +||http://0d077ef9e74d8.cdn.sohucs.com^*_gif +||http://0kkbb.com/js/i.js +||http://0lb.com/data/attachment/album/ +||http://0o0.ooo/2017/01/13/58787d42bbad6.jpg +||http://0x013d.website^ +||http://0x01e7.website^ +||http://1.hao123.com^ +||http://100.admin5.com^ +||http://100.pncdn.cn^ +||http://10000xing.cn/images/we +||http://100ksw.com/inc/doc- +||http://100xuexi.com/CssModel/*Layout.js +||http://100yangsheng.com/a1/a.js +||http://101.78.195.135/js/ +||http://1010pic.com/scripts/hd/yueyue +||http://1010pic.com/static/js/allpc.js +||http://1024down.com/images/*.gif +||http://102tv.cn/js/main.js +||http://103.19.2.6/js/thea +||http://103.225.198.230:8080/index.html +||http://107.172.176.197^ +||http://107.182.131.103/cache/?q=/images/ +||http://107cine.com/front/js/layer.js +||http://108.171.248.234^ +||http://11.mydrivers.com/drivers/ +||http://11.mydrivers.com/news/03.js +||http://11.mydrivers.com/news/google468x60.js +||http://11129.com/800X80 +||http://111cn.net/gg_ad/ +||http://111cn.net/js/downc*.js +||http://112.124.15.130/res/linuxde_www/images/cxy-ad.jpg +||http://112.126.66.58^*?mid= +||http://113.17.188.*.js +||http://114shouji.com/a/1.js +||http://114txt.com/hello/ +||http://115.28.114.149^*_proxy. +||http://115.29.141.121^ +||http://115.29.46.146^$subdocument +||http://115mm.com/js/ +||http://119.29.80.185^ +||http://119xiazai.com^$subdocument +||http://11img.com/ad/ +||http://11kkzz.com/se/wf/ +||http://11vvt.com^*tools/ +||http://120.27.*.html +||http://120.27.34.156^ +||http://120askimages.com/ask/js/askfrom.js +||http://120askimages.com/ask/js/q +||http://120askimages.com/ask/zhenshi/templates/pub/js/loadPart.js +||http://121.40.136.114^*.htm +||http://121.41.60.207/m?t= +||http://121.43.114.38:8087/advs.js +||http://121zou.com^$subdocument +||http://122.225.103.*.htm +||http://122.228.200.55:8082/blr.gif +||http://122.228.236.165^ +||http://123.sogou.com/discover/? +||http://1236226.com/html/ +||http://124fu.com/js/*.htm +||http://126.com/get.do?*=themeHandler. +||http://126.net/house/hrb/flash/*X +||http://126.net/ntesrich/*/suning- +||http://127.net/2018/08/15/71ee02b5b61c4090b3ce0116306596c2.jpeg +||http://127.net/external/js6promote +||http://127.net/external/js6public126_ +||http://127.net/external/js6public163_ +||http://127.net/m/*/promPic.jpg +||http://12999.com/JS/ +||http://12img.com/ad/ +||http://12ycw.com/js/fc/ +||http://131458.com/union/ +||http://1328f.com/js/jquery.js +||http://13322.com/newIndex/ad/ +||http://1342a.com/js/jquery.js +||http://138vps.com/fa/ +||http://139file.com/jsa/ +||http://141h.com/data/attachment/noblock/cf/ +||http://145.239.6.59/g3/ +||http://14bobo.com/js/ +||http://158pic.com/js/tjhd.js +||http://159i.com/p/b201u502y.js +||http://159i.com/video/pop/ +||http://159i.com/video/usr/uploads/1- +||http://159i.com/video/usr/uploads/bd/$image +||http://15hn.net/data/content +||http://160.com/statics/statics/js/code_13.js +||http://160.com/statics/statics/js/code_15.js +||http://1616.net/jd/data/index/indexad.json +||http://162.212.182.$subdocument +||http://162.251.5.11/bbspic/storeShow/ +||http://163.com*/special/*_ad_ +||http://163.com/get.do?*=themeHandler. +||http://163.com/ntes/special/*_papa. +||http://163.com/q?c=*&t=wap_stream&l= +||http://163.com/special/*/ted_vad. +||http://163.com/special/*=ad_ +||http://163.com/special/*_960/ +||http://163.com/special/*_netease +||http://163.com/wap/special/article_cooper_piapia/ +||http://163disk.com/static/aimgs/d +||http://163disk.com/static/images/51 +||http://163disk.com/static/www/ +||http://163jiankang.com/zhuanqian/m/myad- +||http://168.it168.com^$script +||http://1684sm.com/js/1684/ +||http://1688.com/b2bxad? +||http://16888.com/ajax/loadcardata.php +||http://168gamer.*.php?mod=js +||http://168img.com/a/ +||http://168img.com/aa/ +||http://16sucai.com/ads/ +||http://16sucai.com/images/*0 +||http://1708t.com/js/jquery.js +||http://17173.com/advideo/ +||http://17173.com/api/video/PlayerPopup? +||http://17173.com/if/ +||http://17173.com/new/ +||http://17173.com/x/ +||http://17173cdn.com/a/lib/vda/seed.js +||http://17173cdn.com/a/www/index/2016v2/js/seed.js +||http://17173cdn.com/js/play/page/pThridPlayerAd.js +||http://172.15.2.28:3438/*.js +||http://1722t.com/js/jquery.js +||http://173.208.177.227^*.gif +||http://173app.com/hot/666/alipay- +||http://174.123.15.43:8080 +||http://17500.cn/Public/Mobile/img/enjoyswiss.jpg +||http://17500.cn/template/images/*_960X90. +||http://178.com/glr.js +||http://17989.com/script/index.asp +||http://17ce.com/118/ +||http://17ce.com^$subdocument +||http://17dm.com/s/common/js/*AD.js +||http://17jiaoyu.com/images/img_980x90.jpg +||http://17ok.com/focus/3j_right_jdt.shtml +||http://17yy.com/style/ifra_ad/ +||http://180.96.27.85^*.htm +||http://18183.com^*.php? +||http://182.92.234.239^*.html +||http://183yf.cn/img/nz.png +||http://188soft.com/js/PCsoftDetailAD.js +||http://189.cn/dns/ +||http://192.240.111.77/ad/ +||http://192.74.239.161/ad960.js +||http://19216811.la/net/advert +||http://198.40.52.148/js.js +||http://19iiii.info/js/dingbu.js +||http://19iiii.info/js/dl.js +||http://19iiii.info/js/foot.js +||http://19iiii.info/js/tonglan.js +||http://1fzw.com/content/templates/zjbnew/yxj.js +||http://1kejian.com/js/topA.js +||http://1ketang.com/Runtime/js/play +||http://1xlala.com/img/ +||http://2.56.176.42/link/ +||http://2008mm.com^*.js +||http://2008xxx.com:888 +||http://201*.myhard.com^ +||http://20150930.cf^ +||http://2016.bkill.net^ +||http://202.102.26.253:8182/files/7/lhzs1k.jpg +||http://205.209.138.102^ +||http://20bmm.com:8888/js +||http://211600.com/data/attachment/portal/ +||http://217hs.com/js/jquery.js +||http://219.128.77.113/main.js?i= +||http://219.138.173.204:8080/jiekou/api/kqzl.ashx +||http://219.153.41.154/v1/ +||http://219.153.41.175/*.js +||http://219.238.159.181^*.html +||http://219.238.159.182^*.html +||http://21edu8.com/js/mymoney/ +||http://21uscity.com/static/allbusiness/ +||http://21uscity.com/zonelist.php +||http://21yq.com/mg/21yq/ +||http://221.5.69.52^*.js +||http://222*.com/static/js/common.js +||http://222.45.224.77^*.js +||http://222.47.26.21/m.js +||http://22pixx.xyz/l/ +||http://23.91.3.114^ +||http://2324av.com/zz/ +||http://2345.com/cnxh/ +||http://2345.com/duoteimg/dtnew_recom_img/duoteself/ +||http://2345.com/duoteimg/duotehtml/ +||http://2345.com/duoteimg/img/*_ad_ +||http://2345.com/dypcimg/*gameRecommend.js +||http://2345.com/dypcimg/ads/ +||http://2345.com/images/activity/20180618/search-actimg +||http://2345.com/images/m/global/new-hongbao/ +||http://2345.com/jifenimg/img/common/logo.png$third-party +||http://2345.com/js/index/activity/ +||http://2345.com/js/m/bottom.float.adver.js +||http://2345.com/js/m/common/top_information.js +||http://2345.com/pic/2345video.png +||http://2345.com/right/homepage/tqbChannel_ +||http://2345.com/right/site/like/gul_ +||http://2345.com^*/activity/20171 +||http://234fang.com/index.php?/ajax/get_adv/ +||http://239300.net/template/*_mh_gg +||http://23aitt.com/zz/ +||http://23sc.cn/andy/ +||http://24cmm.com:8888/js +||http://24mn.me/js/total.js +||http://2500sz.com/site/ +||http://25bmm.com/js +||http://265la.com/html/ +||http://268de.com/js/ +||http://28hse.com/adsman/www/images/ +||http://29spp.com/js/tj.js +||http://2btu.com/gg.jpg +||http://2ccc.com/images/aobi.gif +||http://2ccc.com/images/sdo.jpg +||http://2ccc.com/images/show/ +||http://2ccc.com/images/sino.gif +||http://2ccc.com/images/WebXone.gif +||http://2cq.com/third/tieba/sidebar +||http://2kandy.com/js/123/ +||http://2ujj.com/js/bo.js +||http://2zzt.com/file/aliyun +||http://2zzt.com/images/ +||http://310v.com/images/lingdai.gif +||http://310v.com/images/wap_520x60.gif +||http://315che.com/tree/ad.js +||http://31bmm.com:8888/js +||http://32xp.com/upimg/ +||http://333tv.com/wp-content/themes/Loostrive/cssg/ +||http://33405.com/js/layer.js +||http://33405.com/ps/ +||http://33405.com/xxxxx.js +||http://33405.com^$subdocument +||http://3344ex.com/js/1playerad.js +||http://3344ex.com/js/bot.js +||http://3344ex.com/js/jc.js +||http://3344mf.com/js/ +||http://3344xu.com/js/ +||http://33api.com/index.php/Article/eddata? +||http://33av.net/Uploads/ad/ +||http://33img.com^$domain=18board.com|18p2p.com +||http://33lc.com/bui/ +||http://33shu.net/js/game +||http://3520.cc/js/3520/ +||http://35336.net/35336.jpg +||http://360-bo.com/js/float +||http://360.cn/festival_zone.html +||http://360.cn/index/showjokes?callback= +||http://360.cn/int/getadurls? +||http://360.cn/popup/popinfo/ +||http://360buyimg.com/jzt/temp/js/ +||http://360doc.com^*.html?t= +||http://360kan.com/special/ +||http://360safego.com^ +||http://363uu.com/banner_list.js +||http://365kl.net/data/attachment/portal/ +||http://365rich.cn/ba.aspx +||http://36dm.club/images/00 +||http://36dm.club/images/tb +||http://36dm.club/images/top +||http://36dm.club/js/nu +||http://36dm.com/images/0 +||http://36dm.com/images/36dm +||http://36dm.com/images/l0 +||http://36dm.com/images/ny0 +||http://36dm.com/images/tb +||http://36dm.com/images/top +||http://36dm.com/js/nu +||http://36kr.com/pp/api/ap/plan? +||http://373nn.com/java/ +||http://39.net/a.htm? +||http://39.net/creative/ +||http://39.net/js/google/ +||http://39.net/PictureLib/A/f76/20170814/org_1428963.gif +||http://39.net/test/k.js +||http://391k.com/pc/gg/ +||http://3987.com/all_site/ +||http://3987.com/images/ +||http://3987.com/skins/*201 +||http://3987.com/statics/tow_skin/new_img/20 +||http://3boys2girls.com/newfile/image2010/banner_housead_ +||http://3boys2girls.com/templates/default/2013/life/160b5.js +||http://3boys2girls.com/templates/default/2013/randlinks.js +||http://3boys2girls.com^$subdocument +||http://3dmgame.com/img/a/640- +||http://3dmgame.com/index.php?m=games&c=index&a=ztad& +||http://3dmgame.com/templets/common/show_js/show_js.js +||http://3dmgame.com/templets/index/gimg/ +||http://3dmgame.com/templets/index/js/huandeng.js +||http://3dmgame.com/templets/xiazai/g +||http://3g.cn/baidualading/ +||http://3g.cn/index.php?s=Index/adv& +||http://3gmfw.cn/js/wap/ +||http://3h3.com/gmobile/gujs/ +||http://3h3.com/js/homepage.js +||http://3h3.com/js/listad.js +||http://3h3.com/js/show/ +||http://3qcc.com/js/bb.js +||http://3wk.cc/images/*.gif +||http://4-bb.com/new/xxx/ +||http://40407.com/plus/rpad/ +||http://40407.com/plus_rpad_ +||http://40wan.com/js/www2/ +||http://42cao.com/ckplay/js.jpg +||http://4399.com/baiduad/ +||http://4399.com/loadimg/iframe_ +||http://4399.com/loadimg/loading.htm +||http://4438x*.com/Runtime/js/ +||http://44hd.cc/js/ +||http://44pd.com^*xds/ +||http://47.100.0.249/js/thea +||http://47ks.com^*_ad.js +||http://484r.com/images/flash/gallery_ +||http://4ci.cc^$domain=fanjian.net +||http://4gamers.com.tw/site/api/aols/media? +||http://4gtv.tv/4gTV_OTT.json +||http://4hw.com.cn/js/common.js +||http://4k123.com/data/attachment/portal/201712/20/194208ao9pevvvg0xr0n1p.jpg +||http://4paradigm.com^$domain=sina.com.cn +||http://500xxxx.com/go.js +||http://5054399.com/js/rice/m.js +||http://5068.com/*gg +||http://5068.com/websleft.js +||http://508ii.com/banner_list.js +||http://50yxw.com/content/uploadfile/*.gif +||http://51.com/up/bdfmt/ +||http://510mall.com//image/ +||http://5118.com/8/g.aspx +||http://512ms.com/js/index_ggw_show.js +||http://51688.cc/ya/ +||http://516qq.cn/theme/dd/ +||http://5184.com/container/html/news_view_gg +||http://5188yy.com/ziyuanduilian/ +||http://51bczx.com/images1/ +||http://51bczx.com/js/float.js +||http://51credit.com/51api/creditcard.php?mod= +||http://51credit.com/js/app/end-layer.js +||http://51dns.tv/pc- +||http://51fanli.net/misc/images/invite-v4/banner.gif +||http://51gugu.com/popwin/AutoHAdShow.aspx +||http://51hanhua.com/2013/ +||http://51img1.com/v6/my/js/bdm.js +||http://51mmm.info/template/1/js/gg.js +||http://51test.net/js_new/a/right_wx.js +||http://51testing.com/templates/default/images/*.swf +||http://51testing.com/templates/default/images/jx2_a.jpg +||http://51ui.cn/999.png +||http://51ui.cn/js/500200.js +||http://51vob.com/js/hf.js +||http://51wady.com/me.php?id= +||http://51wan.com/img/js/xyadjs_ +||http://51wangdai.com/Images/bad_*0 +||http://51xuediannao.com/uploads/un/ +||http://51ztzj.com/js/you.js +||http://51ztzj.com/res/web/img/download_sign +||http://51ztzj.com/res/web/img/pic/inshow.jpg +||http://51zxw.net/news_vvvs_photos.swf +||http://520boxtv.com/images/logo_top.gif +||http://520cc.cc/300aaa.gif +||http://520xs.la/js/dianrui- +||http://521000.com/co/ +||http://523525.com/img/20170508.jpg +||http://5278.cc/index.js +||http://5278.mobi/aa/ +||http://5278bbs.com/adpost_ +||http://52beiwo.com/gg. +||http://52card.net/img/ +||http://52che.com/Inc/FooterComm_ +||http://52che.com/NewLocal/TemplateHtml/headflash1_ +||http://52dytt.net/images/bbs_btn.gif +||http://52dytt.net/img/zlgg.png +||http://52ghai.com/data/attachment/common/ac/ +||http://52ghai.com/zz/ +||http://52jingsai.com/images/huanbao +||http://52movieba.com/img/ad +||http://52pk.com/style/files/images/beitou.jpg +||http://52rd.com/Pic/Click/ +||http://52rd.com/Pic2/*_600_60 +||http://52waha.com/static/js/func_bbs.js +||http://52wmb.com/2014js/cn_ +||http://52z.com/images/52zgg/ +||http://52zpi.com/gg/ +||http://52zy.com/other/js/ +||http://5328t.com/js/jquery.js +||http://543et.com/detail/ +||http://5442.com/style/ads5442.js +||http://54new.com/da/ +||http://55.la/anonymous/banner/$domain=lxty66.com +||http://55aaee.com/detail/ +||http://56ads.com/js/main.js +||http://56img.com^*/baidu-promotion.js +||http://56img.com^*/search-engine-promotion.js +||http://56rmm.com:8888/js +||http://56shu.net/JSRmb/ +||http://570rr.com/banner_list.js +||http://576tv.com/Scripts/home.js +||http://57fx.com/img/20170508.jpg +||http://57see.com/js/ +||http://58.com/demand/content? +||http://58.com/ds/tgbrand/*.js +||http://58.com/show/ads? +||http://58cdn.com.cn/ds/tgbrand/*.js +||http://58cdn.com.cn/ds/zhuangxiu/jzad- +||http://59.36.101.209:888/link/*_280x192. +||http://591hx.com/images/0000.jpg +||http://591hx.com/js/dll.js +||http://591hx.com/js/floatbox.js +||http://591hx.com/lunbo/ +||http://591hx.com/zyrk_dy/gwjl.html +||http://5dmail.net/image/$object +||http://5dmail.net/image/ad_ +||http://5dmail.net/image/ORF_1000.gif +||http://5dmail.net/js/ +||http://5fz.cc/t/aimg/tao +||http://5icool.org/uploadfile/poster/ +||http://5ilinglei.com/gg.html +||http://5ilog.com/qq/js/jsgg.js +||http://5imx.com/image/image/ +||http://5ips.net/love/ +||http://5iwanyouxi.com/Runtime/Js/ +||http://5nj.com/js/cnzz +||http://5qqn.com/js/js/ +||http://5vdd.com/360 +||http://5vdd.com/ktt.png +||http://5vdd.com/mobile.jpg +||http://5xmp4.com/js/dd/ +||http://5y9nfpes.52pk.com^ +||http://5ydj.com/images/banner/ +||http://6.cn/coop/pub/getRand.php? +||http://600km.com/template/*/ad/ +||http://6080.tv/public/js/m/3 +||http://60cjstatic.wow-classic.com/assets/application-*.js +||http://61.10.2.86/dev/xopen.php +||http://61.147.184.18^ +||http://61.164.108.104:4275/*.gif +||http://61.164.108.184^*.gif +||http://61.164.108.184^*.swf +||http://61.235.249.195^*/Default.aspx?id= +||http://614514.com^ +||http://62422.cn/ggimg/ +||http://63007.com:82/haodxi.js +||http://63ef.com^*.js +||http://64.120.16.146/hsk_update/upload/*.gif +||http://64bobo.com/ckplay/js.jpg +||http://66.fmx.cn/js/ +||http://6620070.com/js/ +||http://6665432.com^*.gif +||http://6699fa.cn/imagestb/ +||http://6699fa.cn/js/ +||http://66kkl.com/tools/ +||http://66rd.cn/pic/*.swf +||http://66wz.com/adv2/ +||http://66wz.com/data/attachment/portal/ +||http://66wz.com/eap/ +||http://66ys.tv/d/ +||http://67.159.44.187/js/v1.js +||http://6789.com/media/images/jiao.swf +||http://678pan.com/TC/ +||http://678pan.vip/ad.js +||http://688900.net/js/ok/ +||http://69.28.57.245^ +||http://6park.com/img/*0.gif +||http://6park.com/parks/$script +||http://6park.com^$subdocument +||http://6ped2nd3yp.com^$domain=nodkey.xyz +||http://6vhao.tv/d/ +||http://70.86.24.120:8060/ +||http://7160.com/js/tiaozhuanquanju.js +||http://71bmm.com:8888/js +||http://726dy.com/726pic/ +||http://733.so/template/wap1/js/all_css.js +||http://75.125.41.29:8080/ +||http://76.73.85.179/js/v1.js +||http://76fengyun.com/70070.gif +||http://76fengyun.com/jsa/ +||http://76mao.com/52 +||http://76wmm.com:8888/js +||http://76xh.com/skin/zxf/js/*Out.js +||http://76xh.com/skin/zxf/js/ad +||http://775mz.com/js/jquery.js +||http://777g.me/cs/ +||http://77ds.vip/js/shichuang.js +||http://77file.com/jsa/ +||http://77kan.com/jquery/ +||http://7893com.com/img/*.gif +||http://78dm.net.cn/acg_201*_250 +||http://78dm.net.cn/acg_201*_650 +||http://78dm.net.cn/acg_201*_760 +||http://78dm.net.cn/acg_201*_980 +||http://78dm.net/acg_201*_1680 +||http://78dm.net/channel/test? +||http://78land.com/js/fumeiti.js +||http://797sun.com/include/js/common_footer. +||http://7av.club^$domain=11papapa.com +||http://7c.com/7c_ +||http://7caa.com/js/js/ +||http://7hcn.com//f/*.swf +||http://7jiu.com.hk/hotsearch_box.php +||http://7junshi.com/con/ad +||http://7k7k.com^*/loding.htm +||http://7kankan.com/scripts/new/indext +||http://7m.cn/analyse/include/*_ +||http://7m.com.cn/b1/live_b +||http://7mad.7m.cn^ +||http://7scs.com/Public/img/list- +||http://7xdown.com/bz/ +||http://7xdown.com/idcgg/ +||http://7xsf3h.com1.z0.glb.clouddn.com^ +||http://7xsf4r.com1.z0.glb.clouddn.com/lianzi.mp4 +||http://8*.tianya.cn^ +||http://800cdn.com/go/bqad.jpg +||http://800j.com.cn/api.php?op=itemtopbanner& +||http://800j.com.cn/index.php?m=poster& +||http://801.tianyaui.com^ +||http://8090app.com/js/right.js +||http://83133.com/api/ +||http://8585go.com/recommend +||http://8684.cn/id/ad_ +||http://8684.com/com/sys_ad_ +||http://8684.com/local/bdadv. +||http://8684.com/shuang11/ +||http://868ch.com/js/ds/index.js +||http://86uk.com/uploads/*0.gif +||http://86uk.com^$subdocument +||http://876porn.com/attachment/ +||http://880fg.com/css/*.js +||http://880sy.com/Public/js/*_gg.js +||http://88148.com/UpFile/a/2016040849191350.jpg +||http://883ads.com^*.js +||http://88448.com/images/appkai980x100.gif +||http://888dizhi.com/888/ +||http://88gs.com/agfile/ +||http://88liu.com/data/attachment/portal/ +||http://8bo.com/template/default/8bo/j/app.js +||http://8d8d.me/images/dealer.gif +||http://8jkx.com^ +||http://8maple.ru/dzcmyqv8.jpg$rewrite=abp-resource:1x1-transparent-gif,domain=8maple.ru|bilibili.to +||http://8ziyuan.com/images/infolinksad.jpg +||http://900.la/imgs/1bb725da-974f-43da-9eb9-dfdebc224949/2015-12-18/zg3wwaug.gif +||http://900.la/imgs/d829d551-1d6e-4018-b3fe-78991bbbe2d6/2016-06-27/yiwmbica.gif +||http://90bifen.net^*/c_ad_ +||http://90oo.com/tp/188jj.gif +||http://90oo.com/tp/40 +||http://90oo.com/tp/90232.jpg +||http://90oo.com/tp/90280.gif +||http://90oo.com/tp/down.gif +||http://90oo.com/tp/hg +||http://90oo.com/tp/msn.jpg +||http://90vs.com:3389/zs_img/.__ +||http://90zy.cn/data/attachment/portal/ +||http://91.com/*hezuo/ +||http://918999.com/xjgg/ +||http://91danji.com/attachments/201810/12/10/2hdyj7ut9.jpg +||http://91danji.com/js/lmt.js +||http://91dict.com/dub_banner.jpg +||http://91jbz.com/file/script/A +||http://91mjw.com/images/tga.jpg +||http://91porri.org/fans/ +||http://91wii.com/data/ad/ +||http://91xiazai.com/qunyinguwuqi.jpg +||http://91xporn.com/fans/ +||http://92dp.com/home/showga? +||http://92uq.com/Ads/ +||http://94994.com*/js/plugin/shoppingMall/ +||http://949949.com/2013/end/hot_news.js +||http://9527yy.com/images/02/9527.jpg +||http://9527yy.com/js/data2.js +||http://9553.com/otherhtml/ +||http://96.44.141.133/960x90.gif +||http://962.net/show/all.js +||http://962.net/show/all_$script +||http://962.net/show/bt.js +||http://962.net/show/cms_$script +||http://962.net/show/down_ +||http://962.net/show/index_ +||http://966266.com/a-d/ +||http://9669.cn/ipdat/duilian/ +||http://9669.cn/js/jquery.play. +||http://9669.cn/refactor/js/360_ads.js +||http://973.com/static/js/pccom.js +||http://97aa1.com/g/ +||http://97daimeng.com/taobao/ +||http://98.126.219.216/ads/ +||http://98441.com^*gg +||http://9906g.com/js/jquery.js +||http://9938.net/video/tvg/footer.js +||http://9938.net/video/tvg/hot.js +||http://999sdh.com/tu/*.js +||http://999v.me/cs +||http://99btgc01.info/uploads/*.gif +||http://99danji.com/otherhtml/ +||http://99down.com/index.php?m=poster& +||http://99jjk.com/js/floatxvideo.js +||http://99mst.com/upfiles/adv/main02.jpg +||http://99tianji.com/hack/ +||http://99youmeng.com/pc/js/*_g +||http://99youmeng.com/pc/js/g_top_ban.js +||http://99youmeng.com/pc/js/global_latest.js +||http://99zuowen.com^*/gg.js +||http://9duw.com/pic/ +||http://9ez.me/embd.php?type= +||http://9ht.com/images/1200p.gif +||http://9ifz.cc/ling/index/ +||http://9ihome.com/info/ADTopvnet/ +||http://9ist.com/others/ad/ +||http://9kjj.com/images/*.gif +||http://9ku.com/aaa/ +||http://9tour.cn/x2/images/czmf.jpg +||http://9w1an.com/special/ +||http://9wcn.com/gcld/500.gif +||http://9ye.com/Files/Editor/ad/ +||http://9zvip.net/hi5asd/ +||http://a.baomihua.com^ +||http://a.jiaodong.net/a/2013/ +||http://a.jyeoo.com/js? +||http://a.ksbbs.com/Mon_*.swf +||http://a.nowscore.com^ +||http://a.v.duowan.com/crossdomain.xml +||http://a.xywy.com^ +||http://a2.b310.com^ +||http://a2.xinhuanet.com^ +||http://a3v4.top/Picture/aiai.gif +||http://a4.yeshj.com^ +||http://a5.yeshj.com^ +||http://aaqqw.com/js/pc/ +||http://abbao.cn^*adblock +||http://abc.hkepc.com^ +||http://abc.hkepc.net^ +||http://abcache.com/tg/ +||http://abcache.com/xc/image/ +||http://abcache.com/youlaohu/ +||http://abcde.cn/info/uploadfile/poster/yun.png +||http://abdd*.com/js/abc/ +||http://abminbuy.com/images/201*.gif +||http://abminbuy.com/images/jiazai.png +||http://acfun.cn/appSpreadContents/danmuad/ +||http://acg.tv^$image,object,domain=bilibili.com +||http://acgbenzi.com^$image +||http://acgnx.se/images/adwork/ +||http://acgnz.cn/static/b.js +||http://acgnz.cn/static/i.js +||http://acgsou.com/images/ac +||http://acgsou.com/images/tb +||http://acgsou.com/images/top +||http://acgsou.com/js/nu +||http://acode.b2b.cn/JS/ +||http://acodes.b2b.cn^ +||http://act.chinatimes.com/aimg/ +||http://actoys.net/index.php?m=poster& +||http://actoys.net/js/beitou.js +||http://actoys.net/statics/js/index/ad.js +||http://acv5e.cn^ +||http://ad-api.cnblogs.com^ +||http://ad-img.diyidan.net^ +||http://ad.12306.cn/res/*.html +||http://ad.walkgame.com^ +||http://ad.wurangxian.top^ +||http://adadmin.house365.com^ +||http://adcast.fblife.com^ +||http://add.freeimg8.com^ +||http://adf.dahe.cn^ +||http://adhome.1fangchan.com^ +||http://adi*.cnool.net^ +||http://adm.265g.com^ +||http://adm.6park.com^ +||http://adm.86wan.com^ +||http://adm.beimg.com^ +||http://adm.cloud.cnfol.com^ +||http://adm.xmfish.com^ +||http://admaimai.com/inc/adv +||http://admd.housefun.com.tw^ +||http://admd.yam.com^ +||http://admin25.com/ad/ +||http://admin6.com/templates/index/default/images/100060.gif +||http://adminbuy.cn/images/ +||http://admsapi.businessweekly.com.tw^ +||http://adnetpub.yaolan.com^ +||http://adp.cnki.net^ +||http://adp.cnool.net^ +||http://adpai.thepaper.cn^ +||http://adpub.yaolan.com^ +||http://adpubs.yaolan.com^ +||http://ads-pixiv.net^ +||http://ads.sohu.com^ +||http://adsc.wasu.tv^ +||http://adsclick.yx.js.cn^ +||http://adshows.21cn.com^ +||http://adultblogtoplist.com^$domain=520cc.me +||http://adv-sv-show.focus.cn^ +||http://advideoadmin.appledaily.com.tw/ov_player/ +||http://adwordsing.com/img/1.jpg +||http://adwordsing.com/img/2.jpg +||http://affyun.com/wp-content/uploads/*-ad. +||http://affyun.com/wp-content/uploads/*/ad- +||http://affyun.com/wp-content/uploads/*/affffff.png +||http://affyun.com/wp-content/uploads/2018/10/file.gif +||http://afocus.com.cn/s? +||http://afp.chinanews.com^ +||http://afp.wasu.cn^ +||http://afpcreative.wasu.cn^ +||http://afzhan.com/JavaScript/ad_Couplet.js +||http://agoda.com/Dynamic/index/ +||http://agogo.tv/images//uploads/ad/ +||http://ah.sina.com.cn/iframe/ +||http://ahd.ruten.com.tw^ +||http://ahgame.com/js/new_ad.js +||http://ahlife.com/api.php?mod=adv& +||http://ai.bioon.com^ +||http://aibing.cc/vip/img/gou.gif +||http://aichuangfu.cn/jquery/ +||http://aifei0755.net/123/ +||http://airav.cc/AirADPic/ +||http://airav.cc/iframe/ +||http://airav.cc/static/js/*_ad.js +||http://airav.cc/Ucenter/*_Ad +||http://airouba.com/public/js/global.js +||http://aistat.cn/huodong/ +||http://aitaotu.com/style/js/aitaotu +||http://aiuw.com/images/*?from=ad +||http://aixiaofan.cn/content/uploadfile/tpl_options//Ad_list_ +||http://aixifan.com/appSpreadContents/danmuad +||http://aixifan.com/apsdk/apsdk.js +||http://aixifan.com/cms/*/w/1160/h/100 +||http://aiyidu.com/aiyidu/adver/ +||http://aiyuke.com/position_js*_*_ +||http://aizhan.com/imagesa/ +||http://ak47fuli.net/fd.js +||http://ak47fuli.net/wp-content/uploads/20*.gif +||http://alexa.cn/upfile/images/ +||http://ali213.net/images/bg_lt.jpg +||http://ali213.net/js/common/zpro/zprotxtpicurl.js +||http://ali213.net/js/data/3gcommon.js +||http://ali213.net/pubjs/SetScreen +||http://ali213.net/static/js/*_ali213tv.js +||http://ali213.net/static/js/kktv +||http://ali213.net/static/js/kv +||http://ali213.net/zt/twtk/images/tzxf.png +||http://ali213.net^*/promotion/ +||http://alibaba.com/async/b2bad. +||http://alicdn.com/ad-product/ +||http://alicdn.com/app/wxbpromotion/*/js/cpm/cpm_jq.js +||http://alicdn.com/g/mm/afp-cdn/JS/ +||http://alicdn.com/img/ibank/*_1085845541. +||http://alicdn.com/img/ibank/*_1095372465. +||http://alicdn.com/img/ibank/*_1409595492. +||http://alicdn.com/img/ibank/*_1545027917. +||http://alicdn.com/img/ibank/*_1746120392.$domain=~rmdown.com +||http://alicdn.com/img/ibank/*_1794478205. +||http://alicdn.com/img/ibank/*_1995781528. +||http://alicdn.com/img/ibank/*_2114606112. +||http://alicdn.com/img/ibank/*_256401016. +||http://alicdn.com/img/ibank/*_368737028. +||http://alicdn.com/img/ibank/*_434184744. +||http://alicdn.com/img/ibank/*_687764080. +||http://alicdn.com/img/ibank/*_755908572. +||http://alicdn.com/img/ibank/*_775661713. +||http://alicdn.com/img/ibank/*_872274545. +||http://alicdn.com/imgextra/i1/3491683832/TB2A4QaisjI8KJjSsppXXXbyVXa_ +||http://alicdn.com/kf/HTB1WS7FUwHqK1RjSZJnq6zNLpXaT.jpg +||http://alicdn.com/kf/UTB8tVxYvbPJXKJkSafS5jaqUXXac.gif +||http://alicdn.com/openad/dsp-front-booth/ +||http://alicdn.com/tfscom/*.sina. +||http://alicdn.com/tps/*-950-90. +||http://alicdn.com/tps/i3/T19NaCFKFaXXckTCTS-300-100.jpg +||http://alicdn.com^$domain=11papapa.com|1avlang.com|51dll.com|5gw.cc|5xx44.com|5xx77.com|63ef.com|7mav2.com|99a21.com|acglover.me|aotu101.com|ccxx99.com|docshelper.net|gou19.com|ip.cn|jb51.net|jitapu.com|junying.com|ppx116.com|qqtenglong.com|qyl00.com|qyl222.com|runoob.com|sodu.cc|spqi.xyz|supfree.net|thztv.cc|viidii.info|wenkuxiazai.com|xingzhiyin44.com|yeyemo8.com|yuese46.com|yyetss.com|yzz12.com|zhuankezhijia.com +||http://alicdn.com^*.gif$domain=hmog.me|vip-free.com +||http://alicdn.com^*.jpg$domain=hmog.me +||http://alitui.weibo.com^ +||http://alixixi.com/adsview/ +||http://aliyuncs.com/ad/jd-smoofit-ad.jpg +||http://aliyuncs.com/ghdb.gif +||http://aliyuncs.com/pool/20180829220557.png +||http://aliyuncs.com/pool/20180829221932.png +||http://aliyuncs.com/vss/haotu.js +||http://aliyuncs.com/wjy99re/ +||http://aliyuncs.com^$domain=5kym.com +||http://allbeauty.com.tw/GoldPrice/*_CF.php +||http://alotof.software/wp-content/uploads/EKpYHOTLpixu/ +||http://alu.cn*/aluad/ +||http://alu.cn/2011/js/categoryAdvert.js +||http://alu.cn/alutg/ +||http://alu.cn/aluTrade/Fragments/ListAdvertisementProductsHandler. +||http://alu.cn/Ashx/AjaxGuangGao. +||http://am.szhome.com^ +||http://am.zhiding.cn/www/images/$image,object,subdocument +||http://amazonaws.com.cn/static-documents/marketing/uda_banner_ +||http://amazonaws.com/s?z= +||http://amd.cn/yyets.js +||http://ammcg.imgscloud.com/toy/ +||http://ammmi.com/wp-content/uploads/2019/01/20856cf279c193.gif +||http://amradmin.5173.com^ +||http://ams.fx678.com^ +||http://angelweb.cn/Inc/AngelG.js +||http://anhuinews.com/include/ +||http://anhuinews.com/zhuyeguanli/*ad/ +||http://ankangwang.com/js/info.js +||http://ann5.net^ +||http://anqu.com/b.js +||http://antpedia.com/antad/ +||http://antpedia.com/images/advimages/ +||http://antpedia.com/include/js/view_news/l_banner_js.js +||http://antpedia.com/viewnewsrightboxtop. +||http://anywlan.com/link/*.gif +||http://ao.r7f.ifeng.com^ +||http://aolusb.com/forever/ +||http://aoshi.com/jpfans.jpg +||http://aoshi.com/jpseek.jpg +||http://aoshi.com/rbc.jpg +||http://api.bilibili.com/x/ad/ +||http://api.wudizuqiu.com/72nba +||http://api.wudizuqiu.com/bocai.js +||http://apic.in/mmd.gif +||http://app-g.39.net/NNN/ +||http://appfh.com/fhyq/ +||http://appfh.com/jiu/ +||http://appfh.com/xin/ +||http://appimg.0575bbs.com^ +||http://apple.www.letv.com^ +||http://apple886.com/subs/*.js +||http://applinzi.com^$domain=soyunpan.com +||http://apptry.easylife.tw/pub/js/common/common.js +||http://apsgo.com/go/ +||http://aqlife.com/data/attachment/portal/ +||http://aqy102.com/js/aqy/ +||http://aqy103.com/js/aqy/ +||http://ark.le.com/s?vid= +||http://ark.letv.com/s?res= +||http://ark.letv.com/s?vid= +||http://artzd.cn/img/ +||http://as.g4.ifeng.com^ +||http://ashow.pcpop.com^ +||http://asia-home.com.cn/js/yt/ytadshow +||http://aspjzy.com/jsweb/js/ +||http://aspku.com/z/ +||http://astrill.com/bnrs/ +||http://atiws.aipai.com^ +||http://atool.org/res/ads/ +||http://att.ydss.cn/attachments/portal/ +||http://aty.sohu.com/v? +||http://atyun.com/wp-content/themes/xmag/js/ad.js +||http://aus5.com/public/v1/js/ad-config. +||http://auto-online.com.tw/vendor_data/ +||http://auto.ifeng.com/uploadfile/201*.swf +||http://autohome.com.cn/api/lives/getliveroom?$domain=~live.autohome.com.cn +||http://autohome.com.cn/api/platformData/getFinanceBanner +||http://autoimg.cn/club/v1Content/images/heycar1111.jpg +||http://autoimg.cn/club/v1Content/images/young +||http://autoimg.cn/engine/root/fggxl.js +||http://autonet.com.tw/90/ +||http://av-yoyo.com/images/*.gif +||http://av01.tv/images/partners/ +||http://av30.xyz/cs/ +||http://avbaike.org/js/gg.js +||http://avcao.cc/js/p.js +||http://avcity.twavtv.com/iframe/ +||http://avdao.pw/dist/js/sc_check +||http://avjj26.com/api/?d=pc&c=advert& +||http://avonline.org/js/jquery.colorbox- +||http://avseesee.com/amandison.php +||http://avseesee.com/htmls/vlinks.html +||http://avseesee.com/twad +||http://ax.*.ifeng.com^ +||http://ax.ifeng.com^ +||http://ax1x.com^$domain=caibaojian.com|nutgeek.com +||http://axjbt.com/dbxf/pctc.js +||http://ayxz.com/images/$script +||http://ayxz.com/images/enkj_small.gif +||http://azhibo.*images/leisu.png +||http://azhibo.tv/arts/ +||http://azureedge.net/wp-content/cache/minify/904ff.js +||http://azureedge.net/wp-content/cache/minify/d2299.js +||http://azureedge.net/wp-content/uploads/*-AD0 +||http://b.tukucc.com^ +||http://b7yy.com/ad/ +||http://baby-kingdom.com/reqsads? +||http://babyhome.com.tw/public/img/640x100- +||http://backchina.com/banners/ +||http://badding.oss-ap-southeast-1.aliyuncs.com^ +||http://badmintoncn.com/cbo_gg/ +||http://badmintoncn.com/cbo_include/js/cboaaa.js +||http://baidu-taobao-av.com/js/ +||http://baidu.com/?action=getadsdata& +||http://baidu.com/adver? +||http://baidu.com/api/proxyapi?tag=adv& +||http://baidu.com/api/wikiui/guesslike? +||http://baidu.com/brands/yxtg/source/yxCoupletsAd.js +||http://baidu.com/cms/rc/adSideConfig.json? +||http://baidu.com/common/fc/ +||http://baidu.com/ecom$image,script +||http://baidu.com/event/img/zwdzjs.jpg +||http://baidu.com/fanyiapp/image/wise_banner_ +||http://baidu.com/feproxy/ad/list? +||http://baidu.com/forum/pic/item/572c11dfa9ec8a13344ba40af903918fa1ecc083.jpg +||http://baidu.com/forum/pic/item/e5dde71190ef76c6211836cc9316fdfaae51670b.jpg +||http://baidu.com/game/asset/common/performance. +||http://baidu.com/img/iknow/wenku*85. +||http://baidu.com/newspage/api/getadsdata? +||http://baidu.com/newspage/api/getimagelandafd? +||http://baidu.com/newspage/api/getmobads? +||http://baidu.com/newspage/api/getrelatednews? +||http://baidu.com/po/api/configure/show.jsonp +||http://baidu.com/rec?platform=wise&ms=1&rset=ad& +||http://baidu.com/resource/ads/ +||http://baidu.com/resource/tuisong/ +||http://baidu.com/rmaAjax/getGame? +||http://baidu.com/show/livevideo/getStreamConf? +||http://baidu.com/showbrand/banner_ +||http://baidu.com/showbrand/sponsor_ +||http://baidu.com/source/getinfo? +||http://baidu.com/static/ecom/js/wise/home/nativeAds_ +||http://baidu.com/static/html/cbjs.html +||http://baidu.com/static/yuntu-ad/ +||http://baidu.com/staticapi/hotnews_new. +||http://baidu.com/staticapi/misadlist. +||http://baidu.com/tb/cms/forum_skin/file_ +||http://baidu.com/tb/cms/game/*_banner. +||http://baidu.com/tb/cms/game/*_banner_ +||http://baidu.com/tb/static-common/swf/worldcup_main.swf +||http://baidu.com/tb/zt/$subdocument,domain=tieba.baidu.com +||http://baidu.com/tbliveact/data/xiu8/ +||http://baidu.com/tcx?infos=adbanner +||http://baidu.com/tequan/adpadmin_feed/ +||http://baidu.com/ur/scun?di=contentunion +||http://baidu.com/videoapi/?*_ad_promote& +||http://baidu.com/view/api/fc_btm? +||http://baidu.com/WerbungAjax/getBeitou? +||http://baidu.com/WerbungAjax/getTonglan? +||http://baidu.com/wkbus/fcwm/ +||http://baidu.com/xda? +||http://baidu.com/xpage/interface/get +||http://baidu.com/xpage/interface/inforservice? +||http://baidu.com/xpage/interface/sourcecontent? +||http://baidu.com/xpage/interface/structrec? +||http://baidu.com^$domain=android100.org|pos.baidu.com +||http://baidu.com^$subdocument,domain=dm5.com|dm5.hk|zzidc.com +||http://baidu.com^*/interface/ad? +||http://baidu10086zhg.com/images/1200*.gif +||http://baidud.cn/aoao/down_ +||http://baiduyunpan.net/t/ +||http://baifen.music.baidu.com^ +||http://baike.com/3g/ads/ +||http://baike.com/iframeheightforad. +||http://baishuku.com/news/$script +||http://baixing.com/bb/*/?category= +||http://baixing.com/widget/ +||http://baiyug.cn^*AD.js +||http://baizhan.net/coop/hezuo/ +||http://ballbar.cc/images/bb/ +||http://ballbar.cc/images/web +||http://banma.com/get_ad/ +||http://banma.com/js/adi.js +||http://banma.com/statics/scripts/common/dialogAdJs.js +||http://banyungong.org/images/1.gif +||http://banyungong.org/images/2.gif +||http://banyungong.org/Scripts/tc.js +||http://baofeng.com/images/yiqi +||http://baojia.steelcn.cn/images/$object +||http://baoliny.com/js/jing.js +||http://baomitu.duapp.com/js/layer.js +||http://bb1nn.com/js/i.js +||http://bb999.net/pic/n/agents/C-79.gif +||http://bbs.a9vg.com/showit/img_show.php +||http://bbs.gmbbk.com^*.js +||http://bbs.hotavxxx.com/images/201*.gif +||http://bbs.voc.com.cn/s.js +||http://bbs.xiashanet.com/js/adsview.js +||http://bbsbaba.com/js/1.js +||http://bbsbaba.com/js/2.js +||http://bcc.com.tw/imgs/adv/ +||http://bccnsoft.com/aac/ +||http://bcquan.me/front/components/get_global_ad +||http://bcquan.me/front/components/get_top_games +||http://bcquan.me/front/home/render +||http://bdimg.com/brands/yxtg/source/juhe-v2.js +||http://bdimg.com/muzhi/adwap/top-banner.jpg +||http://bdimg.com/newmap/static/common/images/nav-ad_ +||http://bdimg.com/site/games/yxtg/*.js +||http://bdimg.com/static/wkcore/widget/commerce/fengchao/ +||http://bdimg.com/static/wkview/widget/download_after_activity_new/download_after_activity_new_ +||http://bdimg.com^$domain=91fuli.xyz|diyifuli.top|idaohang.top|ifulione.com|ifulione.top|jb51.net|onedh.xyz|onefuli.top +||http://bdstatic.com/??/tb/_/diamond_mall_frs_aside_*.js +||http://bdstatic.com/img/image/su/ +||http://bdstatic.com/pc_static/detail/game_promotion/ +||http://bdstatic.com/player/t/j/AEoIJIPB.js +||http://bdstatic.com/player/t/j/Cj2XuDf6.js +||http://bdstatic.com/player/t/j/HlKYzquQ.js +||http://bdstatic.com/static/article/widget/left-promo/ +||http://bdstatic.com/static/searchresult/widget/pageDisorderTip/ +||http://bdstatic.com/tb/%E8%B4%B4%E5%90%A7- +||http://bdstatic.com/tb/cms/*%E5%BA%95%E9%83%A8 +||http://bdstatic.com/tb/cms/activity_head/file_ +||http://bdstatic.com/tb/cms/com/game/couplet_ +||http://bdstatic.com/tb/cms/com/mis/spreadad/dasense_iframe_api.js +||http://bdstatic.com/tb/cms/forum_skin/file_1442399443261.jpg +||http://bdstatic.com/tb/cms/img/tieba_index_banner960x90.png +||http://bdstatic.com/tb/cms/ngmis/file_1417585294569.jpg +||http://bdstatic.com/tb/cms/ngmis/file_1417585299140.jpg +||http://bdstatic.com/tb/mobile/sglobal/img/bannerLogo_ +||http://bdstatic.com/tb/r/image/2014-12-03/87ae5de2d732714bb6dd4ff6ab1e50ac.jpg +||http://bdstatic.com/tb/r/image/2014-12-30/fa718abe3e4418298f785734279a2e8f.jpg +||http://bdstatic.com/tb/zt/tengfei/gzdialog.jpg +||http://bdstatic.com^*/container/module/bottombanner/ +||http://bdstatic.com^*/her/static/indexher/pkg/treasure. +||http://bdstatic.com^*/js/m.js +||http://bdstatic.com^*/mip-*ad +||http://bdstatic.com^*/plugins/every_cookie_ +||http://bdstatic.com^*/QSURrcmRKV.js +||http://bdstatic.com^*/resource/tuijian/widget/guesslikesite/guesslikesite. +||http://bdstatic.com^*/static/itemrep/afdTuJiTuiJian/ +||http://bdstatic.com^*/tam-ogel/ +||http://beareyes.com.cn/2/cat/js/*_centerl +||http://beareyes.com.cn/2/cat/js/*_right +||http://beareyes.com.cn^*/ad/ +||http://beephone.com.tw/ad-middle.php +||http://beephone.com.tw/ad-yahoo.php +||http://beijing-air.com/images/a/j +||http://beiwo888.com/Runtime/js/ +||http://bejson.com/*imgs/ +||http://bejson.com/a1dpic/lay +||http://bendibao.com*/tuangou.gif +||http://bendibao.com/mo/adm_iframe.htm? +||http://bequge.com/images/content.js +||http://besc.baidustatic.com^ +||http://bestvogue.com/fans/ +||http://bf99.com/User*/Ad_ +||http://bf99.com/User/Images/bg_Blued.jpg +||http://bfpgf.com/wp-content/uploads/2015/08/360dxs.jpg +||http://bian-min.com/javascript/a/detail.js +||http://bianzhirensheng.com/img/banner.jpg +||http://bianzhirensheng.com/img/bianzhiji.jpg +||http://biaoge.tv/fa +||http://biepa.net/mm2019/sy_ +||http://biepa.net/vjs/hf.js +||http://biketo.com/d/file/p/ +||http://bilibili.com/x/web-show/res/loc?*&aid= +||http://bilibili.com/x/web-show/res/loc?pf=0&id=128 +||http://bilibili.com/x/web-show/res/loc?pf=0&id=160 +||http://bilibili.com/x/web-show/res/locs?*&pf=0&ids=124% +||http://bilibili.com/x/web-show/res/locs?*&pf=0&ids=4 +||http://bilibili.com/x/web-show/res/locs?*=getAdCallback& +||http://bilibilijj.com/image/right_bottom.gif +||http://bio-equip.com/dimg/ +||http://bio-equip.com/dimgs/ +||http://bio-equip.com/images/esco06.swf +||http://bio-equip.com/uploadimages/peiqing.gif +||http://bioon.com/xy/article/img/zhi_neng_xibao_fenxi.png +||http://biqqc.com/templates/frontend/frontend-default/js/scoll_bg.js +||http://biquge.tw/api/ +||http://bitanzi.cn/xiwang/fumeiti.js +||http://bitauto.com/js/sense*.js +||http://bitauto.com/ResourceFiles/play/play.swf +||http://bitautoimg.com/ResourceFiles/0/*.gif +||http://bitautoimg.com/ResourceFiles/0/*.swf +||http://bitscn.com/js/a2 +||http://biz.gexing.com^ +||http://biz.weibo.com^ +||http://biz37.net^*.swf?uid= +||http://bjcathay.com/s?z= +||http://bjhockey.org/public/pc/video/test.mp4 +||http://bjmama.net/a/spc_ +||http://bk9gun.vpser.net^ +||http://bkill.com/css/js/*top +||http://bkill.com/css/js/abcbl.js +||http://bkill.com/css/js/xinbkill.js +||http://bkjia.com/bkjia/js/art_rightad +||http://bkjia.com/bkjia/js/artitle.js +||http://bkjia.com/bkjia/js/banner +||http://bkjia.com/bkjia/js/subnavtop.js +||http://blog.xuite.net/_public/js/ysmad.js +||http://blogspot.com^*/s1600/drug.gif +||http://blueidea.com/js/ajs.js +||http://blz105.com/player/ad.html +||http://bmp.ali213.net/js/ +||http://bmp1.ali213.net/js/ +||http://bmp1.ali213.net/pubjs/index_sc_utf8.js +||http://bmp2.ali213.net/js/ +||http://bnextmedia.com.tw/feed/fetch.js +||http://boardx.huanqiu.com^ +||http://bonbonme.com/js/g1313166/ +||http://bonbonyou.com/js/ +||http://book118.com/Public/book118/js/picture-else/ +||http://book118.com/Public/book118/js/scz-zip/ +||http://book118.com/statics/js2/ +||http://bookben.com/js/m/wap.js +||http://books.com.tw/web/apActivityStick? +||http://bootcss.com/assets/js/and +||http://bootcss.com^$domain=91fuli.xyz|diyifuli.top|idaohang.top|ifulione.com|onedh.xyz +||http://boroboromi.com/js/tbclick.js +||http://bosw.net/js/bos/*960 +||http://bozhou.cn/templates/bozhoucn/css/2017ad/ +||http://bp.blogspot.com^$domain=avmimi.com +||http://bp.blogspot.com^*/s1600/dealer +||http://bpimg.com^$domain=ref.so +||http://brand.sogou.com/micro?yyid= +||http://bs.baidu.com/app-ads% +||http://bt121.net/ats/ +||http://btbttv.net/dd/ +||http://btbuluo.com/uploads/*.gif +||http://btcfans.com/template/comiis_lssy/ad/ +||http://btdx8.com/tmp/ +||http://btjia.com/slade.js +||http://btkat.com/style/l.js +||http://btkuai.org/js/ac +||http://btkuai.org/pingbi +||http://btn.onlylady.com^ +||http://btn.pchome.net^ +||http://btpian.com/static/*960.js +||http://btpian.com/static/wenquan.js +||http://btrenren.com/js/index960_ +||http://btschool.net/adv/ +||http://btspreadcn.com/images/zfb.jpg +||http://bttiantang8.net/templets/bttt/js/gonggao.js +||http://buimg.com^$domain=ed2000.com|kisssub.org|moe-acg.cc|ref.so +||http://bukade.com/js/*_p_ +||http://bukade.com/js/b_ +||http://bukade.com/js/tj2.js +||http://bukade.com/tpl/2/loading.html +||http://bumimi.com/money/ +||http://business.92wy.com^ +||http://buy.sina.com.tw/js/sina_popup.php +||http://buzzhand.com/images/$subdocument +||http://bvakl.ifeng.com^ +||http://bvlang.com/ad/ +||http://bxwns.com/blz/ +||http://bxwns.com/player/ad.html +||http://by8974.com^ +||http://bytravel.cn/images/cus/ +||http://bytravel.cn/images/t/usa_250_120.gif +||http://bytravel.cn/js/ad_ +||http://bytravel.cn/js/b_ +||http://bytravel.cn/js/s_ +||http://bzdiao.com/wp-content/uploads/bhOCwJfYleFC/ +||http://bzfl-1.cc^*.gif +||http://bzfl.cc/da*.gif +||http://bzfl1.cc/da*.gif +||http://c-5uwzmx78pmca09x24aiux2euavx2ekwu.g00.msn.com^ +||http://c-ctrip.com/train/201611/yqh_270-280.jpg +||http://c114.com.cn/default_inc/a/images/ +||http://c2000.cn/c2000/ +||http://c4d.cn/api.php?mod=ad&adid= +||http://c4d.cn/template/iscwo_zcool/iscwo/ad/ +||http://cacafly.net^ +||http://cachead.com^*.js +||http://caches.space/bootstrap3/js/bootstrap.js +||http://cai110.com/js/2 +||http://caikuu.com/ckimages/*_gg +||http://caikuu.com/ckimages/*_zg +||http://cailianpress.com/v1/web/ad +||http://caixin.com/s?z= +||http://camster.com/promos/ +||http://candou.com/i/2000/ +||http://canton8.com/adphoto/ +||http://cao0001.com/vip/js/ +||http://cao0002.com/vip/js/ +||http://caoads.com/images/ +||http://car.pchome.com.tw/iframe/news_iframe. +||http://carexpert.com.tw/wp-content/uploads/*800x90. +||http://carnoc.com/noticejs/ +||http://catbox.moe/bb5wdv.jpg +||http://cb.com.cn/index/ad/ +||http://cbfw.cn/gonggong/chibi/cf_ +||http://ccav1.com/wp-content/themes/BYMT/images/mengmengdeguanggao.jpg +||http://ccav1.com/wp-content/uploads/an-temp/ +||http://ccav1.com/wp-content/uploads/bMShkpexGYJd/ +||http://ccav1.me/block.js +||http://ccav5.com/static/js/floatImgAd.js +||http://ccb.com.cn/V5/images5/left0.gif +||http://ccb.com.cn/V5/images5/right0.gif +||http://cccpan.me/googg.js +||http://ccdm6.com/Scripts/ccMedia.js +||http://cckke.com/fanhao/v/ad +||http://cctime.com/UpLoadFile/201*.swf +||http://cctime.com/UpLoadFile/2012/11/7/201211733483705.gif +||http://cctv.com/Library/a2.js +||http://cctv5.name/data/js/ +||http://cctv5.name/js/*foot.js +||http://cctv567.com/b/ +||http://cdeledu.com/ADVC/$domain=~chinaacc.com|~ruidaedu.com +||http://cdn.dfile.cn/slot/ +||http://cdn.galacg.me/img/*.gif +||http://cdn.galacg.me/img/*.jpg +||http://cdn.shdsp.net/ad +||http://cdn.wuyou.ca^ +||http://cdndm.com/12/2016/$domain=1kkk.com|dm5.com +||http://cdndm.com/3/2015/$domain=1kkk.com|dm5.com +||http://cdndm.com^*/js/newtc.js +||http://cdndm5.com^*/ad_360_ +||http://cdntxt.com/m1/ +||http://cdntxt.com/node/doit. +||http://cdntxt.com/t1/ +||http://cdntxt.com/t2/ +||http://cdsoso.me/img/hongbao.jpg +||http://cdsoso.me/static/image/760x60.jpg +||http://cdyee.com/external/5070.files/ad/ +||http://centoscn.com/money/ +||http://centoscn.com/uploads/allimg/ +||http://centurys.net/promo_ +||http://cgfdjz.net/xia.js +||http://chahua.org/aimg/ +||http://chakd.com/images/xitie160x60.gif +||http://changsha.cn/front_js/site_ad/4/site_ad_284.js +||http://chaomi.cc/js/cms_ +||http://chaoxing.com^$domain=igangju.com +||http://chazidian.com/all/mobile_ +||http://chazidian.com/czd_gg.js +||http://chazidian.com/mobile_general_ +||http://chazidian.com/Statics/images/ad_ +||http://chazidian.com/Statics/xly/huorezhaosheng.png +||http://chdbits.co/pic/*.gif +||http://chddh.com/G1G/ +||http://cheers.com.tw/assets/js/fancyapps- +||http://chengdu.cn/acts/phoneqss/openCornerWin/ +||http://chengtongled.com/gg/ +||http://chengtu.com/api.php?mod=ad&adid= +||http://chexun.com/delivery? +||http://chexun.net/images/sales//cxgg/ +||http://chidir.com^ +||http://china.chemnet.com/cnbanner/ +||http://china.cn/js/common/daniel_pop/ +||http://china.cn/js/common/product_pop/ +||http://china.com.cn*/ads_js/ +||http://china.com.cn/2016ads/ +||http://china.com.cn/statics/js/henan/ad/ +||http://china.com.cn/statics/js/js_vag/ +||http://china.com/media/images/58/ +||http://china.com/media/mm/ +||http://china.com/v_test +||http://china.com/zh_cn/ads/ +||http://china.com/zh_cn/etc/gghead +||http://chinaacc.com^$domain=100ksw.com +||http://chinabidding.cn/gys.ad/ +||http://chinabyte.com/w/$subdocument +||http://chinabyte.com/w/a/201612/wangting.jpg +||http://chinacar.com.cn/Public/index/images/banner_ +||http://chinachugui.com/jsfiles/aods/ +||http://chinaconcrete.cn/ggImg/ +||http://chinafpd.net/js/2012-10/ +||http://chinaiiss.com/attachment/linkimg/201306/19/142826_845.jpg +||http://chinaiiss.com/js/float.js +||http://chinaiiss.com/js/function.ad.js +||http://chinaiiss.com/wap/js/wp.js +||http://chinairn.com/images3/*ads +||http://chinamedevice.cn/cnbanner/zjmz.gif +||http://chinanews.com.cn/ad2015/ +||http://chinanews.com/shipin/sptp.xml +||http://chinaqking.com/images/newPage/JLW.jpg +||http://chinaqking.com/images/qkw/jobApply1.jpg +||http://chinasexq.com/js/tpgg +||http://chinaso.com/iframe336/ +||http://chinataxservice.cn/static/jquery.1.1.4.min.jxh.js +||http://chinatimes.com/Scripts/bennerad. +||http://chinatruck.org/index.php?m=poster& +||http://chinauui.com/fumeiti.js +||http://chinaxinge.com/gif3/ +||http://chinaxinge.com/gif4/ +||http://chinaxinge.com/html/index_pf3.js +||http://chinaz.com/2019/0815/2019081513391118.png +||http://chinaz.com/c0g/ +||http://chinaz.com/imagead/ +||http://chinaz.com/images/210x175.jpg +||http://chinaz.com/newshome/ +||http://chinaz.com/sc_images/sc_font.js +||http://chinaz.com/tool_img/alexa_a.js +||http://chinaz.com/tools_img/ +||http://chinaz.com/zt/hanyi/images/ziyou.jpg +||http://chinaz.com/zz_img/ +||http://chinaz.com^*_g/ +||http://chinesetoday.cn/2017/ad/*.gif +||http://chiphell.com/activity/ +||http://chjtx.com/JTaro/gg.html +||http://chnmoney.com/dfile/ +||http://chongdiantou.com/wp-content/uploads/2019/02/pzb.jpg +||http://chromeba.net/wp-content/uploads/LOIFYeTnkQrC/pounqcfHWNpr.js +||http://chuantu.biz/t2/22/1450961822x1822613148.gif +||http://chuantu.biz^$domain=7mav2.com|thztv.cc +||http://chubun.com/images/banners/ +||http://chubun.com/uploads/pic/img +||http://chuiyao.com/static/jsa/ +||http://cidianwang.com/images/taobao/ +||http://cidianwang.com/inc/check.asp +||http://cidianwang.com/js/left +||http://cidianwang.com/js/right +||http://cidianwang.com/js/zdtop.js +||http://ciliba.org/Public/static/js/common-v2.js +||http://citysbs.com/chongqing/*/1920x179- +||http://citysbs.com/no/*/1190x60- +||http://citysbs.com/no/*/650x50- +||http://citysbs.com/no/*/980x +||http://citysbs.com^*/650x60- +||http://citysbs.com^*/800x90- +||http://citysbs.com^*swf +||http://cjdby.net/Public/home/images/advImg/ +||http://cjjjs.com/image/banner/ali +||http://cjjjs.com/script/ad.js +||http://cjn.cn^*/ad/ +||http://cjx111.com/ads/ +||http://ck101.com/api.php?mod=ad& +||http://ck101.com/api.php?mod=shopping +||http://ck101.com/api.php?mod=taobao& +||http://ckcdn.com/c/html5_ad/ +||http://ckck.vip/inc/ +||http://client.88tours.com^ +||http://clouddn.com/960x60.gif +||http://cloudflare.com/ajax/libs/jquery.blockUI/$domain=wantgoo.com +||http://cloudfront-666.kxcdn.com/v4.js +||http://cloudfront.net/images/K10/adv/ +||http://cmm.xmfish.com^ +||http://cms.fx678.com^ +||http://cmsjs.eastmoney.com^$subdocument +||http://cna5.cc/skins/js/ +||http://cnbeta.com/assets/images/*_670_90. +||http://cnbeta.com/js/pages/inteladv.js +||http://cnbetacdn.com/320-50. +||http://cnbetacdn.com/320x50. +||http://cnbetacdn.com/article/2017/0820/8f2e0217733f842.jpg +||http://cnbetacdn.com/banner +||http://cnbetacdn.com/frontend/201707/be63731d1650680_285x360.jpg +||http://cnbetacdn.com/frontend/250x200.png +||http://cnbetacdn.com/frontend/vipics/yijian +||http://cnblogs.com/blog/36987/201509/36987-20150913115252950-1736386654.jpg +||http://cnblogs.com/group/C1*-T2 +||http://cnblogs.com/units/ +||http://cndzys.com/huanlian/ +||http://cnfol.com/f=ud/Js/Ad +||http://cnfol.com/index_new.php?id= +||http://cnfol.com/pc/Js/as/ +||http://cnfol.com/tui/ +||http://cngold.org/cngold_float +||http://cngoldres.com/advservice/ +||http://cngoldres.com/libs/jtams/ +||http://cngoldres.com/web/js/*_advs +||http://cngsf.com/baidu.htm +||http://cngsf.com/images/336_280.gif +||http://cnjxol.com/include/2011/index/js/index.js +||http://cnjxol.com/news/*.swf +||http://cnkang.com/showcodejsonp? +||http://cnmo-img.com.cn/oddjs/ +||http://cnmoad.com/wp-content/uploads/*_banner. +||http://cnmysoft.com/images/logo02.png +||http://cnool.net/AdShowCache? +||http://cnpingpang.com/banner/ +||http://cnpingpang.com/bbs/UploadFile/2014-11/20141113852238131.jpg +||http://cnpingpang.com/themes/v1.0/images/temp/ad/ +||http://cnpingpang.com/uploadfile/TTW.gif +||http://cnplugins.com/templets/cnplugins/pushbox1.js +||http://cnr.cn/cnrxwph/iframe/tpdy/ +||http://cnr.cn/s?z= +||http://cnscg.com/api.php?mod=ad& +||http://cnscg.com/template/default/style/*960x +||http://cnscg.com/template/default/style/t6/*x*1 +||http://cnscg.com/template/default/style/t6/other/ +||http://cnstock.com/img/news/ad- +||http://cntv.cn/hezuo/ +||http://cntvboxnow.com//ads_ +||http://cnwnews.com/ad-nrtop/ +||http://cnwnews.com/gg +||http://cnwnews.com/images/kgt +||http://cnwnews.com/templets/images/artpangu.gif +||http://cnwnews.com/templets/images/jccf +||http://cnwnews.com/zhenrui/ad/ +||http://cnyw.net/autoloader.js +||http://cnzol.com/template/style/images/lcdl.js +||http://cnzz.cn/badu.gif +||http://cnzz.cn/ssp_ +||http://cnzzla.com/public/scripts/money.js +||http://cocoawu.b0.upaiyun.com^ +||http://codeceo.com/images/*/beiqia +||http://codejie.net/img/xiandai.gif +||http://codejie.net/wp-content/uploads/*/1120-50. +||http://codezp.org/uploads/ +||http://comefromchina.com/images/128bestbuy +||http://content.xilu.com^$object +||http://cool-de.com/api.php?mod=js&bid= +||http://coolaler.com/index_ads/ +||http://coolpc.com.tw/img/topweb.html +||http://count.ddooo.com^ +||http://cp.eastmoney.com/wap/*.js +||http://cp.ifeng.com/iframe/getiframe +||http://cp121.com/js2/ +||http://cpbl-elta.cdn.hinet.net/web/images/ad_ +||http://cpd.com.cn/template/*.swf +||http://cpm.cm.kankan.com^ +||http://cpnn.com.cn/cpnn2015g/neiyegg.gif +||http://cpnn.com.cn/cpnn_images/diangong.gif +||http://cpplay.com/inc/ +||http://cq.cm/temp/201 +||http://cqvip.com/viewserver/ViewAD +||http://cr173.com/js/ +||http://cr173.com/show/ +||http://cr173.com/skina/ +||http://cr173.com/skinb/ +||http://creaders.net*/ad_func.js +||http://crvtrk.com^$domain=xiuren.org +||http://csdn.net/ggmm/ +||http://csdn.net/msg.popup.js +||http://csdnimg.cn/check-adblock/ +||http://csdnimg.cn/public/common/indexSuperise/1.1.1/indexSuperise.js +||http://cssqt.com/a/images/indexsd.gif +||http://cssqt.com/a/images/right +||http://ctags.cn/9/j2.js +||http://ctanet.cn/aqq/JS/ +||http://ctfile.com/iz.php? +||http://ctrip.com/amd/*960x90. +||http://cww.net.cn/include/show.asp?boardID= +||http://cww.net.cn/js/adspaces.js +||http://cww.net.cn/js/urdev.js +||http://cww.net.cn/UpLoadFile/*.swf +||http://cxacg.com/data/attachment/portal/201904/27/142830erc3qizlarlsy3uu.jpg +||http://cy1234.space^*sifang/ +||http://cztv.com/201506/02/124d35111e8f180c96f99acbcbdf5de6.jpg +||http://d-test.39.net^ +||http://d.pixiv.org/show?zone_id= +||http://d0.xcar.com.cn^ +||http://d1.3158.cn^ +||http://d1.sina.com.cn^$object,script +||http://d13jhr4vol1304.cloudfront.net^ +||http://d2.sina.com.cn^$object,script +||http://d2epwh5sm67a3s.cloudfront.net/assets/*vpn +||http://d3.sina.com.cn^$object,script +||http://d4.sina.com.cn^$object,script +||http://d5.sina.com.cn^$image,domain=~www.sina.com.cn +||http://d5.sina.com.cn^$object,script +||http://d7w.net/static/d7wad/ +||http://da-fan-shu.cn/images/kuaijie.jpg +||http://da.duowan.com/loc/ +||http://da.mgtv.com^ +||http://dabaoku.com^$object,script,subdocument +||http://dabin69.com/data/attachment/portal/ +||http://dagou2018.com/js/item +||http://dailynews.sina.com/gb/ads/ +||http://dajiadu8.com/17.js +||http://dajiazhao.com/login/reg.js +||http://dandanzan.com/res/*.js +||http://dangdang.com/adall. +||http://danji6.com/style/style2016/js/gaosuxiazai.js +||http://danji6.com/xingg/ +||http://danlan.org/KFC/ +||http://danmeixsw.com/js/mwap.js +||http://dataguru.cn/site_ +||http://dataoke.com/api/component/code-info/v1? +||http://daweijita.com/201*430. +||http://daweijita.com/201*ad. +||http://daweijita.com/2014/08/ad_head +||http://daweijita.com/2015/10/shopad +||http://dayanzai.me/Computer.png +||http://dburl.xyz/js/ +||http://dbw.cn/eap/js/db/dbwad_ +||http://dbw.cn/eap/js/hl/hlj_ad +||http://dd3200.com/js/favshare.js +||http://ddrk.me/ad +||http://ddshu.net/a_d_code/ +||http://de.as.pptv.com^ +||http://dealmoon.com/hotdeals/hotdeals_scroller.php +||http://dealmoon.com/upload/dealmoon_app.jpg +||http://debugease.com/static/images/qcloud/ +||http://debugease.com/static/js/show.js +||http://deliver.ifeng.com^ +||http://delivery-pc.wasu.cn/d/frontJs/3.0$rewrite=abp-resource:blank-js,domain=wasu.cn +||http://delivery-pc.wasu.cn/d/js/ +||http://delivery.playallvideos.com^ +||http://delivery.wasu.cn^ +||http://demaxiya.com/v4/dd/ +||http://deyangs.com/img/ +||http://dfcfw.com/EMFloatFrame/ +||http://dfcfw.com/js/*/emfloatmedia_ +||http://dfcfw.com/js/tg/rightAd_v2.js +||http://dfcfw.com/public/js/left.js +||http://dftoutiao.com/dfpcitv/pcitv?jsonpcallback= +||http://dftoutiao.com/dfpcitv/pcitv?type= +||http://dhzw.org/m- +||http://dianmi.net/tj/tj1.js +||http://dianyingbar.com/api/get.json +||http://diaoyu123.com/cpro/show.js +||http://dichan.com.au/newhouse/pinnacle/images/bcastr3.swf +||http://dig.chouti.com/advert +||http://dilidili.wang/ad/ +||http://dilidili.wang/shouye/ +||http://dilidili.wang/uploads/allimg/170720/6_1500209066.jpg +||http://dingniugu.com/newskin/js/backTop.js +||http://dingniugu.com/newskin/js/public.php +||http://dio66.net/images/*.gif +||http://dio88.net/images/*.gif +||http://dio889.net/images/*.gif +||http://dio99.com/images/*.gif +||http://dioimg.net/images/*.gif +||http://dioimg.net^$domain=18board.com|18board.net|18board.org|18p2p.com +||http://dioimg.net^*.gif$domain=javccc.net +||http://diopic.net^$domain=18board.com|18p2p.com +||http://discuss.com.hk/dfp_forum.php?au=Discuss_Web_ +||http://discuss.com.hk/oath/ +||http://discuss.com.hk^*_prod.html +||http://divcss5.com*/ibeifeng/ +||http://divcss5.com*/liping/ +||http://diyifanwen.com/siteimages/jiqiren +||http://diyijjj.com/data/content +||http://dj155.com/gg/ +||http://dj97.com/js/list_right_ +||http://djicdn.com/uploads/ad_image_file/ +||http://djkk.com/ak/ +||http://djs.baomihua.com^ +||http://djwma.com^*960.gif +||http://dm530.net/js/newjs/ +||http://dm530.net/pic/fgr/*.js +||http://dmzj.com/js/ad/ +||http://dmzj.com/js/m_BtmApp.js +||http://dn-geekpark-new.qbox.me/uploads/ad/ +||http://dnvod.tv/listprovider/ajaxlist.async.ashx +||http://dnwx.com*/ad$image +||http://dnwx.com/pic/*_978x60. +||http://dnwx.com/pic_ad/ +||http://dnwyb.tv/a/$xmlhttprequest +||http://docin.com/docin_adv/ +||http://docin.com/jsp_cn/ad/ +||http://doczj.com/js/common.js +||http://doko.moe^$domain=pantsu.cat +||http://dol.tianya.cn/s?z=tianya& +||http://dongfangtai.com/2018/ +||http://dospy.com/hezuo/ +||http://dota2.uuu9.com^$subdocument +||http://doub.io/wp-content/themes/yusi1.0/js/jquery.min.js +||http://doub.io/wp-content/uploads/ +||http://doub.pw/abc/ +||http://doub.pw/ss-jc23/ +||http://douban.com/?unit=dale_movie_trailer_after_play& +||http://douban.com/view/dale-online/dale_ad +||http://douban.com^*/fm_bgad.js +||http://doubanio.com^*/js/ad. +||http://douguo.net/upload/post/d/ +||http://doupapa.com/js/swf/ +||http://doutula.com/img/upupoo/ +||http://douyu*/upload/signs/*.swf +||http://douyu.com/japi/sign/web/getinfo +||http://douyu.com/member/gamegift/gameList/ +||http://douyucdn.cn/common/share/play.swf?room_id=30$domain=sgamer.com +||http://douyucdn.cn/common/simplayer/assets/effect/cpsUI_ +||http://douyucdn.cn/dyfelocal/act/*/ad.png +||http://douyucdn.cn/japi/sign/web/getinfo +||http://down.admin5.com/z/ +||http://down12.com^*/bdvert.js +||http://downbank.cn/js/g.js +||http://downhot.com/Res/js/arc.js +||http://downhot.com/Res/js/main.js +||http://download.game.yy.com/crossdomain.xml +||http://download.game.yy.com/resource/fodder/*.flv +||http://downxia.com/dgjs/download.js +||http://downyi.com/tg/ +||http://dpp2019.com/js/swf/ +||http://dqzsteel.com/Website/Image/Index/ytgg.gif +||http://dragon-guide.net/pic001/hezuo/ +||http://dragon-guide.net/pic001/pic/shangcheng/ +||http://dshuj.com/ads/ +||http://dsp.ali213.net^ +||http://duanwenxue.com/shuang11/ +||http://duapp.com^$domain=bjmama.com|ccav1.com|gzmama.com|sexcar.cn +||http://duba.com/baidu +||http://duba.com/dhads?id= +||http://duba.com/static/*/iframe/baidu_ +||http://duba.com/static/*/images/*.swf +||http://duba.com/static/*/js/home/ad/ad. +||http://duba.com/static/images/public/20181110/14661d41048e09e2d523dd2e5f0c6310.png +||http://dufile.com/jsa/ +||http://duote.com/soft/ads/baiduAd.html +||http://duouoo.com/vss/right-ssd.js +||http://duouoo.com/vss/wz +||http://dup.baidustatic.com^ +||http://dvs.china.com^ +||http://dvser.china.com^ +||http://dwstatic.com^*/p/livetip/ +||http://dxg*.com/img/A*.js +||http://dxg*.top/img/A*.js +||http://dy2018.com/js/tj.js +||http://dy2018.com/js17/ +||http://dy2018.com/jsdd/ +||http://dydab.com^ +||http://dyguo.com/pc/*0.js +||http://dyguo.com/pc/nr336.js +||http://dyjqd.com/images/js/dyjqd.js +||http://dyncdn.me/static/20/js/expla +||http://dyncdn2.com/static/20/js/expla +||http://dysfz.tv/js/adtop_ +||http://dytt8.net/js1/ +||http://dytt8.net/js2/ +||http://dytt8.net/jsd/app.js +||http://dz19.net/addimg/ +||http://dzwww.com/data/js/asp_$script +||http://dzwww.com/images/ad_down.js +||http://dzwww.com/k.js +||http://e.changyan.sohu.com/dataService/getData? +||http://e.hnr.cn/choose/view/ +||http://e.yycqc.com^ +||http://e0514.com/data/attachment/portal/ +||http://e0514.com/gglist/ +||http://e0575.cn/js/corea/jquery.popup.js +||http://e0575.com/attachment/image/ +||http://e0575.com/index.php +||http://e10000.cn/Images/link_td01.gif +||http://e23.cn/js/aaa.js +||http://e3ol.com/inc/ +||http://e9377f.com^$rewrite=abp-resource:blank-mp3,domain=eastday.com +||http://eap.big5.enorth.com.cn^ +||http://eap.enorth.com.cn^ +||http://easou.com/brandImage/ad/ +||http://easou.com/online/banner/ +||http://eastday.com/assets/js/detail_ +||http://eastday.com/assets/js/dftongjiad.js +||http://eastday.com/assets/js/resources/detail/ +||http://eastday.com/assets/js/resources/new_detail_ +||http://eastday.com/gg_channel.html +||http://eastday.com/iframe/ +||http://eastday.com/jrdftt/static/javascript/ad/configDouble11. +||http://eastday.com/jrdftt/static/javascript/ad/ECommerceAd. +||http://eastday.com/jscss/v4/js/lib/DSPload.js +||http://eastday.com/jsfile/kuaiya_ +||http://eastday.com/k.js +||http://eastday.com/mmad. +||http://eastday.com^$subdocument,~third-party +||http://eastmoney.com/banner/ +||http://eastmoney.com/js/headbiggg_ +||http://eastmoney.com/js/news_fixed_ +||http://eastmoney.com/trade/hqb_hq.html +||http://eat-travel.com.tw^$third-party +||http://ebiotrade.com/jslibrary/js +||http://ebiotrade.com/netother/sy2013.ashx?type=quanping +||http://ebiotrade.com/newsf/js/inpic.js +||http://ebiotrade.com/newsf/js/news_top_banner.js +||http://ebiotrade.com/web_images/*.swf +||http://ebioweb.com/jslibrary/js +||http://ebp.renren.com^ +||http://ebrun.com/jfile/position/js/*.js +||http://ecma.bdimg.com^ +||http://ecmb.bdimg.com^ +||http://edayday.com/img/ad +||http://educity.cn/self_text/text_disp.aspx?id= +||http://eduuu.com/website/public_js/pc_aso.js +||http://ee021.com/Runtime/js/ +||http://eepw.com.cn/pub/js/TopFullScreen.js +||http://eeyy.cc/style/yxj.js +||http://eeyy.com/otherhtml/js/ad650.js +||http://eeyy.com/templates/js/other/yxj +||http://eeyy.com/templates/js/popback.js +||http://eeyy.com/uploadfile/img/beitou +||http://elecfans.com/baidu_m.html +||http://elecfans.com/images2012/pcb.gif +||http://elecfans.com/skin-*/images/banner_ad +||http://elecfans.com/skin-*ad_ +||http://emoney.cn/www/officalWebStatic/js/slideAd.js +||http://emu999.net/nds/ +||http://emule.org.cn/km.gif +||http://emule.org.cn/templets/default/ +||http://en8848.com.cn/js/ad +||http://en8848.com.cn/js/content. +||http://en8848.com.cn/js/lianxi.js +||http://enet.com.cn/eschool/includes/gdtup/tu6/slide.js +||http://enet.com.cn/mem_str_zoneid= +||http://enread.com/img/185-50.gif +||http://enshi.cn/userfiles/esrb/$object,subdocument +||http://ent.mb.baidu.com/webgamepage/GameAPP/ +||http://entry.baidu.com/rp/home? +||http://eol.cn/e_busi/ +||http://eol.cn/e_images/gk/jnc +||http://eol.cn/images/*1000- +||http://eol.cn/images/ed/gaokao/*-85.jpg +||http://eol.cn/js/eol/ +||http://eol.cn/js/global/jQuery_ads.js +||http://epinv.com/wp-content/themes/ep/js/single.js +||http://epinv.com/wp-content/themes/ep/tu/*250.js +||http://epinv.com/wp-content/themes/ep/tu/*300.js +||http://epinv.com/wp-content/themes/ep/tu/epzz.js +||http://epinv.com/wp-content/themes/ep/tu/hkw.jpg +||http://epinv.com/wp-content/themes/ep/tu/yinshu.gif +||http://eprice.com.tw/img/dis/file/ +||http://eprice.com.tw/img/tw_m/ad/ +||http://eprice.com.tw/js/swfobject-2.3.js +||http://eqq9.com/js/js/ +||http://erebor.douban.com^ +||http://ermao.sikabeila.com^ +||http://eryamishu.com/zb_system/image/logo/64060.png +||http://eryamishu.com/zb_users/upload/2016/04/201604061459908985564295.jpg +||http://es3984.review/02_cn_ad/ +||http://etadult.com*/images/20 +||http://etest8.com/js/158/infojs/ +||http://etf88.com/jjb/*_ad$script +||http://etf88.com/swf/ +||http://etfunhome.com/images/kk.gif +||http://etnet.com.hk/ad2014/ +||http://etnet.com.hk/www/tc/stocks/ads/ +||http://ettoday.net/banners/ +||http://ettoday.net/events/ad-tab/ +||http://ettoday.net/funfuntrip/ +||http://ettoday.net/style/hot-trip/js/travel-action.js +||http://ettoday.net^*/ad/ +||http://everyonepiano.cn/Public/*0x +||http://eyusky.net/weixin-img/zhifubao.jpg +||http://eyuyao.com/yyad/ +||http://eyy5.cn/data/attachment/freeaddon_banner/ +||http://ezprice.com.tw/ezysm/ +||http://ezprice.com.tw/js/*_ysm_ +||http://f8dy.tv/template/m1938/js/b +||http://f8dy.tv/template/m1938/js/foot.js +||http://fabuye.vip/zhuanfa/ +||http://faiusr.com/2/ABUIABACGAAg_dCW0gUo7NqNJjDgATh3.jpg +||http://faiusr.com/3/ABUIABADGAAgkIXb6gUo-L_AwwcwsAk4Wg.gif +||http://faloo.com/ou/site/ +||http://familydoctor.com.cn/aiframe/ +||http://familydoctor.com.cn/c/a/000/ggw_ +||http://fang.com/afp/door/ +||http://fang.com/house/ajaxrequest/adverTlGet. +||http://fang99.com^*/advjs/ +||http://fangying.tv/assets/xzy- +||http://fanhaobao.net/wp-content/themes/xiu/js/single.js +||http://fanhaodang.org/Runtime/js/ +||http://fanquanwang.com/uploads/ad/ +||http://fans.*.space/fans/*.php +||http://fantasy.tv/img/adImg +||http://fantizi5.com/js/ad*.js +||http://fantizi5.com/js/baiduad +||http://faquanya.com/weixin/ +||http://fastadmin.net/uploads/store/aliyun- +||http://faxingw.cn/js/*0 +||http://faxingw.cn/js/*ad +||http://faxingw.cn/js/detailgcbox.js +||http://fbcinema.com/wp-content/uploads/2017/12/138bet +||http://fc2fan.net/js/check_focus.js +||http://fcai.com/ifengIndex.html +||http://fd173.cn^$third-party +||http://fdc.com.cn/cms/js/bbs/bbstonglan.js +||http://fdc.com.cn/cms/js/bbs/dl.js +||http://fdc.com.cn/cms/js/home_js/*_move_ +||http://fdc.com.cn^*adv +||http://fdc.my0511.com^$script +||http://feesoon.com/js/cnzz_ +||http://feiwan.net/zqcom_style/ad/ +||http://feizl.com/images/smdd/ +||http://fenglan.oss-cn-shenzhen.aliyuncs.com^*.gif +||http://fenxiangdashi.com/img/banner/ +||http://fenxiangdashi.com/Res/js/detail_ +||http://ff.meikanguo.com^ +||http://fff1208.supfree.net/stat.asp +||http://ffsky.net^$domain=moe-acg.cc +||http://fh21.com.cn/partners/ +||http://file.cloud.sogou.com/*/superzone/ +||http://file.ws.126.net/house/nj/*.swf +||http://files.jb51.net/image/ +||http://firefoxchina.cn/2014/*_foxphone.png +||http://firefoxchina.cn/res/js/fchina_video-min.js +||http://firefoxchina.cn/v2/json/floatBanner.json +||http://firefoxchina.cn^*49560. +||http://firefoxchina.cn^*_couplet +||http://firefoxchina.cn^*_topbanner +||http://fj.sina.com.cn/iframe/63/ +||http://fjisu.com/js/wap-tg.js +||http://fjlqqc.com/common/api/v1.0/slot-code/ +||http://fjlyfdc.com.cn/hxhad/ +||http://flash.mycar168.com/data/js/ +||http://flash8.net/flash8_a_d_s/ +||http://flightclub.cn/WidgetHot? +||http://flighty.cn/images/ +||http://flxdaily.com/wp-content/plugins/flxdaily/script.js +||http://flyertea.com/plugin.php?id=he_topad +||http://flyoffline.com/images/miaoshou- +||http://flyoffline.com/images/ss- +||http://flyoffline.com/images/vpn- +||http://fobshanghai.com/bbsad/ +||http://fontke.com/custom/ +||http://foodmate.net/file/script/A +||http://forimg.com/js/content/ +||http://forum.51nb.com/images/ +||http://fpdisplay.com/templates/default/js/palyflash_ +||http://fpdisplay.com/upload/n_ad/ +||http://fqsousou.com/statics/pc/img/wx1.png +||http://fragment.firefoxchina.cn/html/ +||http://free9.net/images/pic/dhc2013.gif +||http://free9.net/myc/myc.js +||http://freehao123.com/wp-content/uploads/2017/05/mmkdm.png +||http://freep.cn/zhuangxiu_ +||http://front-adsnew.babyhome.com.tw/jwplayer/jwplayer.js +||http://fsehome.com/images/ad_tan.js +||http://ft.com/a.html +||http://ftchinese.com/a.html +||http://ftchinese.com/m/marketing/ +||http://ftimg.net/s?z= +||http://fuimg.com/1/66795b80a792fb96.png +||http://fuimg.com^$domain=678cn.com +||http://fuli.us/ad.js +||http://fuli69.com/wp-content/uploads/sug +||http://fulibac.com/images/upload/ad/ +||http://fulibl.com/wp-content/uploads/2016/06/320-230.jpg +||http://fulishequ.com/abc/images/ +||http://fulisuo1.com^*.gif +||http://fulisuo7.top^*.gif +||http://fullyu.com/js-lib/jquery.modal. +||http://fun.ynet.com^ +||http://fun8.us^$domain=cartomad.com|cartonmad.com|cartoomad.com|cartoonad.com|cartoonmad.com|comicnad.com|conicsmad.com +||http://func.tw/image/func2.png +||http://funshipin.com/v1/js/footerhongbao.js +||http://fx110.com/Pub/Ghz/GetModel +||http://fx110.com/Scripts/1.0.0/gulpmin/Ghz/ +||http://fx110.com/Styles/1.0.0/dist/Ghz/MatrixAds. +||http://fx112.com/upload/15*.gif +||http://fx114.net/images/bangbaotao.jpg +||http://fx168.com/am.js +||http://fxxz.com/skin/know/ +||http://fzbm.com/bbs/static/js/bma.js +||http://fzlol.com/images/$script +||http://fzpchome.com/txt/$script +||http://g-years.com/tb/ +||http://g.163.com/*&affiliate= +||http://g.chuiyao.com^ +||http://g.cnzz.cn/Static/js/*- +||http://g.hsw.cn^ +||http://g.jinti.com/f/a/a +||http://g.lznews.cn^ +||http://g.mnw.cn^ +||http://g.ousns.net^ +||http://g.rexian.net.cn/js/ +||http://g2.ousns.net^ +||http://g8f.ifeng.com^ +||http://galacg.me/wp-content/uploads/*750x +||http://game.466.com^$third-party +||http://game333.net/aainset/ +||http://gameapps.hk/images/banners/ +||http://gameapps.hk/images/d/20170516/e334d088b4440fb9.png +||http://gameapps.hk/js/content_ +||http://gameapps.hk/js/determine_page_ +||http://gamefy.cn/cookiead.php +||http://gamersky.com/bgpic/ +||http://gamersky.com/common/tg/ +||http://gamersky.com/g/gamerskyflash.js +||http://gamersky.com/gsinc/content_bg.js +||http://gamersky.com/img/ +||http://gamersky.com/piaofu*/ +||http://gamersky.com^*.htm$subdocument +||http://games.ifeng.com^$subdocument +||http://games.ifeng.com^*.shtml?v= +||http://gamme.com.tw/event/ghost2019/pc/index.html +||http://gamme.com.tw/ga/ +||http://gamme.com.tw/uploads/*?2 +||http://ganji.com/content.php +||http://ganjistatic1.com^*-banner- +||http://ganjistatic1.com^*/adm/ +||http://ganjituiguang.ganji.com^ +||http://gansudaily.com.cn/2017zt/images/*gg +||http://gaofen.com/source/plugin/gaofen_ad/ +||http://gaoqing.la/wp-content/uploads/*/gg +||http://gaoqing.la/wp-content/uploads/2019/05/ed5e6a1dly1fx2qut6mgoj20r907h0xh.jpg +||http://gaoqingyy.net/baidu.js +||http://gaoqingyy.net/hengfutupian/ +||http://gasaq.com/public/flash/ +||http://gavbus*.com/assets/common/js/ad.js +||http://gavbus*.com/assets/common/js/admenu.js +||http://gcxa.cn/a/gb.gif +||http://gd.ct10000.com/js/ecssstat.js +||http://gd.sina.com.cn/iframe/22/ +||http://gd.vodtw.com^ +||http://gdmm.com*/mybt/ +||http://gdmm.com/api.php?mod=js&bid=2111 +||http://gdmm.com/images/leftbottom.png +||http://geekpark.net/api/v1/ads +||http://geilwx.com/read/ad +||http://gemgsx.com/js/ +||http://getitfree.cn/wp-content/plugins/anti- +||http://getscriptjs.com/p.js +||http://gexing.com/api/api_get_tankuang.php? +||http://gexing.com/i/*960x +||http://gexing.com/j/??zmask.js,easing.js? +||http://gezila.com/v3/ad/ +||http://gfan.com/plugin.php?id=gfan_viewpic:gfan_adView +||http://gfan.com/press/ +||http://gg-led.com/uploadFile/uploadCompanyLogo/*.gif +||http://gg.*.com/tonglan/tonglan.js +||http://gg.0598yu.com^ +||http://gg.4kdy.net^ +||http://gg.blueidea.com^ +||http://gg.cs090.com^ +||http://gg.g9mi6.com^ +||http://gg.gao7.com^ +||http://gg.getbs.com^ +||http://gg.gsdlcn.com^ +||http://gg.gw032.com^ +||http://gg.kugou.com^ +||http://gg.sonhoo.com^ +||http://gg.uuu9.com^ +||http://gg.yxdown.com^ +||http://gg163.net/20*ad/ +||http://gg163.net/js/163bbsad.js +||http://gg163.net/js/gg163ad.js +||http://gg86.pinggu.org^ +||http://ggcode.2345.com^ +||http://ggg*.com/static/js/common.js +||http://ggg.zj.com^ +||http://ggtp-1255424916.cos.ap-chengdu.myqcloud.com^ +||http://ggw.gusuwang.com^ +||http://ggw.watertu.com^ +||http://ghjie.com/images/2012/images/bg +||http://ghjie.com/JS/youcegg.js +||http://ghoffice.com/bbs/js/float.js +||http://ghost580.com/js/nei4.js +||http://gk99.com/static/js/a-d-sys.js +||http://glzy8.com/img/ceo/js.js +||http://gmbbku.com/img/top.js +||http://gmbbku.com/jj/ +||http://gmbuluo.com/js/ +||http://go.hangzhou.com.cn^ +||http://go2av.com/for_ad/ +||http://go2av.com/js/AM.js +||http://go2tutor.com/lifebox.asp +||http://gogorenti.wang/js/m_cp +||http://golangtc.com/bar/ +||http://gold678.com/news/js/layer/layer.js +||http://gome.com.cn/flight? +||http://gongfupian.com/js/wuxiatui/ +||http://gongfupian.com/template/new2014/gftui/ +||http://gongshe99.com/d/js/gongshe/gsw +||http://goodgupiao.com/skins/default/js/backTop.js +||http://goproxy.cc/api.php +||http://goto.www.iciba.com^ +||http://gotourl.xyz^ +||http://gougou2018.com/js/item +||http://gouhb.com/skin/jww/images/20141029114*.png +||http://goupu.org/1files/*.gif +||http://goupu.org/1files/*.htm +||http://goupu.org/1files/*.swf +||http://goupu.org/1files/guidebar/ +||http://gp.jstv.com^ +||http://gpcxw.com/file/js/img/*.gif +||http://gpsuu.com/yhj.gif +||http://gpxz.com/js2/ +||http://gq.com.tw/event/$subdocument +||http://greatfire.org/widget +||http://greenhouseglobal.cn^ +||http://greenxf.com/js/2019/ +||http://greenxiazai.com/d/js/v/ +||http://gt.duowan.com^ +||http://gt.yy.com^ +||http://gter.net/index.html?c=foot_js&type=footer.js +||http://gtimg.com/201*/dsp/ +||http://gtimg.com/adxcdn/ +||http://gtimg.com/auto/js/autoproject/autoarticle/low-price-car_ +||http://gtimg.com/comic/pics/hv1/29/74/1631/106074674.jpg +||http://gtimg.com/comic/richmedia/ +||http://gtimg.com/edu/0727abroad/duilian +||http://gtimg.com/edu/pics/hv1/115/26/2077/135063670.png +||http://gtimg.com/ent/final2009/dp_tebu_logo.png +||http://gtimg.com/news/news/2014ad/ +||http://gtimg.com/newsapp_bt/0/1846661534/641 +||http://gtimg.com/newsapp_ls/0/27161189/0 +||http://gtimg.com/pingjs/ext2020/dc/module/GJ/ +||http://gtimg.com/qqlive/ +||http://gtimg.com/sports/*.swf +||http://gtimg.com/sports/000/ +||http://gtimg.com/sports/000_AD/ +||http://gtimg.com/sports/images/30090.jpg +||http://gtimg.com/sports/qingyang/ +||http://gtimg.com/v/pics/hv1/88/83/1734/112774603.jpg +||http://gtimg.com/www/mobi/js/app-bar- +||http://gtimg.com/www/test/300_250.swf +||http://gtimg.com^*/ad/ +||http://gtimg.com^*/adv/ +||http://guang.lesports.com^ +||http://guanggaolianmeng.net/plushuan/ad_js.php?aid= +||http://gucheng.com/2016/ggimg/ +||http://guess.h.qhimg.com^ +||http://guhai.com.cn/AD/ +||http://guifun.com/psptool/ad/ +||http://guitarchina.com/1/*.gif +||http://gum.xbooks.to/js/pc/pc_*_ +||http://gum.xbooks.to/js/pc/pc_tsuibi +||http://guokr.com/apis/flowingboard/flowingboard.json?name=post_sidepic +||http://guokr.com/baidu-cbjs/ +||http://guqu.net/Cooperate/ +||http://gusuwang.com/api/gsw_ +||http://gusuwang.com/ymsextweb/fullggw/ +||http://gusuwang.com/ymsextweb/images/index/ist_t.jpg +||http://gusuwang.com/ymsextweb/javascript/gs +||http://guyizhou.cn/temp/top_banner_ +||http://gvm.com.tw/scripts/jquery.colorbox- +||http://gwbnsh.net.cn/hd/unicom/ad.html +||http://gxnews.com.cn/clientscript/index_duilian_ +||http://gxnews.com.cn/upload/index/*.swf +||http://gywb.cn/cs_mulu/ +||http://gywb.cn/gggl/ +||http://gzzza.com/html/ +||http://hackhome.com/hz/*down +||http://hackhome.com/js/*top.js +||http://hackhome.com/js/bhref.js +||http://hackhome.com/js/dright.js +||http://hackhome.com/js/zt.js +||http://hackhw.com/ckjs/ +||http://hades.qyer.com^ +||http://haha.mx/images/float-ad/ +||http://haha.mx/images/market/ +||http://haha.mx/upload/data/detail_ +||http://haha.mx/upload/data/list_sidebar_ +||http://haiwainet.cn*/k.js +||http://haiwaiyy.com/B970X90.gif +||http://halihali.me^*/js/low.js +||http://halihali.me^*/js/nscript.js +||http://hangzhou.com.cn/extra/flash/hzwarticle300.swf +||http://hangzhou.com.cn/images/flashyingpian.swf +||http://hangzhou.com.cn/inc_hzw/ +||http://hanhande.com/upload/180330/4182613_143K0437.jpg +||http://hanjutv.com/index.php?c=dudu_ +||http://hanjutv.com/statics/skin/hjtv-pc/js/push.js +||http://hanjutvn.com/template/alifun/js/Tmall/ +||http://hao.rising.cn/catalog/bottom.html +||http://hao.rising.cn/images/nsdgg.jpg +||http://hao123.cn/images/cp +||http://hao123.com/erjiapi/adv? +||http://hao123.com/ifeed/cpc? +||http://hao123.com/static/img/taobao +||http://hao123img.com/res/ecom/ +||http://hao123img.com/res/js/common/as. +||http://hao123img.com/res/js/common/erjiAdv. +||http://hao123img.com/static/common/js/cpc_ +||http://hao5.net/images/*0- +||http://hao6666.info^*.js +||http://hao6v.com/d/ +||http://haochi123.com/J_Box/Inc_ +||http://haochi123.com/Js/Fun_Effects_HT9.js +||http://haofs.com/haofs/ggapi.asp +||http://haoju5.com/js/bbb/ +||http://haokan5.com/js/haokanjs/2014_ +||http://haokan5.com/js/haokanjs/playa +||http://haokan5.com/js/haokanjs/tj.js +||http://haokan5.com/js/haokanjs/youxiajiao.js +||http://haokan58.com/pcgg/ +||http://haokongbu.com/plus/show.php +||http://haolepic.com/blz/ +||http://haolepic.com/js/ +||http://haopp02.com/js/ +||http://haoring03.com/ads/ +||http://haosf.com/kan.htm +||http://haote.com/style2017/2017images/banner/ +||http://haotxt.com/index.php?m=book/ad& +||http://haoxxoo.com/player/ad.html +||http://happyhongkong.com/images/client/ +||http://haxiu.com/data/cache/myadn- +||http://hc360.cn/js/module/info/info_liuliangbao.js +||http://hc360.com/images/14826/289x90.jpg +||http://hc360.com/js/*hezuo.js +||http://hc360.com/js/build/source/widgets/flowbao/flowbao.js +||http://hc360.com/js/hcpop_ +||http://hc360.com/js/module/info/info_liuliangbao.js +||http://hc360.com/list/iframe_2011hezuo.shtml +||http://hc360.com/list/iframe_2012ad_ +||http://hc360.com/list/iframe_end_textadv.shtml +||http://hc360.com/list/iframe_right_ad_ +||http://hc360.com/news/201207/201207241712413488.jpg +||http://hc360.com/security/201409/201409021830024990.jpg +||http://hcmoo.com/mm.js +||http://hcomic.in/post/js/jquery +||http://hcomic.in/wp-content/themes/boomog/js/list +||http://hcw888.com/Plug/GG.asp +||http://hcwang.cn/images/g/*.swf +||http://hdad.baike.com^ +||http://hdsky.me/adv/ +||http://hdslb.com/bfs/ad/ +||http://hdslb.com/js/core-v5/picment. +||http://he2d.com/crossdomain.xml +||http://hebei.com.cn/eap/ +||http://hebei.com.cn/swf/ +||http://hebei.com.cn/sys/online_calc.js +||http://hebtv.com/d/a/thea +||http://hefei.cc/templates/default/index_ad +||http://heiguang.com/f/uad/ +||http://heikexs.com/wp-content/themes/Duoxs*/js/ +||http://hellojava.com//bja/tanzhou.jpg +||http://henan.sina.com.cn/iframe/7/ +||http://henan100.com/d/file/indexad/ +||http://henan100.com^*/ad_article/ +||http://henan100.com^*/images/ad_content_ +||http://henghost.com^$third-party +||http://herogame.com^$subdocument,domain=gamer.com.tw +||http://hexun.com*/hx_news/hx_news_finalpage.js +||http://hexun.com/gphqtc/ +||http://hexun.com/wxcms/ad/ +||http://hexunimg.cn/m/images/ad_ +||http://hf365.com/0/13/79/87/13798795_912593.jpg +||http://hf365.com/0/14/31/00/14310068_933922.png +||http://hf365.com/0/14/60/93/14609355_921128.jpg +||http://hf365.com/0/15/64/87/15648725_922274.jpg +||http://hh010.com/1/ +||http://hh010.com/data/attachment/common/0a/ +||http://hh010.com/static/img/ +||http://hiad.vmall.com^ +||http://hiao.com/node/node_27508.htm +||http://hiapk.com/uploads/AD/ +||http://hifidiy.net/www/2015/08/18/HIFIDIY_Compat.swf +||http://hinet.net/radio/getAdcode.do +||http://hinews.cn/js/09page/10pagesjbtj +||http://histock.tw/ad/ +||http://hiwenku.com/getRightAdv +||http://hk-pub.com/forum/images/banner/ +||http://hkacger.com/showimage.php?i=dlsite1709NEKOPARA +||http://hkcna.hk/upload/6/2011/0608/U139P22T6D51F96DT20110608114515.jpg +||http://hkcna.hk/upload/6/2011/0909/U127P22T6D70F98DT20110914111852.swf +||http://hkcoding.com/chequeconvert/img/grammarly- +||http://hkcoding.com/img/ +||http://hkepc.com/forum/api/unimhk_ +||http://hkepc.com/prepared/images/b608.png +||http://hkgolden.com/forum_allpage_bottom.htm +||http://hkgolden.com/google_ad +||http://hkgolden.com/GoogleFrontPageAd.html +||http://hkgolden.com/hkg.js +||http://hkgolden.com/HKG_PRODUCT.htm +||http://hkgolden.com/js/faall1.js +||http://hkgolden.com/js/fpall.js +||http://hkgolden.com/mtg/ +||http://hkgolden.com/yahoo_ad +||http://hkgolden.com^*_ad.aspx +||http://hkitblog.com^*-banner +||http://hktvmall.com/api/preroll/getList? +||http://hmghmg.com/tb +||http://hmog.me/tb +||http://hn-pc.com/css/Fun_Div.js +||http://hongyingbbs.com/img/top.js +||http://hongyingbbs.com/jj/ +||http://hoopchina.com.cn/blogfile/2018*_1018_h_140_ +||http://hoopchina.com.cn/common/lazyLoadAd.js +||http://hoopchina.com.cn/static/www/*340-230. +||http://hoopchina.com.cn/static/www/*340x230. +||http://hoopchina.com.cn/topn +||http://hoopchina.com.cn/web/ad/ +||http://hoopchina.com.cn/web/channel/nba/index/nbaposter/index.js +||http://hoopchina.com.cn/web/channel/voice/*/beforelogin/beforelogin.js +||http://hoopchina.com.cn/web/widget/partner/*/promote.js +||http://hot000.com/m- +||http://hotavxxx.com/images/*96 +||http://hoteastday.com/newspc/show? +||http://house.sina.com.cn/2.0/abp/ +||http://house365.com/*ads/201 +||http://house365.com/js/lbpopup.js +||http://housefindeasy.com/images/*banner978x90. +||http://housefindeasy.com/images/b_*.png +||http://housefindeasy.com/images/vip_ads +||http://houstonbbs.com/data/ad/ +||http://houyi.baofeng.net^*.html +||http://hqcx.net/bbs/data/attachment/forum/201711/08/200952ipkhkmpjo5t0p5pv.jpg +||http://hqcx.net/images/baidu.jpg +||http://hqcx.net/index.php?m=poster& +||http://hqdoor.com/Web/ +||http://hqol.cn/up/ad/ +||http://hs.cnfol.com/Cm/Imgs/Load.gif +||http://hsbianma.com/content/images/*-ad- +||http://htcui.com/wp-content/uploads/2018/12/jdyzu-b.png +||http://htcui.com/wp-content/uploads/2018/12/xtfen-b.png +||http://htcui.com/xtfen.gif +||http://htpc1.com/iBT/tools/ +||http://htqyy.com/kiees/ +||http://httpcn.com/images/ad_ +||http://httpcn.com/Images/banner +||http://httpcn.com/images/topimg/ +||http://httpcn.com/include/ad1/ +||http://httpcn.com/tg/ +||http://httpwwwdcom.com/js/aaa/ +||http://huabian.com/hb/ad/ +||http://huacolor.com/d/js/v/hc +||http://huaiduoduo.info/Runtime/js/ +||http://huanqiu.com/resource/js/base +||http://huanqiu.com/ssi/show_*_mall.ssi +||http://huarenjie.com/attachment/myfiles/ +||http://hubpd.com/hubpd/images/dingtong +||http://hudong.com/11/85/26100000005581147339859649123.jpg +||http://huhumh.com/js/ +||http://huimg.cn/e/hd.e.wap. +||http://huizu100.com/data/attachment/portal/ +||http://hunantv.com/ui/2014/images/hao123.jpg +||http://huoche.net/Images/pc/ad_ +||http://huoche.net/public/huoche/ad/ +||http://huoyan.tv/yb/img/*.gif +||http://hupu.com^*/stream.js +||http://hur.cn/AhurD/*.gif +||http://hxjs.tool.hexun.com$domain=~quote.hexun.com +||http://hxsame.hexun.com$domain=~quote.hexun.com +||http://hxsd.com/templets/js/looyu_pop.js +||http://hxsxw.com/hxsxw666/ +||http://hxsxw.com/js/float.js +||http://hxyl.net/js/tv.js +||http://hy5.com.cn/admin/ +||http://hybbs.com/i/$image,object +||http://hz.shouyoutv.com^ +||http://hzhyhm.com^ +||http://hznzcn.com/moban/youxiajiao.js +||http://i-gamer.net/promo_ +||http://i-gamer.net^$domain=cartomad.com|cartonmad.com|cartoomad.com|cartoonad.com|cartoonmad.com +||http://i-part.com.tw/js2/newShineStar +||http://i.alipayobjects.com/i/ecmng/$image,domain=my.alipay.com +||http://i.syasn.com^ +||http://i322.com/ad_avshow/ +||http://i8.com.cn/images/a.swf +||http://i8.com.cn/images/tiandijie.jpg +||http://iab03.com/zzz/ +||http://iads.xinmin.cn^ +||http://iapolo.com/myjs/ +||http://iask.ca/img/*.gif +||http://iask.cn^*.data. +||http://iask.cn^*.param. +||http://iask.cn^*/qiye. +||http://iask.cn^*commercial. +||http://iask.cn^*model. +||http://iball1990.com:897/js/commerical +||http://ibf.tw/js/jquery.blockUI.js +||http://ibkda.com/other/ +||http://ibook8.com*/piao*.js +||http://ibook8.com/xia*.js +||http://icaile.com/z.php?id= +||http://iciba.com/www/img/activity/common/active-11-11.js +||http://ickd.cn/act/ +||http://ickd.cn/mobile/js/touch +||http://icnkr.com/cnkradv/ +||http://icnkr.com/data/attachment/portal/ +||http://idaima.com/ycz/ajax/get_items_for_bejson/ +||http://idcot.com^ +||http://idcquan.com/linux/cio_new.html +||http://idv.st/dns/bar.htm +||http://ieche.com/global/*/ad/ +||http://ieche.com/InAds/ +||http://ieforex.com/r/cms/www/red/red2/images/*0. +||http://ifeng.com*/wapifeng +||http://ifeng.com/a_if/ +||http://ifeng.com/bbsfile/js/ifeng_tip.js +||http://ifeng.com/burroughsnews? +||http://ifeng.com/cc? +||http://ifeng.com/client_share_bottom_ +||http://ifeng.com/iframe/quickbet +||http://ifeng.com/iframe/toquickbet +||http://ifeng.com/sc? +||http://ifeng.com/showcode? +||http://ifeng.com/showjs?*apids= +||http://ifeng.com/ssi-incs/ +||http://ifeng.com/statics/comment_baidu.html +||http://ifeng.com/wapAdversApi? +||http://ifeng.com^*&ADUNITID= +||http://ifeng.com^*=YWRp +||http://ifengimg.com/*/taobaopudi/ +||http://ifengimg.com/1d124ac5e89463af/2013/0125/rdn_51023a5071d32.jpg +||http://ifengimg.com/29daa33abbbc4bbc/2015/7/aogute.gif +||http://ifengimg.com/29daa33abbbc4bbc/2015/7/titad.gif +||http://ifengimg.com/6e0e559e19f25e8b/2013/1226/shoucheng +||http://ifengimg.com/a/*/core201 +||http://ifengimg.com/a/*/openclient.js +||http://ifengimg.com/a/*/yemei +||http://ifengimg.com/a/*_w300_h250. +||http://ifengimg.com/a/201*.swf +||http://ifengimg.com/a/2016/*600. +||http://ifengimg.com/a/2017/*600. +||http://ifengimg.com/a/c.js +||http://ifengimg.com/b/b.js +||http://ifengimg.com/b/c.js +||http://ifengimg.com/c337cf1a3749e953/2015/0301/rdn_54f25a4228062.jpg +||http://ifengimg.com/ch_sd_ +||http://ifengimg.com/edsd +||http://ifengimg.com/iamsImg/*_w100_h550. +||http://ifengimg.com/iamsImg/*banner +||http://ifengimg.com/ifeng/sources/ +||http://ifengimg.com/iis/iis_ +||http://ifengimg.com/m/ax.js +||http://ifengimg.com/m/img.js +||http://ifengimg.com/mappa/ +||http://ifengimg.com/md/*/v_responsive +||http://ifengimg.com/p/ax_ +||http://ifengimg.com/pmop/2017/*_w600_h793.jpeg +||http://ifengimg.com/static/js/*Adv. +||http://ifengimg.com/static/news/js/advtrack +||http://ifengimg.com/static/news/js/newsAdvtrack_ +||http://ifengimg.com/tres/js/*/idemin_noif.js +||http://ifengimg.com/w702_h371/ +||http://ifengimg.com/wap/js/wp.js +||http://ifengimg.com/wrlgs1yu5o9- +||http://ifengimg.com/xingzhao/JS/ +||http://ifengimg.com/zhishaofei/js/ +||http://ifengimg.com^*-gewindow- +||http://ifengimg.com^*/100-100- +||http://ifengimg.com^*/1000-90- +||http://ifengimg.com^*/1000X90- +||http://ifengimg.com^*/300-300- +||http://ifengimg.com^*/300-300. +||http://ifengimg.com^*/aplayer.xml +||http://ifengimg.com^*/backwindow.js +||http://ifengimg.com^*/embed*.js +||http://ifengimg.com^*/feed.js +||http://ifengimg.com^*/fullscreen +||http://ifengimg.com^*/hddw- +||http://ifengimg.com^*/hover.js +||http://ifengimg.com^*/iframe_load_ +||http://ifengimg.com^*/o.js +||http://ifengimg.com^*/rdn_*.js? +||http://ifengimg.com^*/shfwq +||http://ifengimg.com^*/sources/i.js +||http://ifengimg.com^*/sources/inice_abc.js +||http://ifengimg.com^*/sources/j.js +||http://ifengimg.com^*/sources/jj.js +||http://ifengimg.com^*/sparta.js +||http://ifengimg.com^*/yingguang- +||http://ifengimg.com^*300x600 +||http://ifengimg.com^*600-2.swf +||http://ifengimg.com^*600.swf +||http://ifengimg.com^*couplet$script +||http://ifengimg.com^*Float$script +||http://ifkdy.com/img/hydy +||http://ifooday.cn/index.php?m=poster& +||http://igamepark.biz/ads_output.php +||http://iis7.com/ys/css2018/ggw.js +||http://ijia360.com/data/poster/ +||http://ik123.com/js/dd.js +||http://ikafan.com/js/novel.js +||http://ikafan.com/upload/image/iqiyi_ +||http://ikaka.com/globalad/ +||http://ikanfan.cn/2018/ikanfan_new/dist/bootstrap.js +||http://im286.net/286/ +||http://image-shop.baidu.com/n/imageproduct? +||http://image.9duw.com^ +||http://image.hh010.com^ +||http://imagehost.click^$domain=a3v4.top +||http://images.china.cn^*first/$subdocument +||http://images.jurong.cn/bbs/ +||http://images.sohu.com/bill/ +||http://images.sohu.com/cs/ +||http://images.sohu.com/ytv/*.jpg +||http://images.sohu.com/ytv/*.swf +||http://imagespublic.tk/clothes/comeliness.php +||http://imedown.info/03.jpg +||http://imedown.info^*.gif +||http://imeee.cn/DA_HTML/*.js +||http://imeee.cn/DA_HTML/bottom_960x90.html +||http://img*.365rich.cn/image/$image +||http://img*.bet007.com/image/*.gif +||http://img*.hc360.com^$subdocument +||http://img*.hc360.com^*.swf +||http://img*.win007.com/image/*.gif +||http://img.0594.com/20*.gif +||http://img.0594.com/20*.swf +||http://img.3sjt.com^ +||http://img.86wan.com/img2/top.jpg +||http://img.90bfw.com^*.gif +||http://img.9duw.com^ +||http://img.eol.cn/images/ed/$~image +||http://img.hexun.com*/wszj/js.js +||http://img.ifeng.com/tres/html/ +||http://img.meipic.net^ +||http://img.sex169.info^*.gif +||http://img.win0168.com/image/*.gif +||http://img1.126.net^ +||http://img2.126.net^ +||http://img2.plures.net^*.gif +||http://img2.titan007.com^ +||http://img2.win007.com/image/*.jpg +||http://img2048.xyz^$domain=gou19.com +||http://img3.126.net^ +||http://img33.com^$domain=gou19.com +||http://img588.net/images/*.gif +||http://img599.net/images/*.gif$domain=javccc.net +||http://img599.net^$domain=18board.com|18p2p.com +||http://imgadsame.liba.com^ +||http://imgbus.com^$domain=88files.net +||http://imgchili.net/media/image*.gif +||http://imgchili.net/media/top.gif +||http://imgchr.com^$domain=iyejie.com +||http://imgf.gamersky.com^$image +||http://imghost.top/kita/ +||http://imgkdiyoub999.com/ok/ +||http://imgme.me/images/*.gif +||http://imgmega.com/i/*.gif$domain=18avhub.com|18avtube.com|mm-cg.com +||http://imgout.ph.126.net/56208002/AD_ +||http://imgroom.net/images/*.gif +||http://imgs.cc/images/ad_ +||http://imgsrc.baidu.com/tieba/pic/item/$image +||http://imgtuku.com/images/20*.gif +||http://imgur.com/df53F09.jpg +||http://imgur.com/zNQ0lXP.gif +||http://imgur.com^$domain=560996.com|9dog.pw|histock.tw|moe-acg.cc|wgun.net +||http://imgur.com^*.gif$domain=18p2p.com +||http://imgxr.com^$domain=xiuren.org +||http://imooc.com/open/courselistrandjs +||http://impservice*.yodao.com^ +||http://impservice*.youdao.com^ +||http://infoqstatic.com^*/scripts/rightbarOptionalVcrBox.js +||http://inhe.net/Uploadfiles/inhegg2016/ +||http://inlishui.com/index.php?m=poster& +||http://inoreader.com/adv/$domain=inoreader.com +||http://inszu.com/js/qian/ +||http://inte.sogou.com^ +||http://iocoder.cn/alert/js/alert.js +||http://ioio.cc*/dm/*.swf +||http://ioio.cc/adtui/ +||http://ip.cn^$csp=style-src 'self' https: +||http://ip38.qiniudn.com/js/zzsc.js +||http://ipeen.com.tw/js/frame/ad-actions.js +||http://ipeen.com.tw/photo/ad/ +||http://iplaypy.com/js/tonglan-1200ad.js +||http://iplaypy.com/uploads/allimg/160127/2-16012G50U0c1.jpg +||http://iplaypython.com/images/banner +||http://iporn.world/attachment/ad/ +||http://iqilu.com/getZone.php +||http://iqilu.com/static_files/richmedia/ +||http://iqshw.com/d/js/m/thea +||http://iqtfy.com/upload/vod/620.gif +||http://ishowx.com/www/2015/js/top.js +||http://ishuaji.cn/public/images/banner.jpg +||http://ishuhui.com/cartoon/book-1/*/sp +||http://ishuhui.com/setting/get_conf/option/ad/ +||http://isso.com.cn/upload_image/A-D/ +||http://it165.net/index.php?m=poster& +||http://it168.com/factory/ad/ +||http://it168.com/forum/201412/19/151606lvf3btnnotc62rl6.jpg +||http://it610.com/siteimage/shop +||http://itavcn.com/images/2012/ad_ +||http://itavcn.com/images/2013/ad_ +||http://itavcn.com/images/2014/ad_ +||http://itavcn.com/pic/news/*-90 +||http://itavcn.com/pic/news/*x80 +||http://itavcn.com/pic/news/*x90 +||http://itavcn.com/pic/news/201802/20180207/image/050N2.gif +||http://itc.*^prod=ad& +||http://itc.cn/?prod=rtb& +||http://itc.cn/activity/activity_js/changyan_config_ +||http://itc.cn/base/core/gg_ +||http://itc.cn/mdevp/*-advert/ +||http://itc.cn/w/u/0/old-insertAd- +||http://itheat.com/?show= +||http://ithome.com/api/lapin/ +||http://ithome.com/file/js/lapin-load.js +||http://ithome.com/file/js/money/ +||http://ithome.com/file/js/win*china.js +||http://ithome.com/images/1068.jpg +||http://ithome.com/images/hb1212/ +||http://ithome.com/images/hongbao/ +||http://ithome.com/images/huawei.jpg +||http://ithome.com/js/lapin/hot.js +||http://ithome.com/js/recommend.js +||http://ithome.com/newsuploadfiles/focus/67e46c4e-0a45-488a-a493-a836e3d4f4ce.jpg +||http://ithome.com/newsuploadfiles/focus/dd4682ad-3be0-4e74-b286-8fd747d4bd08.jpg +||http://itiexue.net/domain-policy/ +||http://itiexue.net/wap/tiexue/js/chuping/nativeshare +||http://itjsb.com/itjsbwx.jpg +||http://itmsc.cn^*ad0 +||http://itocp.com/html/gk/*/*x50. +||http://itocp.com/html/gk/*/204x +||http://itocp.com/html/gk/topic/topicmain.html +||http://itongcheng.cc/amm/ +||http://itopdog.cn/itopdog/ad.js +||http://itopdog.cn/itopdog/d*.js +||http://ituba.cc/uploads/allimg/201610/603/ +||http://itv.hexun.com +||http://iviewui.com/v1/*?name= +||http://iviewui.com/v1/asd/ +||http://ivy.pconline.com.cn^ +||http://iwanad.baidu.com^ +||http://ixinshijue.com/template/212yspc/js/37.js +||http://ixjys.com/dbxf/ +||http://iyejie.com/1024code.gif +||http://iyejie.com/xydlad.js +||http://iztwp.com/images/ +||http://izzs.cc/wp-content/mm/ +||http://j.6avz.com^ +||http://j.avz4.com^ +||http://j.s.weibo.com/widget.html +||http://ja*.gamersky.com^ +||http://jandan.net/static/sos/recreate-games.gif +||http://jandan.net/static/ss/ +||http://jandan.net^*/3kbw2.png +||http://jandan.net^*/699pic/ +||http://jandan.net^*/moyu.png +||http://javazhijia.com/skin/ +||http://javbooks.com/52toy/ +||http://javdove.com/templates/frontend/javdove/*/partialviewslider. +||http://javhd.com/banners-mainpage/ +||http://javhub.net/img/r18_banner1.jpg +||http://javjunkies.com/FL$subdocument +||http://jb51.net/imgby/logo_ +||http://jb51.net^$script,domain=~tools.jb51.net +||http://jb51.net^*Loader.js +||http://jbzyw.com/Application/M/adv/ +||http://jc001.cn/footer_float_bar/ +||http://jcodecraeer.com/plus/fuckblok. +||http://jcrb.com/ZYW/$subdocument +||http://jd-bbs.com/tianyi/ +||http://jd-bbs.com^*/gif/ +||http://jd100.com/cwmpc/ +||http://jfrft.com/ad/ +||http://jfrft.com/images/index_ +||http://jfrft.com/images/nono/ +||http://jfrft.com/js/main_list.js +||http://jfzx.tv/js/sb/ +||http://jgzj.net/bbs/attachments/month_1111/ +||http://jia.com/js/common/article_home_adv.js +||http://jialingmm.net/foot.php +||http://jianglishi.cn/statics/statics/js/code_ +||http://jianhucheng.com/data/attachment/portal/ +||http://jianke.com^*/jquery.ppt. +||http://jianshen114.com/images/Advistings/ +||http://jianxun.io/ad/ +||http://jiaodong.net/a/js/ +||http://jiaonan.net/index.php?m=poster& +||http://jiaoyou8.com^$domain=mitbbs.ca|mitbbs.com +||http://jiaoyu.baidu.com/tieba/ +||http://jiasule.com/static/js/http_error.js +||http://jiayu.net/comiis_ad/ +||http://jiazhuang.com/Public/Home/bootinfo/ +||http://jiejg.ifeng.com^ +||http://jijidown.com/static/img/dongcidaci/ +||http://jijidown.com/static/img/right_bottom. +||http://jijistatic.duapp.com/Squall/1.jpg +||http://jin10.com/board/json/index.js +||http://jin10.com/board/json/rili.js +||http://jinbaozy.com/images/tb/ +||http://jinbaozy.com/images/zhangshang.jpg +||http://jinhongweiqi.com/cache/ads.js +||http://jinhua.com.cn/ad_pic/ +||http://jinriguanzhu.cc^$domain=cgfdjz.net +||http://jinse.com/promotion/ +||http://jinyici.com/qq.js +||http://jipinzw.com^*.php?aid= +||http://jishuyl.com/_skins/*/ad_ +||http://jisoupan.com/static/ +||http://jisutiyu.com/app/js/*footer.js +||http://jisuxz.com/170320/kaola58058.gif +||http://jisuxz.com/180226/b180226.js +||http://jisuxz.com/180226/downshare +||http://jitapu.com/inc/adv +||http://jiyingdm.com/js/loadingshow.html +||http://jj.5ccc.net/scripts/new/ +||http://jj20.com/js/x +||http://jj59.com/sy/banner.js +||http://jjckb.cn/flash/1031ad/ +||http://jjj*.com/static/js/common.js +||http://jjjaaa.com/aaa/ +||http://jjjgame.com/images/ad11.jpg +||http://jjr123.com/javascript/dl.js +||http://jjwxc.net/jjPopup.php +||http://jlpcn.net/upload/vod/2016-02-25/201602251456391344.jpg +||http://jlxyjs.com/attachment/ +||http://jmbbs.cn/sjgg/ +||http://jmcdn.cn/file/script/A +||http://jmhfw.com/index.php?/ajax/get_adv/ +||http://jmsyzj.com^ +||http://jmydm.com/jspage/ftt.js +||http://jnlc.com/www/fund/newsmarket +||http://jp2468.com/api/vip/vipshow.php +||http://jpm.cn/images/a/ +||http://jpwind.com^*/scroll.js +||http://jrj.com.cn/h5Ad? +||http://jrj.com.cn/s?z= +||http://jrjimg.cn/ad/ +||http://jrjimg.cn/common/foot/allfc.js +||http://jrjimg.cn/common/foot/wxXcxTg.js +||http://jrjimg.cn/focus/newrenNb.png +||http://jrjimg.cn/stock/adjsok.js +||http://jrjimg.cn/zqt-red-1000/js/v3/itg-widget. +||http://jrzj.com/images/bgright_ad.jpg +||http://jrzj.com/img_index/*adv +||http://jrzj.com/img_index/guanggao +||http://jrzj.com/img_index/index_ +||http://js*.abolezi.com^ +||http://js.45bubu.com^ +||http://js.bju888.com^ +||http://js.bxwns.com^ +||http://js.duotegame.com^ +||http://js.hkslg520.com^ +||http://js.mumayi.net/9495.gif +||http://js.mumayi.net/jiujiang +||http://js.shiwt.com/110.js +||http://js.tlt.cn/js/ +||http://js0573.com/images/cus/ +||http://jsdelivr.net/gh/cdnjsdelivr001/182cdn*.js +||http://jstucdn.com/ftp/2019/0220/2cd03e9627bf753fa94bf9ac1c4d1250.jpg +||http://jstucdn.com/g3/ +||http://jsxf.org/images/ +||http://juejin.im/v3/web/wbbr/ +||http://jupi.cc^*.gif +||http://juqingw.com/js/tad +||http://juweixin.com/static/spk +||http://juxia.com/jxtp/indexbg.jpg +||http://jwcsb.com.cn/js/neirong.js +||http://jxad.jx163.com^ +||http://jxcn.cn/assets/js/dspshow.js +||http://jxcn.cn/js/hotpic_ +||http://jxdown.com/statics/js/all.js +||http://jxgdw.com/images/jdgg.jpg +||http://jxnews.com.cn/assets/js/dspshow.js +||http://jxnews.com.cn^*_ad_ +||http://jyacht.com/flash/marina.swf +||http://jyfw.cn/gonggong/jiayu/cf_ +||http://jyfw.cn/nav/cf_ +||http://jysjian.com/public//z +||http://jz5u.com/js/tl$script +||http://jz5u.com/js/xiazaiURL.js +||http://jz5u.com/new/ +||http://jzb.com/website/fe/pub_js/dbclickshow.js +||http://k.16vcd.com^ +||http://k99.cc^$third-party +||http://kaixin001.com.cn/js/cpm- +||http://kajila.cn/ad.html +||http://kan300.com/js/union.js +||http://kan300.com/js/union/ +||http://kan98.com/c.html +||http://kancloud.cn/ad/ +||http://kanguba.com/file/js/ifr.asp +||http://kanjuba.me/js/bbk/ +||http://kankanmi.com/js/zjgg +||http://kankantv.cc/330-50.gif +||http://kankanwu.com/le/ +||http://kanmeiju.net/js/ +||http://kanpb.com/skin/images/ +||http://kanpp.net/Uploads/ad/ +||http://kantie.org/a/images/car.jpg +||http://kantv6.com/index.php/Popularize/ +||http://kaoyan1v1.com/IAA/ +||http://kb-render.alicdn.com/html/*.html +||http://kccdk.com/Content/img/*.gif +||http://kdhome.net/images/banner +||http://kdhome.net/templets/default/img/tpfd.jpg +||http://kdou.com/ad_js.php?adid= +||http://kdw*.com/layer/layer.js +||http://kedou*.com/layer/layer.js +||http://kekenet.com/images/*/akasuo +||http://kekenet.com/images/*/tom468X60.gif +||http://kekenet.com/Images/*/tom640X40.gif +||http://kekenet.com/images/*980 +||http://kekenet.com^*/zhike +||http://kewaishu.org/m- +||http://key8.com/cache/www/banner_ +||http://keydatas.com/ad/ +||http://keydatas.com/img/*-336-280. +||http://keywin.org/templates/kw_v2/images/youbianad.png +||http://kiees.cn/img/ +||http://kiees.cn/jm.png +||http://kiees.cn/k1.js +||http://kikinote.net/iframe +||http://kindlepush.com/resources/images/main/AD.png +||http://kingsnug.cn/Uploads/vod/2019-05-25/5ce964f0c66e0.jpg +||http://kiwsy.co/hotsearch_box.php +||http://kkkkmao.com/js/20X4.js +||http://kkkkmao.com/js/fumeiti.js +||http://kkkkmao.com/js/tongji.js +||http://kkkkmao.com/Runtime/js/ +||http://klandmart.com/K-Landmart_0011.jpg +||http://kmplayer.cn/include/jscript/*-a.js +||http://knnwdyou.com^ +||http://kocpc.com.tw/adsbyso.js +||http://kokojia.com^$third-party +||http://ks.js.cn*/yytf/$object,script +||http://ksiwnx.pw/gg_html/ +||http://kt51.com/images/kt51.gif +||http://kt51.com/wz.jpg +||http://ktkkt.com/js/tvb/ +||http://ktzhk.com/file/adv/ +||http://kuaicad.com/rest/common/getConfigureByName? +||http://kuaidi100.com/assets/ext?method=mainprofile +||http://kuaidi100.com/images/kuaidi/201612081*4 +||http://kuaidi100.com/js/share/i_new.js +||http://kuaidi100.com/mobile/mobileapi.do +||http://kuaidiwo.cn/kdwkxmlt.jpg +||http://kuaidiwo.cn/kuaidiwo.jpg +||http://kuaihou.com/c/shuoming.js +||http://kuaihou.com/c/you1.js +||http://kuaihou.com/js/new/xiazai +||http://kuailiyu.com/templates/cyzonev3/js/m.js +||http://kuaiso.com/js/ad- +||http://kuaizhan.com^$domain=bingdou.net|ppx116.com|yaoshe67.com|yuese46.com +||http://kukan5.com/ad +||http://kukudm.com/js/comic- +||http://kukudm.com/js/play- +||http://kukudm.com/top.htm +||http://kunpeng-sc.csdnimg.cn/#/preview/ +||http://kviso.com/ddnew/kviso +||http://kviso.com/js/top.js +||http://kwflvcdn.000dn.com^*.flv +||http://kyocdn.com/addons/banner/ +||http://kyocdn.com/forum/201312/20/151925t52ey4l34ck0lkgv.jpg +||http://lady1314.com.cn/addata/ +||http://lady8844.com/IMAGE/$~image +||http://lagou.com/js/cooperation/ +||http://lahoo.ca/api.php?mod=ad& +||http://lahoo.ca/slider +||http://laixi.com/tp/20 +||http://lancdn.com/landian/public/recm/54181RECM.png +||http://lancdn.com^*/Alipay_HB. +||http://lancdn.com^*/Alipay_RC. +||http://lancdn.com^*/Apple_ +||http://lancdn.com^*/cp-lz- +||http://lancdn.com^*/LinuxProbe_ +||http://lancdn.com^*/uneed +||http://lancdn.com^*/wisecare +||http://language-center.com.tw/udn/ +||http://langxi.org/langxi/*900$image,object +||http://langya.cn/2014html/2014ad_ +||http://langya.cn/2014html/ad/ +||http://lanrenzhijia.com/Public/images/sucaihuo_ +||http://lanrenzhijia.com/Public/images/xiaozhua.jpg +||http://lanseshuba.com/react.js +||http://laod.cn/wp-content/uploads/*/ad- +||http://laogu.com/cms/images/ad +||http://laozuo.org/banner/linode +||http://laozuo.org/wp-content/themes/weisaysimple/js/*-bottom.js +||http://laozuo.org/wp-content/themes/weisaysimple/js/banner.js +||http://laozuo.org/wp-content/themes/weisaysimple/js/content40width.js +||http://laozuo.org/wp-content/themes/weisaysimple/js/index-top.js +||http://laozuo.org/wp-content/themes/weisaysimple/js/sidebar +||http://law-lib.com/wstyle/images/gffirm.jpg +||http://lawtv.com.cn/jd_ceshi.html +||http://lawtv.com.cn/skin/newplayer/ads_dianshi.php +||http://lawtv.com.cn/skin/stop.swf +||http://lcok.net/2019/ad/$rewrite=abp-resource:blank-mp3,domain=huaren.tv +||http://lcxw.cn/d/js/thea +||http://ld0766.com/*20*a/ +||http://ld12.com/js/myfiles/ +||http://ldb.cc/js/top.js +||http://lecai.com/page/zhuanti/baidu/ +||http://leiphone.com/uploads/new/article/880_880/201807/5b5687fef17a5.jpg +||http://leiphone.com/uploads/new/category/pic/*/740x140/ +||http://leju.com/abp/cmslead_new.v2.js +||http://leju.com/scripts/app/pc/indexlayer/v1/indexlayer.js +||http://lelekan.com/sp/fmt.js +||http://leleketang.com/dat/a/ +||http://lenovo.com.cn/cms/2018-07-20/201807201014498251793.png +||http://letv.com/pzt/hyhmzq/index.shtml +||http://letv.com/s?ark= +||http://letvcdn.com/js/*_focus_flash.js +||http://letvimg.com^*/108x70$object +||http://letvimg.com^*_phone/ +||http://lewenxiaoshuo.com/file/script/ +||http://lewenxiaoshuo.com/m- +||http://lezhuan.com/js/spread.js +||http://lgmi.com/ggimg/ +||http://lgmi.com/images/*.swf +||http://lgmi.com/left_right_ +||http://lgmi.com/right_ys +||http://lgmi.com/syimg/ +||http://lgmi.com/tjyf200x207.asp +||http://lgmi.com/windows/*-Advert. +||http://lgmi.com^*_gg +||http://lh168.net^*/attachment/portal/ +||http://liangchan.net/aaddaadd/ +||http://liangchan.net/adf/ +||http://liangjan.com/js/show_ +||http://lianmeng.la/fgh/ +||http://lianmeng.la/layui/layui.js +||http://lianyexiuchang.cc/img/2f2372e9bf205df0.png +||http://lianyexiuchang.cc/img/97da89108eb659fc.gif +||http://lianyexiuchang.cc/js/ +||http://liaocao.com/vod/0*.gif +||http://liaoxuefeng.com/files/attachments/00144*/0 +||http://licai18.com/henyepweb/ +||http://licai18.com/pic/*.swf +||http://licai18.com/pic/article/*.gif +||http://liepin.com/event/jobadver/ +||http://lieqinews.com/json/zhiketj/ +||http://lihuasoft.net/images/ad_ +||http://liisex.com/images/banners/ +||http://line-scdn.net/6c21c9a4/statics/js/index/redirect.js +||http://linecg.com/uploads/banner/ +||http://lingdian98.com^ +||http://lingdianshuwu.com/js/content +||http://link.fobshanghai.com/bbsimage/ +||http://linkhelper.cn/mmshow +||http://links.cn/mmshow +||http://linkwan.com/gb/broadmeter/speed/cp.js +||http://linkwan.com/gb/images/uploadimages/2010-12-16.swf +||http://linkwan.com/gb/javascript/b4.js +||http://linkwan.com/gb/javascript/c5- +||http://linovel.net/cp/lk/ad/externalAd? +||http://linuxde.net/wp-content/uploads/ad/ +||http://linuxeden.com/plus/web_js.php +||http://linuxidc.com/linuxfile/linux$script +||http://linuxidc.com/linuxfile/list +||http://liu16.com/vip.png +||http://liuxue86.com/css/liuxue_output.js +||http://live173.com//AD/ +||http://live173.com/BANNER/ +||http://liveany.com/images/8d8d.gif +||http://livku.com/g1000/ +||http://ll.gxsky.com^ +||http://llj22.com/1.gif +||http://lnd.com.cn/site1/*.swf +||http://lnzq5.com/js/ +||http://lofter.com/mailEntryMobile.do +||http://logoquan.com/upload/prd/ +||http://loldyttw.net/blr.js +||http://loldyttw.net/skin/lol/js/ds.js +||http://loli.io^$domain=kisssub.org +||http://loli.net/2017/12/21/5a3b732b8e72e.png +||http://loli.net/2018/06/12/5b1eb40282e3a.jpg +||http://loli.net/2018/09/01/5b8ab2b61cec4.jpg +||http://loli.net/2019/04/24/5cc0027b4f2f1.png +||http://loli.net^$domain=52pili.com|acglover.me|youtaoqi.com +||http://lolshipin.com/zt/sxx/ +||http://longbahao.com/asd.js +||http://longbahao.com/js/ad- +||http://longzhu.com/i/api/playpage/recommendPop? +||http://longzhu.com/recommendad/ +||http://lotour.net/bcef/388.js +||http://lotpc.com/templets/default/js/lotpctb +||http://love201810.com/Runtime/js/ +||http://loveshang.com/api.php?mod=ad&adid=custom_ +||http://lsforum.net/cam2/*.gif +||http://lsforum.net/yahooad/ +||http://ltn.com.tw/js/ad_door.js +||http://lu228.com/ajs/ +||http://luanren.com/images/*.swf +||http://luckstatic.v1.cn/st/10000/ +||http://lutouwang.net/static/images/boss_gao_hb.jpeg +||http://lutouwang.net/static/js/mv_ad +||http://luuu1.com/g/ +||http://luyx8.com/tu/666.gif +||http://lv-play.com/web/adv/list +||http://lvse.cn/output/block/html/ +||http://lvse.com/9 +||http://lw54.com/js/ +||http://lw881.com/public/js/gw.js +||http://lxting.com^ +||http://lxty66.com/js/float.js +||http://ly.js.cn/adv/ +||http://lyd.com.cn^*950-90. +||http://lysq.com/data/attachment/portal/ +||http://lywww.com/data/js.php?id= +||http://lywww.com/header_pic.php +||http://lzep.cn/data/js/1*.js +||http://lzep.cn/ep/ads/ +||http://lzep.cn/ep/js/index_window.js +||http://lzep.cn/ep/sda/ +||http://lzep.cn^*/2014ad/ +||http://lzk.hl.cn/lctp/ +||http://lzyysw.com/upload/ +||http://m.aty.sohu.com^ +||http://m.kankanwu.com/js/ +||http://m.mianbao99.com/js/detail.js +||http://m.tiebaimg.com/timg?wapp^*imgtype=0$image +||http://m.xigua110.com/js/ +||http://m1905.cn/afp/mdsfw.js +||http://m1905.cn/data/suspension_ +||http://m1905.cn/images/vod/vod*-90.jpg +||http://m1905.com/asp_js/k.js +||http://m1968.com/files/h5/ +||http://m2.lelemh.com^ +||http://m3hf.com/js/float +||http://ma.baiducdn2.com^*/main.js?t= +||http://macd.cn/macd-topads.html +||http://macfans.org/201*.gif +||http://macfans.org/images/*/980x +||http://macx.cn/js/jquery.$domain=game.macx.cn +||http://mafengwo.net/s13/M00/D0/6D/wKgEaVza2HCAJw8sAAOVHkWHw_c98.jpeg +||http://mahoupao.com/api.php?mod=ad& +||http://mahua.com/api/$subdocument +||http://mahua.com/www/default/js/mahua_show.js +||http://mahua.com/www/default/js/replace_ab.js +||http://maiche.com/iframe/rank.html +||http://mail.pchome.com.tw/img/classifieds/300120.gif +||http://maipiao.96900.com.cn/js/indexgg +||http://makaidong.com/img/ +||http://mall.xinkuaituan.com/zhuanti/ +||http://mall0.qiyipic.com^ +||http://manage.wdfans.cn^ +||http://manqian.cn/async/adLocationConfig +||http://maodh.com/admin/up/*.gif +||http://maolihui.com/wp-content/themes/miaonew/images/adb +||http://maoyun.tv/fsq/fangshaqi +||http://maoyun.tv/g3/ +||http://maoyun.tv/jk/ +||http://market.178.com^ +||http://market.21cn.com^ +||http://market.duowan.com^ +||http://masadora.net/kakusan- +||http://masturbation22.com/d/ +||http://mat.chasedream.com^*.gif +||http://mat1.gtimg.com/2014/vikkydu/GA/haier +||http://mat1.gtimg.com/2014/webtips/ola2014tips +||http://mat1.gtimg.com/cq/flash/ +||http://mat1.gtimg.com/ent/flash/*300 +||http://mbalib.com/wiki/common/wikibits.js +||http://mbd.baidu.com^$domain=xiaoyun.com +||http://mcchou.com/wp-content/themes/begin/js/mcchou.js +||http://mcncc.com/yeyou/*.htm +||http://medsci.cn/aimgs/$script +||http://medsci.cn/images/wyg.jpg +||http://megalife.com.hk^$domain=hkgolden.com +||http://meiju8.cc/js/jquery.p.min.js +||http://meiju8.cc/js/m_ban_ +||http://meiju8.cc/js/pv +||http://meiju8.cc/js/tpcode.js +||http://meijub.com/a/youxiajiao +||http://meijub.com/js/a/ +||http://meijumi.vip/wp-content/plugins/dreamgrow-scroll-triggered-box/ +||http://meijutt.com/xieziAD.jpg +||http://meijuxz.com/template/ZQ/ +||http://meipuw.com/style/ad +||http://meishichina.com/v3/ +||http://meitu.com/js/floatxiuxiu.js +||http://meituan.com/ptapi/recommends? +||http://meituan.com/xiuxianyule/api/getRecommendList? +||http://meitui.org^*.js +||http://meitulu.com/css/*showgg.js +||http://meiyouad.com/static/pc/img/111.gif +||http://meiyouad.com/user/admin? +||http://meizhou.cn/comm/mygg/ +||http://meizhou.com/images/topbanner +||http://metvb.com/js/bofangwei.js +||http://mfacelive.com/Scripts/social/openchannel_min.js +||http://mfav88.com/yinzi/ +||http://mh1234.com/gd/g_js/ +||http://mianbao99.com/a/mianbao +||http://micaitu.net/js/dibu.js +||http://microcontrol.cn/bbs/images/AD755_150.swf +||http://microcontrol.cn/HomeImages/AD/ +||http://midifan.com/aaa/ +||http://mifengtd.cn/ad- +||http://miguyu.com/AD/ +||http://mikanani.me/images/upupoo +||http://mil.news.sina.com.cn/iframe/109/2012/1024/photo.html +||http://mil.news.sina.com.cn/iframe/109/2013/1015/hotpic.html +||http://mima.club/tuijian/speedtest/ +||http://mingyg.cn/data/attachment/freeaddon_banner/ +||http://mini.hao123.com^ +||http://minixiazai.com/others/all_soft.js +||http://minixiazai.com/statics/js/soft/index.js +||http://miniye.xjts.cn^ +||http://mipcdn.com/i/s/https://i.loli.net/$domain=hcomic.in +||http://mipcdn.com^*/mip-*ad +||http://mipengine.baidu.com/common? +||http://missevan.com^$domain=jijidown.com +||http://missyuan.com/sy/ +||http://mitbbs.ca/ad_ +||http://mitbbs.com/ad_ +||http://miwifi.com^*ads/ +||http://mm111.net/api.php?mod=ad& +||http://mm387.com/images/*.gif +||http://mm7920.com:8888/upload/*.gif +||http://mmsao.me/lianmeng/ +||http://mmtalk.net/images/banner +||http://mobile.sina.cn/public/files/image/600x150_ +||http://mobile.sina.cn/public/files/image/620x300_ +||http://moe-acg.cc/ads.js +||http://moe-acg.cc/images/*/1225 +||http://moe-acg.cc/images/*/2000x710 +||http://moe-acg.cc/images/*/310 +||http://moe-acg.cc/images/*/700 +||http://moe-acg.cc/images/*/730 +||http://moe-acg.cc/wp-content/uploads/*/310x160 +||http://moe-acg.cc/wp-content/uploads/*/310x374 +||http://moe-acg.cc/wp-content/uploads/*_%E5%B9%BF%E5%91%8A%E5%9B%BE. +||http://moe-acg.cc/wp-content/uploads/2016/05/1234.gif +||http://moe.fm/public/images/fm/promotion_ +||http://moedao.com/js/top.js +||http://moerats.com/usr/ad/ +||http://momoshop.com.tw/goods/GoodsDetail.jsp?$subdocument +||http://momoshop.com.tw/league/$domain=beephone.com.tw +||http://money.qz828.com^ +||http://moneyweekly.com.tw/UC/JQueryJson.aspx/MwAD +||http://moneyweekly.com.tw/Uploads/AD/*970x +||http://monnsutogatya.com/himg/monst/ +||http://moonbbs.com/data/attachment/portal/ +||http://mop.com/js/common/watermark.js +||http://mop.com/newIndex/gg.html +||http://mopxing.com/skin/sex/js/*ad +||http://mopxing.com/skin/sex/js/*banner +||http://mopxing.com/skin/sex/js/*content +||http://moratame.tw/img/contents/banner +||http://movshow.com/*portal/ +||http://mowenxi.com/1.png +||http://mp3.haogeba.com^$image,object +||http://mp4ba.com^*/js/head.js +||http://mp4ba.net/static/js/mp4ba.js +||http://mp999.net/wp-content/uploads/*zgg +||http://mql5.com/rq? +||http://msdn.hk/templets/msdn/css/index.js +||http://msdn.hk/templets/msdn/css/msdng.js +||http://msdn.hk/templets/msdn/js/gg.js +||http://mshow.fang.com/s?z= +||http://msstatic.com/huya/main/img/mc-recom_ +||http://msstatic.com/huya/main3/widget/roomGgChat/ +||http://msstatic.com/huya/main3/widget/roomGgTop/ +||http://mt30.com/good/ +||http://mt30.com/ok/ +||http://mtime.cn/tg/ +||http://muimg.com^$domain=lsjsoso.me +||http://muyuge.com/fw.html/ +||http://muzisoft.com/static/*_f.js +||http://mvxz.com/bar3.js +||http://mvxz.com/boximg/ +||http://mvxz.com/img/ +||http://mw6.me/images/*.gif +||http://mwrf.net/images/js/*mrf.js +||http://mwrf.net/images/mrf/ +||http://my0511.com/*/ad_ +||http://my0538.com^*/thumb_1000_70_ +||http://my0832.com/xyz/xx/ +||http://myad.toocle.com^ +||http://mybjx.net/theme/default/js/common/bjx_service_ +||http://mybjx.net/theme/default/js/common/duilianchn.js +||http://mycodes.net/js/$image +||http://mycodes.net/js/hf_txt.js +||http://mydrivers.com/2018/ad/ +||http://mydrivers.com/2018/drivers/yjgg +||http://mydrivers.com/images/*_1100_90. +||http://mydrivers.com/images/hongbao +||http://mydrivers.com/m/apptuijian. +||http://mydrivers.com/news/*843x80. +||http://mydrivers.com/news/2017/db_ +||http://mydrivers.com/news/2018/contentfoot.png +||http://mydrivers.com/news/2018/wangluodianshi.gif +||http://mydrivers.com/www/gg_ +||http://mygeek.cn/pic_$domain=dapenti.com +||http://myhack58.com/Articleacb0 +||http://myhack58.com^*0$script +||http://myhard.com/s?z= +||http://myjianzhu.com/file/upload/201806/12/192806811.gif +||http://mysteelcdn.com/gg/ +||http://myweb.hinet.net/menu.htm +||http://mzhhdn.com/hongbao.jpg +||http://mzyz.com/image*/tj/ +||http://n2.hk/apps/car_feed/tb/*/banner.html +||http://n2.hk/promo/ +||http://nanren400.com/goto/ +||http://naquan.com/packages/assets/js/jquery.reveal.js +||http://narutom.com/v2/js/ca.js +||http://narutom.com/v2/v/$subdocument +||http://natgeomedia.com/wp-content/uploads/*Banner.jpg +||http://nb.zol.com.cn/detail_*.html +||http://nbegame.com/nbead/ +||http://nbegame.com/nbeos/nbegg.html +||http://nbyayu.cn/player.swf +||http://ncdiy.com/webindex/300-250AD.swf +||http://nczsks.com/SCWB/WebResource.axd +||http://nen.com.cn/eap/ +||http://nen.com.cn/service/js/beitou +||http://nen.com.cn/swf/0/*.swf +||http://netease.com/house-public/articleyunyans.js +||http://new-icon.ol-img.com/jslib/ad +||http://newasp.net/apps/counts.php?tid= +||http://newasp.net/apps/misc.php?action=advert& +||http://newasp.net/misc/js/foot_ +||http://news.cn/2018/images/2018rbqj_ +||http://news.hz66.com/IAA/201111/ +||http://news.sina.com.cn/js/792/*head*.js +||http://news.sina.com.cn/pfpnews/js/libweb.js$domain=~www.sina.com.cn +||http://news.sina.com.tw/js/ti.js +||http://news18a.com/image/ad_ina/ +||http://newsmth.net/nForum/baiduunion/ +||http://newsmth.net/nForum/files/adv/ +||http://newsmth.net/nForum/googlead/ +||http://newsres.cn/temp/tempad +||http://newyx.net/j/down_yd.js +||http://newyx.newyx.net/j/ +||http://nex.163.com/q? +||http://nihaovcd.com/js/neirong +||http://ningmengzhibo.com/ement/beforeSearchEment.action +||http://nirentang.com^ +||http://niu20.com/g/ +||http://niubixxx.com/seo/ +||http://njdaily.cn/templates/njdaily2014/widget/njdaily-slideAds +||http://njxzwh.com/downza/pc/v2017/images/downAD +||http://nlark.com/yuque/0/2019/jpeg/124897/1559321053265-assets/web-upload/c81b86b3-3fdd-4722-8e1c-834abc015442.jpeg +||http://nlark.com^$domain=qfg34.com +||http://nmgnews.com.cn/other/003/000/*.swf +||http://no1.168abc.net/upload/ +||http://nownews.com/assets/js/setAds.js +||http://nphoto.net/media/ +||http://nrsfh.com/neirong/ +||http://nvsheng.com/js/gg.js +||http://nxing.cn/uploads/uploads/*-size1220x +||http://nyaa.fun/static/js/costcheck +||http://nyg*.com/inc/poster.php +||http://nz04com.com/aabdd/ +||http://o80wi1ajq.bkt.clouddn.com^ +||http://oa.hinews.cn/work/img/ +||http://oebais8m0.qnssl.com/media/img/edu250-200.jpg +||http://ofweek.com/img/proimage/2017/osl +||http://ofweek.com/pop/ad/ +||http://ok.432kkk.com^ +||http://okbmf.com^*950_120 +||http://okooo.com/I/?method=system.data.ad& +||http://oldpig.org/live.html +||http://olevod.com/poppagen.php +||http://olgame.tw/home/attachment/ +||http://om.cn/api/ad-om/ +||http://omanhua.net/scripts/show/3 +||http://omanhua.net/scripts/show/a +||http://onedala.tv/uploads/banner/ +||http://onegreen.net/MyFile/ +||http://oneinstack.com/images/oneinstack- +||http://onemanhua.com/js/xvideo.js +||http://onetvb.com/assets/javascripts/ +||http://onlinedown.net/Public/img/bomAD.jpg +||http://onlinedown.net/Public/js/headAd.js +||http://onlyitv.com/assets/js/onlyitv.js +||http://onlytvb.com/assets/javascripts/ +||http://ooo.0o0.ooo/2017/11/03/59fc6b3c5b723.jpg +||http://ooqiu.com/ad_js/ +||http://open-open.com/gg_images/ +||http://opticsky.cn/images/2015/gy-px201 +||http://orsoon.com*/zhuanti/ +||http://orsoon.com/assets/images/*.gif +||http://orsoon.com/assets/images/tuidc.png +||http://orzx.im/Document/recommend/flashpoint.html +||http://orzx.im/Document/union/ +||http://orzx.im/images/downloader.jpg +||http://orzx.im/js/*pop +||http://oscaches.com/dj.js +||http://oschina.net/promotion/ +||http://oschina.net/uploads/ad/ +||http://oschina.net/uploads/cooperation/ +||http://ouliu.net/i/*.gif$domain=dygc.org +||http://ouo.us/nyad/ +||http://ousns.net/daohang/ +||http://oxxvideos.xyz/static/tmp/ +||http://oyksoft.com/assets/images/*.gif +||http://oyksoft.com/show/b. +||http://p.37youyou.com/*.jpg +||http://p.7060.la^ +||http://p.kugou.com/?id= +||http://p.zol-img.com.cn^ +||http://p.zol.com.cn/download/detail.js +||http://p4p.sina.com.cn^ +||http://p8u.hinet.net^ +||http://pan66.com/popup/ +||http://panc.cc/uploads/hongbao.png +||http://panda.kdnet.net^ +||http://panjin.net/ichat2/adhtml.htm +||http://panpan.org/js/google +||http://panpan.org/other/ +||http://panpan.org/plus/img/ +||http://panpan.org/templets/ad/ +||http://paopaoche.net/public/bd/article_inc.js +||http://paopaoche.net/skins/count.js +||http://partner.toutiao.com^ +||http://pbmp.ali213.net/js/ +||http://pc0359.cn/style/js/un.js +||http://pc0359.cn/Style/sc/ +||http://pc360.net/wp-content/themes/PcNet/ad/ +||http://pc6.com/img/ +||http://pc841.com/show/ +||http://pcauto.com.cn/forum/fz/hots/ +||http://pccoo.cn/js/dlv1.0.js +||http://pcgames.com.cn*/index.js +||http://pcgames.com.cn/g/ +||http://pchome.com.tw/iframe/$domain=mail.pchome.com.tw +||http://pchome.net/flow.php +||http://pcmx.autohome.com.cn/impress? +||http://pconline.com.cn/_hux_/ +||http://pconline.com.cn/download/*/intf*.js +||http://pconline.com.cn/jrzcz/*/intf +||http://pconline.com.cn/js/ad_ +||http://pconline.com.cn/js/ivy.js +||http://pcpp.com.cn*/pcpp.jpg +||http://pcpp.com.cn/news/a/*_article_right.html +||http://pcpp.com.cn/news/ad/ +||http://pcstore.com.tw/adm/psearch_payad_ +||http://pcstore.com.tw/css/myacc_init.js +||http://pctowap.com/dowap2/mobile/*.js +||http://pdfbook.cn/wp-content/uploads/2017/11/049.jpg +||http://pekingpk10.com^ +||http://penglai.com.cn/UploadFile/image/*.gif +||http://people.com.cn/adv/ +||http://people.com.cn/img/gjt/ +||http://perlmaven.com/img/*0x2 +||http://perlmaven.com/img/sticker-you.jpg +||http://pfizer.com.tw^$subdocument +||http://pfp.sina.com.cn^$script,subdocument +||http://pfp.sina.net/ea/ad/ +||http://pg-ad-b1.nosdn.127.net^ +||http://pg.udn.com/BT/*.swf +||http://pgzhibo.com/uploads/image/20*.gif +||http://pharmnet.com.cn/cnbanner/ +||http://pharmnet.com.cn/js/float_div.js +||http://photofans.cn*/banner/ +||http://php1.cn/uploads/huayun.jpg +||http://phpad.cqnews.net^ +||http://piaodown.com/other/*.js +||http://piaohua.com/js/wlfloat.js +||http://piaohua.com/js/yzz/$script +||http://piaoliang.com/js/all.js +||http://piaoliang.com/js/gg.js +||http://piaotian.com/scripts/read/style +||http://pic.0597kk.com^ +||http://pic.959.cn/media/js/ +||http://pic.ea3w.com^ +||http://pic.fengniao.com^ +||http://pic.gongkong.com/UploadPic/gongkong/ +||http://pic.jd-bbs.com^*.swf +||http://pic.pimg.tw/cwyuni/*.gif?v=$domain=cwyuni.tw +||http://pic.yupoo.com/showflash/ +||http://pic.zol-img.com.cn^$image,domain=www.zol.com.cn +||http://pic.zol-img.com.cn^$object +||http://picb.cc/uploads/2018/06/26/2zxrsi.jpg +||http://picgd.com/images/*.gif +||http://picgd.com/images/2018/12/01/h1pi5.png +||http://piclect.com^*.gif$third-party +||http://picpar.com^$domain=18board.com|18p2p.com +||http://pics.wanlibo.com/js/pagemodulestat.js +||http://pics.xgo-img.com.cn^ +||http://picuphost.com/2016/upload/image/20170422/42206436302.gif +||http://picuphost.com/imghost/upload/image/20171226/122600098149.gif +||http://picuphost.com^$domain=mmload.info +||http://picyq.com/index.php/Home/run/get_ad/ +||http://pigol.cn/myinc/ +||http://piimg.com/508806/d53a8d13a40f814d.gif +||http://piimg.com^$domain=acgura.us|kisssub.org|lsjsoso.me|ref.so +||http://pingmeibang.com/zt/zx.jpg +||http://pingpang.info/themes/v1.0/images/temp/ad/ +||http://pingwest.com/api/news_ad +||http://pingwest.com/wp-content/uploads/*/ad.jpg +||http://pipi.cn/player/ +||http://pixfs.net/js/mib.min.js +||http://pixfs.net/js/mib_falcon +||http://pixfs.net/module/fullPage/dist/ad-full-page. +||http://pjtime.com/js/show_ad +||http://pk200.com/xb/tui.jpg +||http://play6111.com/js/ +||http://playtv.com.cn/Pictuer/ +||http://plures.net/prod/player/live_page_adv +||http://pmb*.tj.ali213.net/js/ +||http://poco.cn/v1_1/rank/get_floating_layer_ad +||http://poco.cn^*_info_banner +||http://popads.net^$domain=nodkey.xyz +||http://popomh.com/js/ +||http://porn87.com/static/stream_ads/ +||http://poster.weather.com.cn^ +||http://potplayer.org/sc/ +||http://poxiao.com/template/default/images/12345.js +||http://ppshk.com^*banner/ +||http://ppsj.com.cn/images/ppsj300.gif +||http://ppsj.com.cn/images/usa_250_120.gif +||http://ppsj.com.cn/ppsj728.gif +||http://pptv.com/game/aplus/client/gamedetail.html +||http://prettyvirgin.com/images/banners/ +||http://prettyvirgin.com/js/show.html +||http://price.com.hk/dfp_price.php? +||http://price.com.hk/ec-discuss-widget.php +||http://price.com.hk/scripts/ysm.js +||http://price.com.hk^$domain=discuss.com.hk +||http://pro.iweihai.cn^ +||http://programmer-club.com.tw/images/uuu/ +||http://property.hk/js/adside.js +||http://ps123.net/MyFile/ +||http://ps557.com/link/ +||http://pstv.tv/pstv.jpg +||http://psyzg.com/Public/Home/images/tuhe_240_236.gif +||http://pt80.net/source/plugin/fysq_ad/ +||http://ptbus.com/s.js +||http://ptfish.com/*/ad$image,object +||http://pub.funshion.com^ +||http://pub.sxrtv.com/crossdomain.xml +||http://publish.ad.youth.cn^ +||http://pupudy.com/images/wxrj.gif +||http://putaoys.com/static/js/acb1.js +||http://putaoys.com/static/js/t.js +||http://putonghua520.com/skins/10ym/3jin.gif +||http://putonghua520.com/skins/10ym/baicai.gif +||http://puudeng.com.tw^$subdocument +||http://pv.sohu.com^$domain=ttzmz.vip +||http://pw321.com/bulu/ +||http://pw321.com^*.gif +||http://pythontab.com/statics/images/*abc +||http://pythontab.com/statics/images/*ads +||http://pythontab.com/statics/images/*comp +||http://pythontab.com/statics/images/*comtu +||http://pythontab.com/statics/images/*show +||http://pythontab.com/statics/images/goodad/ +||http://pythontab.com/statics/images/yigegg/ +||http://qchubxx.com/static/js/edfunc.js +||http://qconbeijing.com/js/infoqcn.js +||http://qcvf.ifeng.com^ +||http://qd.dhzw.org^ +||http://qd.js.sanjiangge.com^ +||http://qd.wanjuanba.com^ +||http://qd.x4399.com^ +||http://qdaily.com/mount_details/pc/ +||http://qdjimo.com/html/js/ +||http://qdosm.cn/images/*.gif +||http://qdross.com/vip/ +||http://qhdlz.net/ssyyss/m.js +||http://qhf168.com/data/attachment/portal/ +||http://qhimg.com/static/*/common/seed.js +||http://qhnews.com/tupian/ +||http://qhres.com/static/*/common/seed.js +||http://qhres.com/static/4b6ab193405b6ca3.js +||http://qhres.com^*/baidu_ +||http://qianjia.com/HotImages/2017/11/img20171109122716999.jpg +||http://qianzhan123.com/jsgg/ +||http://qicheyinyue.wang/wp-content/themes/RedSOHO/images/hongbao. +||http://qihoo.com/hot/text.html?site= +||http://qiming360.com/mingJs/xmKu_ +||http://qimm.org/Uploads/ad/ +||http://qinbing.cn/data/upload/ueditor/ +||http://qingchunji.cn/960x +||http://qingkai.com/2009/html/top.htm +||http://qingkai.com/gg_img/ +||http://qingkan520.com/file/script/ +||http://qingkong.net/skin/htcs/images/980.jpg +||http://qiqi321.com/jquery/ +||http://qiuw.com/static/xin-ad.js +||http://qiuyi.cn/Baojian/ +||http://qixingquan.com/api.php?mod=ad&adid= +||http://qixingquan.com/partner/ +||http://qixingquan.com/qxq-images/dawangka.png +||http://qixingquan.com/qxq-images/js/qxq_t.js +||http://qiyipic.com/common/*%E9%80%9A%E6%A0%8F +||http://qiyipic.com/common/*/225x230.jpg +||http://qiyipic.com/common/*/250-230. +||http://qiyipic.com/common/*/250230. +||http://qiyipic.com/common/*/255x205 +||http://qiyipic.com/common/*/980 +||http://qiyipic.com/common/*/baiyao. +||http://qiyipic.com/common/*/banner.jpg +||http://qiyipic.com/common/*/kehuzhuanqu +||http://qiyipic.com/common/*980x +||http://qiyipic.com/common/*_aLink +||http://qiyipic.com/common/*tonglan +||http://qiyipic.com/common/*vivo +||http://qiyipic.com/common/20141021/sanjiukehuzhuanqu.jpg +||http://qiyipic.com/common/20160302/ban250.jpg +||http://qiyipic.com/common/fix/dasdasdasdk.jpg +||http://qiyipic.com/common/fix/rebull_ +||http://qiyipic.com/common/fix/wh-leftbanner.jpg +||http://qiyipic.com/zongyi/*Banner01.jpg +||http://qiyipic.com/zongyi/fix/mxdj +||http://qiyipic.com/zongyi/fix/runningman20141008_bg02.jpg +||http://qiyipic.com/zongyi/fix/runningman20141008_bg03.jpg +||http://qiyue.com/statics/js/3g.js +||http://qiyun.org/images/js/*.htm +||http://qn.bejson.com^ +||http://qncye.com/templets/default/js/mb.js +||http://qnsb.com/news/index.php?m=poster& +||http://qnvod.net/qna/ +||http://qpgyy.com/add01.html +||http://qpic.cn/fans_admin/0/3_1379495610_1557565080852/0 +||http://qpic.cn/mblogpic/47a05e3dca9d6bc9e20e/2000 +||http://qpic.ws/images/pk*.gif +||http://qq24h.com^$domain=bejson.com +||http://qq260.com/shout.js +||http://qq745.com/m/ad/ +||http://qqcf.com/js/Content_Get.js +||http://qqcyl123.com/js/*.html +||http://qqddc.com/homeSite/news/js/newsad.js +||http://qqfby.com^*ad +||http://qqjia.com/dan.js +||http://qqjia.com/images/ad +||http://qqread.com/*js/$script +||http://qqread.com/swf/ +||http://qqtn.com/js/*0.js +||http://qqtn.com/js/downinfo- +||http://qqtn.com/js/html/down_ +||http://qqtn.com/skin/know/ +||http://qqyy.com/js/commAdv +||http://qqyy.com/js/public_end_add.js +||http://qsptv.com/tpl/newstyle/js/extension.js +||http://qt.biqugezw.com^ +||http://quanmin.tv/static/pages/adranktit.html +||http://qunar.com/render/*Advertisement.jsp? +||http://qunar.com/vata?chan= +||http://qunar.com/vataframe/b.html? +||http://qwertyuiopa.co/qun/top.js +||http://qyule.fun/v-content/ +||http://qz828.com/css/2010/script/*ad +||http://qzone.la/Scripts/m.js +||http://r3sub.com/images/ccc/ +||http://r3sub.com/posters/0069810.jpg +||http://r3sub.com^*0.gif +||http://rainpat.com/Content/1360x55/ +||http://rainpat.com/Scripts/jquery.SuperSlide. +||http://rakuten-static.com^$domain=cwyuni.tw +||http://rakuya.com.tw/position?*&adTagFlag= +||http://rar8.net/htmljs/ +||http://ratedxbiz.com/d/ +||http://rayfile.com/media/img/rili_ +||http://rdance.cn/g- +||http://realsrv.com/popunder1000.js +||http://redshu.com/js/pcAdv.js +||http://redshu.com/js/www/jquerygg.js +||http://renrenfabu.com/Runtime/Js/960_90.js +||http://rentiyishu.org/*.js +||http://rentiyishu99.net/a.js +||http://rentiyishu99.net/b.js +||http://rentiyishu99.net/d.js +||http://rentiyishu99.net/e.js +||http://rentiyishu99.net/f.js +||http://repian.com/a/ +||http://replays.net/j/dazui +||http://replays.net/j/pinglunshang.png +||http://requirejs.cn/ts.png +||http://res.cngoldres.com/web/index/img/*_ad_ +||http://res.ythouse.com/image/index/2012/ +||http://resource.baomihua.com^ +||http://rfidworld.com.cn/js/a.js +||http://rfidworld.com.cn/js/b.js +||http://rfidworld.com.cn/js/c.html +||http://rfidworld.com.cn/js/RFID.js +||http://rfidworld.com.cn/js/RFIDExec.js +||http://rfidworld.com.cn/Notice/Home +||http://rigengjihua.cn/banner/ +||http://right.com.cn/forum/static/image/common/logo*.gif +||http://right.com.cn/logo/*.gif +||http://right.com.cn/logo/yyb.png +||http://riju.com/pr/$domain=jpfans.com|jpseek.com +||http://rijutv.com/statics/js/tb.js +||http://rijutv.com/uploadfile/8c96dc2f564c1b56.png +||http://rising.cn/js/haoAdData.js +||http://rising.cn/rxbox/ +||http://rising.cn^*/pic-ad/ +||http://rising.com.cn/weblog/ +||http://rjfcxxw.com/yimaopic/ +||http://rjsos.com/channel/laomo_dibu.png +||http://rjzxw.com/include/ +||http://rkanr.com/data/cpcache/cp*.js +||http://rm.sina.com.cn^$domain=~sea.sina.com.cn +||http://rsccs.com/code/ +||http://rsdown.cn/static/new0613/down.js +||http://rsdown.cn/static/t/ +||http://rtbs.cn/bi.js +||http://ruanyifeng.com/9he/ +||http://ruanyifeng.com/blog/checker.js +||http://rugao35.com/Public/config/Couplet/Index +||http://rugncn.ifeng.com^ +||http://ruguoapp.com^$domain=aixiaoju.com +||http://ruian.com/img/2016/a1-6-1.gif +||http://ruian.com/img/y13/ +||http://ruiwen.com/js/a/p.js +||http://runmang.vip/img/ +||http://runsky.com/bbsadv- +||http://runsky.com/html/*_index_ +||http://ruten.com.tw/js/gads_ +||http://ruten.com.tw/search/imp_ad_ +||http://ruten.com.tw^*/ahd_ +||http://ruyig.com/730x76.png +||http://rxdsj.com/Runtime/js/vod960.js +||http://rznews.cn/viscms/r/cms/rzw/rzxw/images/*.swf +||http://s-msn.com/portal/xiatui.js +||http://s.go.sohu.com^*/?callback= +||http://s.pacn.ws^*?$image,domain=dmhy.org +||http://s.yimg.com/*_160x800_$subdocument +||http://s.yimg.com/gs/apex/ +||http://s.yimg.com/ja/ap/$script,subdocument,domain=hk.news.yahoo.com|hk.yahoo.com|tw.news.yahoo.com|tw.stock.yahoo.com|tw.yahoo.com +||http://s.yimg.com/ja/ap/tw/js/ +||http://s.yimg.com/uv/dm/scripts/syndication.js +||http://s.yimg.com^*/flash_general_$domain=~tw.yahoo.com +||http://s1.pplive.cn/sta.js +||http://s8bbs.com/ad/ +||http://s8bbs.com/g.php? +||http://sam*.baby-kingdom.com^ +||http://same*.stockstar.com^ +||http://same.chinadaily.com.cn^ +||http://same.eastmoney.com^ +||http://sass.hk/js/ggcn.js +||http://sass.hk/plus/mytag_js.php?aid= +||http://sax*.sina. +||http://sbo8.com/static/theme/js/bottom. +||http://sc.chinaiiss.com/do.php?do=ad& +||http://sccnn.com/SF/zt.jpg +||http://scibook.cn/tuiguang. +||http://sciencenet.cn/html/js/n +||http://sciencenet.cn/images/20180521.jpg +||http://scol.com.cn/scol-3/js/08scol_text_ +||http://sconline.com.tw/top/coolpc_ +||http://script.vccoo.com^ +||http://scupio.com/adpinline/ +||http://scw98.com/ADMM. +||http://scw98.com/js/Index +||http://sd173.com/images/ +||http://sd888.org/house/flash/ +||http://sd888.org/images/tbuyer200.jpg +||http://sdbeta.com/statics/mystyle/js/1 +||http://sdgundam.cn/js/91.js +||http://sdo.com/static/image/mkads/ +||http://sdzbcg.com/images/sdfhyl +||http://se533.com/template/new/css/*.js +||http://se8u.cc/statics/images/*.gif +||http://secretmine.net/wp-content/uploads/2019/08/secretmine_20190809_1565312910.jpg +||http://seek68.cn/img/*.gif +||http://sefu8j.com/index.php?m=poster& +||http://segmentfault.com/sponsor/ +||http://seqing.world/qq/qq.js +||http://sese277.info/photo/ +||http://sesefu8.com/index.php?m=poster& +||http://sesefu8.com/statics/js/layer/layer.js +||http://setn.com/js/advertisement? +||http://sex141.com/img/banner/ +||http://sex2077.com/js/dl.js +||http://sex2077.com/js/gg.js +||http://sexbarss.net/wap/ +||http://sextop.com.tw/upload/blocker/header_new.gif +||http://sexyno1.com/mk-banner/ +||http://sgg.southcn.com^ +||http://sh.sina.com.cn/iframe/522/ +||http://sh.sina.com.cn/js/441/ZwyArticle_commo_23.js +||http://shandian.biz/a/guga.js +||http://shang.hlgnet.com/code/ +||http://shangqun.com/webforms/embed/ +||http://shangxueba.com/ask/images/woxiaoyun.jpg +||http://shaoxing.com.cn^*.files/gg +||http://shaoxing.com.cn^*gg. +||http://share.dmhy.org^*?$image +||http://share.gzdsw.com^ +||http://share44.com/300 +||http://share44.com/adad2014/ +||http://shbear.com^*/ad/ +||http://shdx10000.com/yang/ +||http://shen4club.com/style/*.js?v= +||http://shfq.com/data/attachment/portal/ +||http://shhgg.in/js/shangjia +||http://shhgg.in/shlf1314/ +||http://shihuo.cn/alibtn_ +||http://shimo.im/api/ads? +||http://shiyanlou.com/img/shiyanlou- +||http://shoudian.org/diantong/laoma +||http://shouji.com.cn/static/v2/images/sj_banner_ +||http://shouyoutv.com/assets/api/web/v4/js/global_head.js +||http://showhaotu.$domain=18board.com|18p2p.com +||http://shspdt.com^$domain=11papapa.com +||http://shufazidian.com/float/yanue. +||http://shufazidian.com/image/728x90ty.jpg +||http://shulihua.net/js/gzlishi468google.js +||http://shulihua.net/js/gzlishigoogle.js +||http://shulihua.net/js/topcen.js +||http://shulihua.net/js/yegonggao.js +||http://shuowan.com/Public/shuo/20160119/569dafddd13be.jpg +||http://shuqi6.com/static/jquery/gg.js +||http://sihbb.com/yang/ +||http://sina.cn/cm/sinaads_ +||http://sina.cn/interface/*_game_wap_home_mid_list_in. +||http://sina.cn^*/impress? +||http://sina.com.cn/131/20150515/266.js +||http://sina.com.cn/activity/promotion? +||http://sina.com.cn/js/*/AdvertisingByNewIndex_ +||http://sina.com.cn/js/*/bgads.js +||http://sina.com.cn/js/87/20140101/hongbao/ +||http://sina.com.cn/litong/ +||http://sina.com.cn/NewIndexAdStart.js +||http://sina.com.cn/other/src/app/FinanceAppPics.js +||http://sina.com.cn/rwei/hapi2014/64video_titu_logo_500x90.gif +||http://sina.com.tw^$subdocument +||http://sina.com/ads/ +||http://sina.com/assets/js/dart/ +||http://sina.com/rm/ +||http://sinaimg.cn/finance/zwy/sidead_ +||http://sinaimg.cn/jslib/kuozhanad.js +||http://sinaimg.cn/large/$domain=360-bo.com|btshoufa.com|btshoufa.net|chakd.com|seehd.so|xclient.info +||http://sinaimg.cn/large/*.gif$domain=mp4ba.la|vip-free.com +||http://sinaimg.cn/large/005BYqpggy1g3m368q4ucj30xc03cwf2.jpg +||http://sinaimg.cn/large/005EuLLtgw1eji5kzbgvlg30r801ogpy.gif +||http://sinaimg.cn/large/0060lm7Tly1g3a6izuyo6j30qk01xt93.jpg +||http://sinaimg.cn/large/0060lm7Tly1g3dc0ae1b8j30d50foaax.jpg +||http://sinaimg.cn/large/006CZIQPgy1fbziwpw0b8g306y06yq7w.gif +||http://sinaimg.cn/large/006CZIQPgy1fbzjg10emag30ka02in2s.gif +||http://sinaimg.cn/large/006CZIQPgy1fh2jcc14tog30l402iahm.gif +||http://sinaimg.cn/large/006CZIQPgy1fsc8y98k8mg30jg01odi6.gif +||http://sinaimg.cn/large/006UijYYgy1fjcaf2sjbqj30sc09q49o.jpg +||http://sinaimg.cn/large/006ZdrOOgy1flbruaukyxg30l401o444.gif +||http://sinaimg.cn/large/006ZdrOOgy1flbrubi93eg30m801oaff.gif +||http://sinaimg.cn/large/006ZdrOOgy1flbrum925hg30pu01o0z0.gif +||http://sinaimg.cn/large/006ZdrOOly1fld3ezu0n2g304g0godo9.gif +||http://sinaimg.cn/large/007cYCbaly1ftdqurgyj4g30hs02iaaq.gif +||http://sinaimg.cn/large/007hXlMJgy1fuyt7uoe5lg30l401o444.gif +||http://sinaimg.cn/large/5431d036ly1fh6gmu6gxmg20tg02i3yr.gif +||http://sinaimg.cn/large/5431d036ly1fhxbxz31nkj20tg02ignm.jpg +||http://sinaimg.cn/large/673b17ccly1ffu8mb9g4zj20k8020whe +||http://sinaimg.cn/large/692843begy1fy539f881bj20qo028abm.jpg +||http://sinaimg.cn/large/8c8bd65d$domain=loldk.com +||http://sinaimg.cn/large/df8f080agw1f47u58kr42j20dw0dwadl.jpg +||http://sinaimg.cn/large/e6b79078ly1fdwzlienvfg20uk01odg0.gif +||http://sinaimg.cn/mw1024/006NYgrsgy1ffahk0lf8og30i204677m.gif +||http://sinaimg.cn/mw1024/006VdIwfgy1fiqkkhowdzg30qo02876g.gif +||http://sinaimg.cn/mw690/005th0Pegy1fmd666rsh2j30go05kn14.jpg +||http://sinaimg.cn/mw690/0060lm7Tly1fwa4j35tfpj30fr0nodg9.jpg +||http://sinaimg.cn/mw690/7d1c8e96gw1e6f70r8mwcj20qe082q40.jpg +||http://sinaimg.cn/mw690/83e2e207gy1ft97e1fenkj20fr0no40e.jpg +||http://sinaimg.cn/mw690/a1916e89gw1dye4d6qvyaj.jpg +||http://sinaimg.cn/mw690/a1916e89gw1dye4d74zmij.jpg +||http://sinaimg.cn/unipro/ +||http://sinaimg.cn^$domain=04stream.tv|11luba.com|11papapa.com|12580sky.com|18board.com|18p2p.com|22ccaa.com|360bifen.com|46bk.com|500xxxx.com|522dy.com|63ef.com|678pan.vip|7mav2.com|7mshipin.org|94xxmm.com|999hdhd.com|99a21.com|9dog.pw|a3v4.top|abminbuy.com|acglover.me|aotu101.com|aotu103.com|bejson.com|blz105.com|blz20.com|blz24.com|btjia.cc|caibaojian.com|cangjige.net|cangjige.win|caoliuzx.com|ccxx99.com|cgfdjz.net|cnmysoft.com|dayanzai.me|dxg06.com|e-learn.cn|ems183.cn|fdzone.org|fulitxx.com|goodzhibo.com|ifulidh.in|ilxdh.com|izzs.cc|jiecao123.com|kccdk.com|kiees.cn|kisssub.org|landiannews.com|lifan.moe|llj22.com|neonan.com|niluba.cc|pianyuan.net|rarbt.cc|sbme.me|se533.com|subku.net|supfree.net|thztv.cc|tiantianzhibo.com|tiyulive.cn|txtshu365.com|viidii.info|vx666.com|wszhibo.com|yaoshe1.com|zhibo8.xyz|zimuku.cn|zimuku.la +||http://sinaimg.cn^*/deco/$script +||http://sinaimg.cn^*_wap_ad_ +||http://sinajs.cn/t4/apps/publicity/static/wbad.js +||http://sinajs.cn/t6/home/js/pl/guide/adforfqy/ +||http://sinajs.cn/t6/home/js/pl/guide/bigday/ +||http://singlove.com/qq/qq.js +||http://sinolub.com/index.php?m=poster& +||http://sinolub.com/uploadfile/201*.swf +||http://site-bk.oss-cn-shenzhen.aliyuncs.com/img/aliyun/ +||http://sitv.com.cn/cookiead.php +||http://sj33.cn/js/side.js +||http://sj33.cn/js/tuchong.js +||http://sjzdaily.com.cn/sjznewsad/ +||http://skads.gxsky.com^$script +||http://slit.cn/slimages/ +||http://smzy.com/v1/img/ +||http://snbnhngl.ifeng.com^ +||http://so.com/baike/ads? +||http://so.com/recomm/simi? +||http://so.com/sug-hot? +||http://so.open.163.com/v/list.htm?pid= +||http://soaspx.com/images/hws.gif +||http://soaspx.com/images/iiszj.gif +||http://soaspx.com/images/js/dropdown.js +||http://sobaidupan.com/top_txtad.asp +||http://sobaigu.com/images/server_tourist.jpg +||http://sobt8.org/Public/static/js/common.js +||http://sodu.cc/js/xufu.js +||http://soduso.com/js/4 +||http://soduso.com/js/sat.js +||http://soduso.com/js/so.js +||http://soft.mumayi.net/images/download.gif +||http://soft.mumayi.net/js/ +||http://soft6.com/index.php?m=poster& +||http://softhy.net/hp/ +||http://sogou-inc.com/AdvPreview. +||http://sogou.com/acquireAdvertise. +||http://sogou.com/adlist? +||http://sogou.com/amdjs/release/common/act_all_ad. +||http://sogou.com/ask?id= +||http://sogou.com/athena/ +||http://sogou.com/GetAdv. +||http://sogou.com/html/ext/agentsdk.js +||http://sogou.com/img_logo/wp.js +||http://sogou.com/uniplan/?pageID= +||http://sogou.com/wap_ask_service? +||http://sogoucdn.com/dhfe/ +||http://sogoucdn.com/imgu/*.swf +||http://sogoucdn.com/nstatic/js/tmallskin_ +||http://sogoucdn.com/wap/js/ +||http://sohu.com.cn/ppp/bms/bms.popup. +||http://sohu.com/adgtr/ +||http://sohu.com/api/labs/hotnews/c/load? +||http://sohu.com/api/labs/mp/load? +||http://sohu.com/api/photo/photo_bottom.json +||http://sohu.com/interaction/get/ +||http://sohucs.com^$domain=renrenfabu.com +||http://sonimei.cn/images/gg.png +||http://sonimei.cn/images/llq.png +||http://sonimei.cn/qipai.jpg +||http://sooopu.com/asphtml/plnew. +||http://sooopu.com/js/*950.js +||http://sooopu.com/js/contentad330.js +||http://sootoo.com/son_media/msg/2010/11/16/30324.jpg +||http://sopan.me/images/1.gif +||http://soufunimg.com/imgd/viewimage/*/640x210 +||http://souid.com/images/css/123.js +||http://souid.com/templets/js/sougg.js +||http://soulu365.com/images/zhuce.jpg +||http://southmoney.com/page/pc/ +||http://southmoney.com/page/top +||http://southmoney.com^*/Inc/ +||http://sozi.cn/images/tj/downad +||http://sozi.cn/images/tj/hukead.gif +||http://sozi.cn/templets/sozi/js/js.js +||http://speedtest.cn/assets/images/ce_ +||http://sportscn.com/js/commerical +||http://sportsv.net/dist/ads/ +||http://sportsyeah.hk/wp-content/uploads/XfwppqROyThU/qQTuYinCrndr.js +||http://spqi.xyz/static/tmp/ +||http://srzc.com/images/*.swf +||http://ssgg.chazidian.com^ +||http://ssnn.net^*-200-250.jpg +||http://ssp.hinet.net^ +||http://ssp.zf313.com^ +||http://sspai.com/api/v1/recommends?*=article_ +||http://sspai.com/attachment/sponsor/ +||http://sss.sege.xxx^ +||http://sssvd.china.com^ +||http://ssyy881.com/zz/ +||http://stackpathdns.com/imgs/wondershareAd +||http://starbaby.cc/201608/36/f526d86de292e4.jpg +||http://starnnews.com/banner/ +||http://stat.api.4399.com/crossdomain.xml +||http://static-ssp.yidianzixun.com^ +||http://static.doyouhike.net/partner/ +||http://static.tianyaui.com^*/stat_20080313.js +||http://stats.chinaz.com/tool/ +||http://stats.chinaz.com/tool_img/ +||http://stcn.com/common/flash/aigu.swf +||http://steamcn.com/data/attachment/common/*.gif +||http://steamcn.com/img/ +||http://steelcn.cn/img/bj_*_146_315.jpg +||http://stheadline.com/images/heading-jm +||http://stnn.cc/images/xy/sfs +||http://stockstar.com/*DUILIAN&t= +||http://storm.mg/ad? +||http://storyren.com/images/dl +||http://storyren.com/imgg/ +||http://strip.taobaocdn.com/tfscom/$subdocument +||http://stulip.org/static/js/header.js +||http://su.bdimg.com/static/dspui/js/ +||http://subhd.com/images/970 +||http://subhd.com/images/ap/ +||http://sudupan.com^*.gif +||http://sufile.com/jsa/ +||http://suibi8.com/aa1.gif +||http://suibianlu.com/zb_users/theme/tx_fzy/script/zhao.js +||http://sumo.com/api/load/ +||http://suning.com/cpc/getCpcSearchDatasRev? +||http://suning.com/getCpcDatas? +||http://super.cat898.com^ +||http://super.kdnet.net^ +||http://supfree.net/england/ +||http://supfree.net/top.gif +||http://supfree.net/xxx/ +||http://suv.cn/data/js/64.js +||http://suv.cn/data/js/86.js +||http://synacast.com^ +||http://szfcol.com/images/wxright240.jpg +||http://szfcol.com/js/siteAd.js +||http://szhk.com/565.jpg +||http://szhk.com/iframe/ +||http://szhk.com/include/taobao +||http://szhongzi.com/js/ +||http://szkaidi.cn/statics/g +||http://sznews.com/*.files/$image,object +||http://sznews.com/s?z= +||http://szonline.net/zhongyuan +||http://szyepu8.com/data/AADDimg/ +||http://t.cn/RkHfjHk| +||http://t57.cn/cert.php +||http://taboola.com^$domain=sinovision.net +||http://taijuba.com/js/*_ +||http://taijuba.com/js/tj +||http://taipwl.com/yingshidaquan/popwin.js +||http://taiwandaily.net/wp-content/uploads*_600x100. +||http://taiwannutrition.com/blog/wp-content/plugins/arscode-ninja-popups/ +||http://taiyingshi.com/js/960_ +||http://talkfx.net/showTKImg? +||http://taobaocdn.com^$image,domain=cnblogs.com +||http://taoguba.com.cn/js/tgbduilian +||http://taoguba.com.cn/res/libs/tgbxc.js +||http://taosq.net/public/250x250.jpg +||http://taoyizhu.com/images/guanggao2/ +||http://taporn.com/d/ +||http://tbcdn.cn/mm/tanxssp-custom/sina_ +||http://tbtdg.com/img/2018s11.jpg +||http://tc.cn/ad123/ +||http://tc.cn/g/dl.ashx? +||http://tc.cn/g/upload/ +||http://tc.cn/news/images/h.jpg +||http://tc.cn/news/images/right.jpg +||http://tcjy66.cc^ +||http://tcmap.com.cn/js/b_ +||http://techug.com/mug/ +||http://techweb.com.cn^*aliyun +||http://tengtv.com/skin/xin/Picture/img +||http://texnet.com.cn/images/cnbanner/ +||http://tf.360.cn^ +||http://tfg2.com/images/upfile/AD/ +||http://theporn.xyz/static/tmp/ +||http://third-bucket.oss-cn-shenzhen.aliyuncs.com/ad/ +||http://thisav.com/0*.js +||http://thisav.com/index.js +||http://thisav.com/nb/ +||http://thisav.video/v3/nb/ +||http://thyrsi.com^$domain=cnscg.com +||http://thzok.com/6/ +||http://thzok.com/images/*.gif +||http://tianjimedia.com/s?z= +||http://tianmu.com/DA201 +||http://tianqi*.com/static/banner/data_tuiguang.js +||http://tianshif.com/zeis/ts.gif +||http://tianshui.com.cn/datugg/ +||http://tianshui.com.cn/newbg +||http://tianshui.com.cn/Scripts/AC_ +||http://tianshui.com.cn/yb.html +||http://tiantianzhibo.com/js/banner.js +||http://tiantianzhibo.com/sda/$image +||http://tianyaui.com/gamify/broadcast/js/ +||http://tianyaui.com/global/broadcast/*/bc_ +||http://tianyaui.com/global/broadcast/js/router.jsonp +||http://tianyaui.com/global/m/v3/static/js/list_ +||http://tieba.baidu.com/f/urlcheck? +||http://tieba.baidu.com/game/markConf? +||http://tietuku.$domain=fulisuo1.com|papa1024.com +||http://tietuku.com/b975a9f7c494738b.gif +||http://tietuku.com/d57c01987e74d8f8.gif +||http://tiexue.net/domain-policy/ +||http://tiexue.net/zgg/ +||http://tieyou.com/images/xiao_tuan_you.jpg +||http://tigtag.com/images/*1000x +||http://tigtag.com/images/pic1/ +||http://tigtag.com/styles/phpcms/js/tigtag/ads.js +||http://tiimg.com^$domain=678cn.com +||http://tiimg.com^*.gif +||http://tingchina.com/images/aibaoliang.gif +||http://tingchina.com/js/*220- +||http://tingchina.com/js/760 +||http://tingchina.com/js/990 +||http://tingchina.com/js/allad.js +||http://tingchina.com/js/dp468 +||http://tingge123.com/attachment/js/mm +||http://tingroom.com/file/A*.js +||http://tingroom.com/images/qsbdc.gif +||http://tingroom.com/images/z923.js +||http://tingroom.com/skin/dy/images/enread.jpg +||http://tingroom.com/tingroom/ad/ +||http://tingvoa.com/images/*img.js +||http://tingvoa.com/images/top_600_80.js +||http://tinypic.com^$domain=fdzone.org|jandown.com|mimima.com +||http://titan007.com/ad/ +||http://titan007.com/images/item.gif +||http://titan007.com/news.aspx +||http://tiyuxiu.com/media/mm/ +||http://tk.504pk.com^ +||http://tmbbs.com/data/attachment/portal/*.swf +||http://tmdm.tv/fgr/ +||http://to8to.com/api/ggdata.$domain=~shejiben.com +||http://tohomh123.com/js/funasd.js +||http://tom*.com/js/advment.js +||http://tom.com/*TomFlashAd +||http://tom.com/adsender/ +||http://tonnn.com/promotion2/*.js +||http://toolfk.com/common/cp.js +||http://toolfk.com/tools/images/vps/ +||http://toolnb.com/Public/aliyun/900x60.png +||http://topmba.mobi/ad/ +||http://topthink.com/api/basic/ +||http://totheglory.im/pic/business/ +||http://totheglory.im/pic/fangtuo.jpg +||http://totheglory.im/pic/picad/ +||http://totheglory.im/pic/ttg- +||http://totheglory.im/pic/ttg_ +||http://tp-shop.cn/Public/images/830-80- +||http://tp.sgcn.com^ +||http://tq121.com.cn/j/ad/ +||http://trafficjam.cn^$third-party +||http://trendmicro.com.tw/wp-content/uploads/*Banner +||http://truvidplayer.com^$domain=ck101.com +||http://ts.cn^*/site1/$object +||http://tt.biquge.la^ +||http://tt1069.com/bbs/zgg_ +||http://tt1069.com/or_pu_0604.js +||http://tt1069.com/script.min.js +||http://tt1069.com/t0602.js +||http://tt27.com/js/jsg/ +||http://ttavav6.com/zz/ +||http://ttkyy.net/uploads/allimg/201710/1a13f1cdc0917406.jpg +||http://ttll.cc/js/ttll/ +||http://ttrar.com/live/ +||http://ttx.cn/js/float.js +||http://ttyavav.com/kanshenmekan/ +||http://ttyavav.com/qian/ +||http://tuan.cs090.com/gettuan.php? +||http://tudouui.com/tspecial/assets/PauseContainer.swf +||http://tudown.com/script/subhd.js +||http://tui.gtimg.com//res/ +||http://tui22.com/b/ +||http://tui22.com/cc/ +||http://tuicool.com/images/upload/aliyun +||http://tumb8r.com/zb_users/upload/20*.gif +||http://tupian55.com^*.gif +||http://turnpage.com/image/product/common/appcgn.png +||http://tuwan.com/myad/ +||http://tuyiyi.com/images/zone/201706/1-1F62G232310-L.png +||http://tuzz.cn/AD_ +||http://tv1box.com/Runtime/Js/ +||http://tv432.com/templets/gg.js +||http://tv699.com/AllTemplet/js/ +||http://tv699.com/Templet699/js/ +||http://tvmao.com/images/style/yx500x160.gif +||http://tvyan.com/images/jscss/tv- +||http://tw.beanfun.com/bfweb/NEW/commonlogin +||http://tw.buy.yahoo.com/?z= +||http://tw.partner.buy.yahoo.com^$domain=cool3c.com +||http://twaifei.info^*.gif +||http://twavtv.com/js/jquery.colorbox +||http://twmeiju.com/images/axd.js +||http://twunbbs.com/images/ +||http://txahz.com/static/image/tp/ +||http://txtshu365.com/img/ +||http://txzqw.me/attachment88txzqw/*.gif +||http://txzqw.me/tupian/ +||http://ty121.cn/IAA/ +||http://tzfdc.com.cn/userfiles/flash/ +||http://tzfdc.com/fdcSell/ +||http://tzfdc.com/Images/09/flv/flv_index.js +||http://u.63kc.com^ +||http://u.cnzol.com^ +||http://u.ctrip.com/showcaseadvertisementsit/ +||http://u.riju.com/click.php +||http://u17i.com/readad/ +||http://u627.com/dis/tj.js +||http://uc.cn/s/uae/g/0s/ua.js +||http://uc.zhuici.com^ +||http://uc129.com/images/top_hjsj.jpg +||http://uc129.com/m/ +||http://ucbug.com/gaibian/js/tlys.js +||http://ucbug.com/js/ +||http://ucbug.com/new2018/ +||http://uchks.com/2018/% +||http://uczfl.com/data/content +||http://udn.com.tw/upf/*_banners/BD/ +||http://udn.com.tw/upf/2015_money/SSI/ad/ +||http://udn.com/2010MAIN/inc/t03-CMS.html +||http://udn.com/common/iframe/ +||http://udn.com/common2/iframe/ +||http://udn.com/SSI/neckFrame +||http://udn.com^*/ad/ +||http://uedfa.net/Static/imgs/affiliate/ +||http://ufanw.com/js/hongbao.js +||http://uho.com.tw^$subdocument +||http://ulifestyle.com.hk/images/*_300x100 +||http://ultraimg.com^$domain=18board.com|18p2p.com +||http://union.591.com.tw/cpt? +||http://union.china.com.cn^ +||http://union.yihaodian.com^ +||http://untitled.dwstatic.com^ +||http://uooyoo.com/hz/*str.js +||http://up.hiao.com^ +||http://up.qingdaonews.com/up/$object,script +||http://upaiyun.com/newimg88/2017/11/yideng +||http://upaiyun.com/system/post_tile/new_web_banners/ +||http://upan.cc/images/pay/ +||http://upantool.com/a/ +||http://upload.cc/i/*.gif$domain=natgeomedia.com +||http://upload.cc^$domain=141jj.com +||http://upload.jjxw.cn^*.swf +||http://uploadhouse.com^*.gif$domain=wishct.com +||http://uploads.duapp.com^$domain=52vip.net +||http://usnewsexpress.com/wp-content/uploads/*ad- +||http://usxpic.com/btimg/upload/image/20181018/101806323369.png +||http://uu114.cn/static/*/ad.js +||http://uulucky.com/show- +||http://uumtu.com/js/lqbz.js +||http://uuu9.com/news/css/news_content_in.js +||http://uuu9.com/yoyo_ +||http://uuu9.tieba.com^$subdocument +||http://uwants.com/dfp_forum.php?au=Uwants_Web_ +||http://uwants.com^*_prod.html +||http://uxxux.com/js/zd.js +||http://uzzf.com/skin/know/ +||http://v.beta.yinyuetai.com/swf/plugins_new.xml? +||http://v.huanqiu.com/tres/xml/vda.xml +||http://v4.cc/m/common.js +||http://v4dwkcv.com/html/click/ +||http://v8gay.com/apps/misc.php?action=advert& +||http://vansky.com/agdg/homegg/ +||http://vansky.com/agdg/infoRight/ +||http://vansky.com/agdg/middle/ +||http://vansky.com/agdg/vans/*_top +||http://vansky.com/agdg/vans/adv +||http://vansky.com/agdg/vans/tabbao +||http://vansky.com/index_files/*.gif +||http://variflight.com/carnoc/ad/ +||http://vdianying.cc/img/youhuiquan250.gif +||http://vdianying.cc/img/zfbhb.png +||http://vdianying.cc/wp-content/plugins/wp-adblock-dedect/ +||http://vdisk.cn/img/*.gif +||http://veryhuo.com/images/soft/js/download +||http://veryhuo.com/plus/js/ +||http://vgao.xyz/images/*.gif +||http://videojj.com/api/v1/adsTags? +||http://videojj.com/api/v1/plat_tags? +||http://videojj.com/flash/bin/vjj_config.xml +||http://videospeedy.com/myimg/ +||http://videowood.me/assets/js/popup.js +||http://videowood.tv/popjavascript +||http://vip.luanren.com/data/*.gif +||http://vipbuluo.com/2/123.png +||http://vipcn.com/hezuo/ +||http://vipcn.com/hz/down_r.js +||http://vipcn.com/js/indexfoot.js +||http://vipdage.com/wp-content/uploads/ad/ +||http://vipyearha.com/uploads/20*.gif +||http://visit-japan.jp/parts/visitjapan_f35_170_170.jpg +||http://vista.tgbus.com/s.js +||http://vista.tgbusdata.cn/s.js +||http://vista.tuwan.com/s.js +||http://vjcdn.com/wp-content/uploads/*640x200 +||http://vkeke.net/public/agd +||http://vkugq.com/data/attachment/portal/ +||http://vnet.cn^*.html +||http://voc.com.cn/adsClick/ +||http://voc.com.cn/Frame/qqms_cs.html +||http://voc.com.cn/js/xc/ +||http://vodtw.com/m- +||http://vsimg.com/jd.gif +||http://vuejs.org/images/geekbang +||http://vuetifyjs.com/supporters.json +||http://vupload.duowan.com^ +||http://vx.com/api/ads? +||http://vzmz.com/template/paody/aaaa/*0 +||http://vzmz.com/template/paody/aaaa/357.js +||http://w010w.com.cn^$subdocument +||http://w3school.com.cn/i/kaikeba.gif +||http://w3school.com.cn/i/sp_header.gif +||http://w3school.com.cn/i/sp_sidebar.gif +||http://w51t.com^$subdocument +||http://wa.kuwo.cn/lyrics/img/kwgg/ +||http://wacowla.com/wp-content/plugins/popover/js/ +||http://wallstcn.com/image?url=http%3A%2F%2Fcbjs. +||http://wallstcn.com^*-300x250. +||http://wallstreetcn.com/apiv1/earn/impression/ +||http://wallstreetcn.com^*/ads^ +||http://wan.liebao.cn/zt/ +||http://wan.sogou.com/static/fragment/ +||http://wan.sogoucdn.com/cdn/flash/$domain=~sogou.com +||http://wandouys.com/Runtime/Js/ +||http://wangbase.com/blogimg/asset/201806/bg2018060604.jpg +||http://wanghualang.com/wp-content/gallery/ad/ +||http://wangjing.cn*/upload/com/ +||http://wangjing.cn/iframe/zhounian.php? +||http://wangjing.cn/images/js/YlFloat.js +||http://wangpan007.com/themes/default/js/global.js +||http://wanmcy.com/toolsda/ +||http://wanwan.sina.com.cn/third_party/ +||http://wanyx.com/Public/js/cqby.swf +||http://wanyx.com/Public/js/qian.js +||http://wbzol.com/swf/352X76.swf +||http://wdstatic.cn/tg/v2ex/ +||http://wdzj.com/wdzj/images/hezuo/ +||http://we560.com/js/*.js +||http://weathercn.com/m_mobile/ad_image/ +||http://web.900.la^ +||http://webfly.bid/images/bill960x90.gif +||http://webjx.com/zanzhushang/ +||http://webkaka.com*/click/$image +||http://webkaka.com/info/script/articleAd.js +||http://webkaka.com/script/cp.js +||http://wehefei.com/htmlphp/tmall/ +||http://wei2008.com/js/*0. +||http://wei2008.com/js/jump +||http://wei2008.com/js/t_ +||http://wei2008.com/skin/js/top.js +||http://weike87.com/images/*0 +||http://weike87.com/images/*1 +||http://wendangku.net/js/common.js +||http://wendellyu.com/banner/ +||http://wenku.baidu.com/browse/interface/getrec? +||http://wenku1.com/js/head.js +||http://wenkuxiazai.com^*reward +||http://wenxiu998.com/static/js/top.js +||http://west.cn/vcp/getJScode/ +||http://weste.net/js/showpagead.js +||http://wew.dushiwenxue.net^ +||http://whinfo.net.cn/ad20 +||http://whinfo.net.cn/js/adDuiLian_ +||http://whinfo.net.cn/js/fly_right.js +||http://whnews.cn/news/data/*gg +||http://whnews.cn/wh_public/dl/ +||http://whnews.cn/wh_public/xuxu/ +||http://wholehk.com/atttuop.js +||http://wholehk.com/ptpptt.js +||http://whsir.com/image/aliyun +||http://wigcw.cn/20180109150051.png +||http://wigcw.cn/240X355.jpg +||http://williamlong.info/script/sidebar.js +||http://win007.com/js/flashad +||http://win007.com/mn/ +||http://win0168.com/images/item.gif +||http://win2008.info/gongyi.gif +||http://windows7en.com/images/ +||http://windows7en.com/static/images/xiaobai_ +||http://windows7en.com/statistics/statistics.js +||http://windows7en.com/statistics/stats.js +||http://winning11cn.com/temp/*.gif +||http://winning11cn.com/temp/bifen/ +||http://winvvv.com^$subdocument +||http://wishdown.com/img/ +||http://wlrjy.com/assets/images/*.gif +||http://wlrjy.com/assets/images/tuidc.png +||http://wm114.cn/0images/hlbxd3.jpg +||http://wmzhe.com/pics/ae/d3/ +||http://wn789.com/wp-content/uploads/*/SugarHosts +||http://wo256.com/256_gg/*.gif +||http://woaidu.org/images/20180802/3.jpg +||http://wobuka2.com/js/ +||http://wokao.co/qq/qq.js +||http://woozooo.com/img/m*.js +||http://worldcup1.com^$domain=avcao.cc +||http://wowad.wow-classic.com^ +||http://woyaoq.com/201904100958_5cad4dbac9c5f.png +||http://wp.com/fbcinema.com/wp-content/uploads/20*?w=450 +||http://wp.com/fbcinema.com/wp-content/uploads/20*?w=640 +||http://wpjam.com/wpjam/banner/qiniu.png +||http://wples.com/pc/common.js +||http://wpwdf.com^ +||http://wstimes.cn/public/wstimes/js/*ad +||http://wstx.com/api.php?mod=ad& +||http://wudizuqiu.com/fy +||http://wuliao.epro.sogou.com^ +||http://wumii.cn/site_images/c/ +||http://ww7814.win/pic +||http://wwuuoo.com/11bb/ +||http://www-dnwx-com.anquanbao.cn/pic +||http://www.china.com.cn/node_$domain=news.china.com.cn +||http://www.dmhy.org^*?$image +||http://www.ruanyifeng.com^$csp=script-src 'self' * 'sha256-0McqMM66/wAVZmxF6zXpjNsb1UMbTl4LXBXdhqPKxws=' +||http://www1.wi.to^*.gif +||http://wwwcdn.kimiss.net/btn/ +||http://wx.sina.com.cn/iframe/pdps/ +||http://wxdown.net/images/*.gif +||http://wxrb.com/g/js/baidu.cbjs.m.js +||http://wxt999.net/template/*/images/g_js/ +||http://wyh.tv/image/upload/ad/ +||http://wzbaohe.com/imgadnew/midad.js +||http://x3cn.com/data/attachment/portal/*.gif +||http://x7w7.com/js/float +||http://x81zw.com/hf.js +||http://xc.macd.cn^ +||http://xc.mydrivers.com^ +||http://xcar.com.cn/dsp/adpc? +||http://xdcad.net/source/plugin/disad/disad.js +||http://xdf.cn/v4/js/leyus/ +||http://xdnice.com/themes/xdnice/public/assets/images/quna.png +||http://xdnice.com/themes/xdnice/public/assets/images/xdnice.png +||http://xdowns.com/ggco.js +||http://xdowns.com/info.js +||http://xdowns.com/js/lefttuijian.js +||http://xdowns.com/template/tshouyou/js/jietu.js +||http://xdyjt.com^ +||http://xfsub.com:88/js/*ad +||http://xghylt.com/api.php?mod=ad&adid= +||http://xgmeizi.com/smdd/ +||http://xhymsq.com/data/attachment/portal/ +||http://xia1ge.com/wp-content/uploads/*/wechat-ad.png +||http://xiacaidd.com/xiacai/ad/ +||http://xiami.com/player/iframe-adm? +||http://xiancn.com^*/adv_content/ +||http://xiangai365.com/ad_js/ +||http://xianliao.me/ads +||http://xianliao.me/assets/js/lib/ne3u3.js +||http://xianliao.me/etoron/get? +||http://xianshuabao.com/ashx/pt.ashx?cmd=record&filter=&order=all& +||http://xianzhenyuan.cn/data/attachment/common/ +||http://xiaodutv.com/xda? +||http://xiaoma.com/images/form/getclueforxiaomazonghe.js +||http://xiaoma.com/images/form/overlay +||http://xiaopi.com/500/ +||http://xiaopi.com/api.php?op=get_p& +||http://xiaopi.com/statics/new_js/15.js +||http://xiaopi.com/statics/skin_js/jquery.posrj.js +||http://xiaoz.me/wp-content/uploads/*_banner_ +||http://xiazaiba.com/data/xzb_haha.js +||http://xiazaizhijia.com/w2/js/wxzzj.js +||http://xici.net/_img/ad.png +||http://xici.net/r/ +||http://xici.net/z/ +||http://xiepp.com/JS/expand.js +||http://xiepp.com/JS/topshow.js +||http://xiexingcun.com/tongji.js +||http://xiexingcun.com/tyong.js +||http://xigua110.com/a/ +||http://xigua66.com/ps/aaa/ +||http://xilu.com/iframe/pagepic/ +||http://xilu.com/js/bd.js +||http://xilu.com/script/tag/2.0/func.js +||http://xineurope.com/static/image/banner/ +||http://xingkbjm.com/hengchuang.gif +||http://xingkbjm.com/wp-content/uploads/*/Ad +||http://xingwangzz.com/123/ +||http://xinhuanet.com/18gg/ +||http://xinhuanet.com/iframe/ad +||http://xinhuanet.com/imgad/ +||http://xinhuanet.com/jjimages/jc/js/fla.js +||http://xinhuanet.com^*/ad_ +||http://xinhuanet.com^*/adv +||http://xinjs.cn/2010/zzz.jpg +||http://xinku.org/jbLoader.js +||http://xinmin.cn/framepage/foot1.htm +||http://xinmin.cn/framepage/left1.htm +||http://xinmin.cn/framepage/top +||http://xinmin.cn/framepage/yqLink1.htm +||http://xinshijue6080.com/gg +||http://xinshijue6080.com/Runtime/js/ +||http://xinwenren.com/index.php?m=poster& +||http://xinyi.com/Public/config/Couplet/Index39.js +||http://xinyi.com/Public/config/Couplet/Index40.js +||http://xinyi.com/Public/config/Couplet/Index41.js +||http://xinzheng8.pw^ +||http://xitangwenhua.com/muban/mh/js/asd.js +||http://xitek.com/idzone +||http://xitong8.com/theme/default/images/725x90.gif +||http://xitong8.com/theme/default/images/index_13.jpg +||http://xitongzhijia.net/theme/2017/images/temp/ad_ +||http://xitongzhijia.net/theme/2017/js/total_soft.js +||http://xiu8.com/baidu-tieba/*&forum_name= +||http://xizi.com/a/ +||http://xizi.com/js/rotator.js +||http://xkd*.com/layer/layer.js +||http://xkhouse.com/display/displaygg/ +||http://xl720.com/tmp/ +||http://xlpu.cc/adv/ +||http://xmcimg.com/js/m.js +||http://xmfish.com/chanel/www/cpm.html +||http://xng02.com/api.php?mod=ad& +||http://xnnews.com.cn/adgl/ +||http://xnnews.com.cn/Templets/image/zyyy.swf +||http://xnnews.com.cn/Templets/js/*link +||http://xntk.net^*.html +||http://xoimg.com^$domain=18board.com|18p2p.com +||http://xp811.com/img/xitong.gif +||http://xp85.com/common/images/downad +||http://xp85.com/common/js/allpage.js +||http://xpcha.com/js/notice.js +||http://xpgod.com/statics/skin_js/xpgod/ +||http://xrc3.com/js/floatcaoplus.js +||http://xs.houyi.baofeng.net^ +||http://xspic.com/css/asd +||http://xuehi.cn/reward/reward +||http://xuehuile.com/resource/images/banner/ +||http://xueqiu.com/promotion/ +||http://xun9u.com/css/js/text_link.js +||http://xunleige.com/js/functionx.js +||http://xunyugong.com/wp-content/uploads/*.gif +||http://xunzai.com/www/all_common.js +||http://xuzhi.net/index.php?m=poster& +||http://xuzhi.net/uploadfile/poster/960x50.jpg +||http://xv98.com/js/daohang +||http://xv98.com/js/hengfu +||http://xx978.info/images/468-60OK.gif +||http://xxdm6.com/js/union/ +||http://xxdy8.cn/template/Datll/aaaa/ +||http://xxffo.com^*_slett.php +||http://xxhh.com/xh.js +||http://xyfdcw.com.cn/userfiles/flash/ +||http://xywy.com/gk?a= +||http://xywy.com/zhixing/ +||http://xz7.com/js/3000.js +||http://xz7.com/js/bann +||http://xz7.com/js/gg_ +||http://xz7.com/js/jctj.js +||http://xz7.com/js/top2.js +||http://xz7.com/js/xia +||http://xzbu.com/img/xueshu +||http://xzbu.com/xueshu/btxm.jpg +||http://xzbu.com/xueshu/zwyc.gif +||http://y3600.com/1 +||http://ya*.dwstatic.com^ +||http://yahoo.com/embed/tv?site=buzzhand& +||http://yahoo.com/gdsale/gdsale.asp$domain=beephone.com.tw +||http://yam.com/ad_yam/ +||http://yan007.com/js/sss/ad.js +||http://yangtianya.com/images/ +||http://yanjiao.com/zt/indexad/ +||http://yantuchina.com/Upload/Ad/ +||http://yanu.qiniudn.com/*x60. +||http://yanu.qiniudn.com/270300.jpg +||http://yaojingweiba.com/inc/ +||http://yaolan.com/wenku_debris/time_debris/images/mary +||http://yaolanimage.cn/assets/ask/js/ask_video_popup.js +||http://yaolanimage.cn/cms/image/960-90 +||http://yaseok.com//static/src/images/loading.gif +||http://yaseok.com/uploads/20*.gif +||http://yatu.tv/m/images/*300_100 +||http://yaxi.net/hz/ +||http://ybbs.ca/index/js/advReplay_ +||http://ydss.cn/static/js/autoAd.js +||http://ydss.cn/test.www.jdpay.com +||http://ydstatic.com/fanxian/minisite/promotion/ +||http://yea.im/5hq.gif +||http://yea.im/5ht.gif +||http://yecaoyun.com/AD/ +||http://yeeyi.com/bbs/api.php?mod=js&bid= +||http://yefu365.com/rebo/function.js +||http://yehaobo5.com/js/ +||http://yes1.feng.com^$domain=feng.com +||http://yesky.com/monitorjs/imp- +||http://yeyou.com/2013/new/yeyou-float-window.js +||http://yg006.com/attachment/js/ +||http://yg006.com/attachment/xjdb.jpg +||http://ygdy8.com/jsy/ +||http://ygdy8.net/js1/ +||http://yhdm.tv/bar/yfyh.js +||http://yibo5.cn/img0 +||http://yigujin.cn/tp/abc/*yun +||http://yikeyz.com/pm.js +||http://yimg.com/bf/homerun/ysm_ +||http://yimg.com/cv/ae/default/*_STATIC-JPEG_ +||http://yimg.com/cv/ae/tw/bwchou/728x210. +||http://yimg.com/cv/ae/tw/bwchou/bubble_ +||http://yimg.com/cv/api/hk/fp_czy_ad/ +||http://yimg.com/geminivideoads/ +||http://yimg.com/no/$domain=~yahoo.com +||http://yimuhe.com/n_ad/ +||http://yinduabc.com/res_base/*/makemoney/ +||http://yingshidaquan.cc/Templet/js/ +||http://yinyuetai.com/others/admin/*_1200x100. +||http://yinyuetai.com/proment/get-play-medias?*&position=overlay +||http://yinyuetai.com/proment/get-play-medias?*&position=pauseroll +||http://yinyuetai.com/proment/get-play-medias?json=true&position=preroll +||http://yiqikanba.cn/wp-content/uploads/*.gif +||http://yiren34.com/js/ +||http://yivian.com/repo/ad/ +||http://yiwenbaida.com/images/pzz.gif +||http://yixiaoba.com/js/yxb_normal.js +||http://yixieshi.com/media/ +||http://yiybb.com/inc/ +||http://yjhas.net^$image +||http://yjyc-ask.com/res/ads/ +||http://ykimg.com/material/*/ad/ +||http://yktang8.com^*.gif +||http://yktj.yzz.cn^ +||http://ylnet.com.cn/dl*.js +||http://ylnet.com.cn/gj.js +||http://ylnet.com.cn/inc/ad$subdocument +||http://ynzd.org/dict/uploads/20111007/ad_710.jpg +||http://yoka.com/s?z= +||http://yorkbbs.ca/yorkads/ +||http://youivr.com/image/*-960x80 +||http://youquba.net/js/ +||http://youth.cn/hezuo/index.js +||http://youth.cn/images/c.js +||http://youth.cn/images/m.js +||http://youth.cn/images/public_ +||http://youth.cn/qwtf2015/ +||http://youth.cn^*.html$subdocument,~third-party +||http://youth.cn^*.php$subdocument,~third-party +||http://youthwant.com.tw/dodo.php?adjs= +||http://youtube.com/embed/*&origin=$domain=ck101.com +||http://youtube.com/iframe_api$domain=nownews.com +||http://youxi.baidu.com/tips/bdtips_min.js +||http://youxiduo.com/userdirs/2018/02/20180209194845ZKQD.jpg +||http://ysxs8.com/ysgg/ +||http://yt-adp.nosdn.127.net^ +||http://yt-adp.ws.126.net^ +||http://ytbbs.com/images/index/ +||http://yuesp.com/js/viu/ +||http://yueyuyy.com:350/images/pc-tongzhi.js +||http://yui-nya.com/wp-content/uploads/2016/12/37011.jpg +||http://yui-nya.com/wp-content/uploads/2016/12/neta370-370.jpg +||http://yunbofangbt.com^ +||http://yundaquan.com/data/attachment/portal/ +||http://yundianb.com/hao/ +||http://yundianb.com/tu/jia.gif +||http://yunfile.com/ex/pop/ +||http://yunlaige.com/configs/article/*gg +||http://yunlaige.com/configs/article/*zx +||http://yunupload.net/jsa/ +||http://yx-w.com/1122in/619x93.js +||http://yxad.com/baidu/ +||http://yxad.com/js/lady.gif +||http://yxad.com/sg/ +||http://yxad.com/yxad/ +||http://yxbao.com/js/bt_ +||http://yxdd.com^$subdocument +||http://yxdm.tv/js/gad.js +||http://yxdown.com/cj/ +||http://yxdown.com/pc/news/js/news +||http://yxdown.com/zt/zt/js/zt.js +||http://yxlady.com/wxetj/pcfarmgg.jpg +||http://yxtvg.com/js/s.js +||http://yxzoo.com/style/js/fmt.js +||http://yy18.info/yyads/ +||http://yytcdn.com/headfile/avt/ +||http://yytcdn.com/others/*_175x660. +||http://yytcdn.com/others/avt/*_1 +||http://yytcdn.com/swf/plugins_new.xml?$domain=yinyuetai.com +||http://yytcdn.com/user/bugles/*_*x*.jpg +||http://yywz123.com/file/A*.js +||http://yyzs.net/js/Float_ +||http://yyzs.net/js/flyers_ +||http://yzdh44.com/js/ +||http://yzs.com/d/file/p/*.swf +||http://yzs.com/d/file/p/2016/12/06/61e15b92a4a2a7cec4910f1d9ea79fb2.jpg +||http://yzz.cn/global_gg/ +||http://z.nowscore.com^ +||http://z4bbs.com/adst/ +||http://zantj.com/diao +||http://zb.cool/static/img/banner/ +||http://zbjimg.com/static/union/ +||http://zbwmy.com/upfile/20*.gif +||http://zbwmy.com/upfile/20*.swf +||http://zc173.com/173fee/ +||http://zc173.com/pp/ +||http://zcaijing.com/images/ +||http://zczj.com/special/ +||http://zdface.com/js/m/zw_banner.js +||http://zdqx.com/statics/v1/images/gif/ +||http://zdzdm.com/static/img/*ljs.jpg +||http://zeyi5.com/js/2412/ +||http://zfs.cn/8th/ +||http://zhaiiker.com^*_ads& +||http://zhainanba.org/ac/ +||http://zhan.com/static/js/*_ad_modal.js +||http://zhandi.cc/Runtime/js/*vod +||http://zhandi.cc/Runtime/js/900 +||http://zhandi.cc/Runtime/js/index +||http://zhangchengbo.com/meijuba/js/top.js +||http://zhanqi.tv/api/static/v2.1/actives.lists/ +||http://zhanqi.tv/uploads/*/ads-*.swf +||http://zhaolianmeng.com/plushuan/ad_js.php +||http://zhaozi.cn/d/js/mini/extended +||http://zhenjiang365.cn/*/ad_ +||http://zhenjiang365.cn/bbsatt/day_120827/1208271004af7c25b6e3d4fa1d.gif +||http://zhev.com.cn/file/weixin/ +||http://zhgmeitu.xyz/images/*.gif +||http://zhibo8.cc/js/adv-slide-toggle.js +||http://zhiboba.org/gg_js/ +||http://zhibok8.com/images/*.gif +||http://zhibok8.com/js/di +||http://zhibok8.com/js/scroll.js +||http://zhifuok.com/19xa.jpg +||http://zhijia.com/hd/*.swf +||http://zhimg.com^*_600x250 +||http://zhimg.com^*adx +||http://zhiys.com/img_new/mobilemo2.jpg +||http://zhongyi.ifeng.com/a/zt.js +||http://zhongyoo.com/img/js/tongji.js +||http://zhongzijun.com/js/adurl.js +||http://zhuashi.oss-cn-beijing.aliyuncs.com^$domain=~zhuashi.com +||http://zhuici.com/990x60.jpg +||http://zhuji.net/2007_ad/ +||http://zhujiangroad.com/js/alltop.js +||http://zhujiceping.com/F/ +||http://zhulong.com/poster/get?*_960 +||http://zhulong.com/poster/get?positions_name=ZY_JZ_300_02 +||http://zhulong.com/poster/get?positions_name=ZY_SP_300 +||http://zhushou.360.cn/script/plugin_tiper.js +||http://zhzyw.com/js/InsertJS.js +||http://zi-han.net/theme/hplus/js/plugins/layer/ +||http://zimushe.com/res/other/ +||http://zimuzu.tv/public/rooms? +||http://zimuzu.tv/rrlx +||http://zineworm.com^*&localtype= +||http://zinggadget.com/wp-content/*/popup +||http://zj.cn^*/AD?location= +||http://zjbdt.com/onexgadimgs/ +||http://zjg.js.cn/Public/config/Couplet/Index4 +||http://zjjzx.cn*/push/ +||http://zjol.com.cn/www/zzhzbd/ +||http://zk789.cn/Res/Scripts/Show/NetSys/Show.ashx +||http://zkrdy.com^ +||http://zmtiantang.com/static/m.js +||http://zmtiantang.com/static/pace. +||http://zmzjstu.com/g3/ad-cp/ +||http://zmzjstu.com/g3/tool +||http://znjj.tv/uploadfiles/abi/ad201 +||http://zol-img.com.cn/ad/ +||http://zol.com.cn/active/*guomei +||http://zol.com.cn/active/*tmall +||http://zol.com.cn/adrs/ +||http://zol.com.cn/channel/index.php?c=Active_Tmall& +||http://zol.com.cn/index.php?c=Gethot& +||http://zol.com.cn/mainpage/2017/corner/ +||http://zol.com.cn/wapask/index.php?c=Ajax_Ask&a=NewAsyncResponseTmallAd +||http://zolsky.com^*ad/*.js +||http://zongheng.com/ajax/recommend.game. +||http://zongheng.com/upload/ad/ +||http://zongheng.com/upload/hzds/ +||http://zongheng.com/upload/recommend/game/ +||http://zongheng.com/v2014/js/mod/bad.js +||http://zongheng.com/zhuanti/2014/active/js/active.js +||http://zp365.com/newImages/201*.swf +||http://zpgjz.com/cdn/new1/4.gif +||http://zpiyi.com/public/js/global.js +||http://zqsx.net/bbs/kehu/ +||http://zqzq*.com:*/da.aspx +||http://zrblog.net/zzimg/ +||http://zsjjob.com/user/member/google.htm +||http://zsnews.cn/js/adControl- +||http://zt.chuanke.com/?mod= +||http://zt2088.com^ +||http://zt5.com/statics/img/ +||http://ztjal.info/wp-content/plugins/kill-adblock/ +||http://ztyumn.ifeng.com^ +||http://zuiacg.com/images/client/ +||http://zuidaima.com/images/1/201606/20160616135714978. +||http://zuixingkong.com/gao/ +||http://zuixingkong.com/show-g/ +||http://zuixingkong.com^*mygg/ +||http://zuoche.com/promo/*.jspx +||http://zwwooooo.com/images/hengtian. +||http://zx590.com/assets/style/js/paigu.js +||http://zxdy777.com/myimg/ +||http://zxip.com/2013_ad/ +||http://zzbaike.com/main/*-20 +||http://zzbaike.com/main/arvixe +||http://zzbaike.com/main/host +||http://zzc.cn/b1/live_b_ +||http://zzidc.com/images/1060.jpg +||http://zzidc.com/uploads/pintuan.jpg +||http://zzlzl.com/content/templates/emedia_better/images/1/ +||http://zzsky.cn/images/a_d_ +||http://zzz4.com/JS_AD/ +||http://zzzyk.com/js/ +||http://daybox.net^$domain=12580sky.com +||http://241hs.com/js/jquery.js +||http://alicdn.com^$domain=xin99r2.com +||http://sinaimg.cn^$domain=xin99r2.com +||http://immedlinkum.info^ +||http://xayah.date^ +||http://imgur.com^$domain=172.86.179.138|208.94.244.100|208.94.244.98|a88.us|ac168.info|ac88.info|aisex.com|cnnice.biz|go543.com +||http://sinaimg.cn^$domain=172.86.179.138|208.94.244.100|208.94.244.98|a88.us|ac168.info|ac88.info|aisex.com|cnnice.biz|go543.com +||http://tinypic.com^$domain=172.86.179.138|208.94.244.100|208.94.244.98|a88.us|ac168.info|ac88.info|aisex.com|cnnice.biz|go543.com +||http://adxxx.info^$domain=avgle.com +||http://avgle.topgirlsdating.com^$domain=avgle.com +||http://olmsoneenh.info^$domain=avgle.com +||http://003store.com^ +||http://0512s.com^$third-party +||http://06362.com^ +||http://1.1010pic.com^ +||http://1.11467.com^ +||http://1.15lu.com^ +||http://1.201980.com^ +||http://1.32xp.com^ +||http://1.51sxue.cn^ +||http://1.5646.cn^ +||http://1.66law.cn^ +||http://1.92caijing.com^ +||http://1.ajiyuming.com^ +||http://1.arpun.com^ +||http://1.bangdan5.com^ +||http://1.bashenghuo.com^ +||http://1.bh5.com.cn^ +||http://1.cjcp.cn^ +||http://1.cn716.com^ +||http://1.codesdq.com^ +||http://1.codezh.com^ +||http://1.dwx365.com^ +||http://1.feihua.com^ +||http://1.feihua365.cn^ +||http://1.glook.cn^ +||http://1.guyaheng.com^ +||http://1.hnyouneng.com^ +||http://1.huilv.cc^ +||http://1.huobiwang.cc^ +||http://1.hysou.com^ +||http://1.i1766.com^ +||http://1.ideng.com^ +||http://1.jeasyui.net^ +||http://1.jiqie.cn^ +||http://1.kuaidiwo.cn^ +||http://1.lvshi567.com^ +||http://1.mgff.com^ +||http://1.mm100.com^ +||http://1.nanrenwo.net^ +||http://1.panduoduo.net^ +||http://1.pncdn.cn^ +||http://1.proewildfire.cn^ +||http://1.qjhm.net^ +||http://1.qt86.com^ +||http://1.rr95.com^ +||http://1.sj33.net^ +||http://1.soufy.cn^ +||http://1.tongquee.com^ +||http://1.ttxs123.net^ +||http://1.tulaoshi.com^ +||http://1.tuxi.com.cn^ +||http://1.uc129.com^ +||http://1.ufc123.com^ +||http://1.vsimg.com^ +||http://1.wenzhangba.cn^ +||http://1.win7china.com^ +||http://1.win7sky.com^ +||http://1.xiaopin5.com^ +||http://1.xilu.com^ +||http://1.xspic.com^ +||http://1.xuexi.la^ +||http://1.xxszw.cn^ +||http://1.yac8.net^ +||http://1.yuexw.com^ +||http://1.zhev.com.cn^ +||http://1.zhuangxiu567.com^ +||http://1.zou114.com^ +||http://1.zouning.net^ +||http://1.zuowenjun.com^ +||http://1.zw3e.com^ +||http://100669.com^$third-party +||http://1017.cn^ +||http://11.golang8.com^ +||http://111g.yiqig.cn^ +||http://11888vip.cn^ +||http://1224.dxsbb.com^ +||http://123456.asia^ +||http://15tianqi.com^$third-party +||http://17.huanqiu.com^ +||http://177o.com^ +||http://1999019.com^ +||http://2.5aigushi.com^ +||http://2.heiyange.com^ +||http://2.mobixs.cn^ +||http://2.rengshu.com^ +||http://200218.com^$third-party +||http://21.aiyangedu.com^ +||http://21.cizhibaogao.org^ +||http://21.fh21static.com^ +||http://21shebao.com^$third-party +||http://22.qingsongbar.com^ +||http://283.laobanfa.com^ +||http://289.com^$third-party +||http://3.chuanyi5.com^ +||http://3.guidaye.com^ +||http://3.ssqzj.com^ +||http://301848.com^$third-party +||http://32.huanqiu.com^ +||http://321.jintang114.org^ +||http://360640.com^ +||http://4name.com^$third-party +||http://51dengshan.cn^ +||http://51gxqm.com^ +||http://51yhzp.com^$third-party +||http://52linglei.com^ +||http://52lubo.cn^ +||http://52m.xde6.net^ +||http://5dian.org^ +||http://5egk.com^ +||http://5tps.vip^ +||http://600zi.com^$third-party +||http://644446.com^ +||http://66.zx1234.com^ +||http://6669667.com^ +||http://7011.stia.cn^ +||http://7631.com^ +||http://76e.org^ +||http://7car.com.cn^ +||http://80juqing.com^ +||http://8dp.net^ +||http://90370.com^$third-party +||http://91friend.com^$third-party +||http://94ab.com^$third-party +||http://999d.com^$third-party +||http://9wushuo.com^ +||http://a.52wubi.com^ +||http://a.52zxw.com^ +||http://a.53yao.com^ +||http://a.75111.com^ +||http://a.android100.org^ +||http://a.armystar.com^ +||http://a.bake818.cn^ +||http://a.bizhiku.net^ +||http://a.diaoyu.cn^ +||http://a.duanmeiwen.com^ +||http://a.duduji.com^ +||http://a.epinv.com^ +||http://a.exam58.com^ +||http://a.fengyx.com^ +||http://a.fwsir.com^ +||http://a.hsbianma.com^ +||http://a.icdol.com^ +||http://a.ihref.com^ +||http://a.imgso.cn^ +||http://a.jing55.com^ +||http://a.kandiaoyu.com^ +||http://a.kejixun.com^ +||http://a.lz13.cn^ +||http://a.mfcad.net^ +||http://a.nanhuwang.com^ +||http://a.oh100.com^ +||http://a.psxxw.cn^ +||http://a.qinghua5.com^ +||http://a.qsjiajiao.com^ +||http://a.shenchuang.com^ +||http://a.shuoshuodaquan.net^ +||http://a.thn21.com^ +||http://a.tiyuxiu.com^ +||http://a.tvsou.com^ +||http://a.umilu.com^ +||http://a.ut8d8.com^ +||http://a.wifi33.com^ +||http://a.xixiyishu.com^ +||http://a.xuezizhai.com^ +||http://a.xxdy8.cn^ +||http://a.yangshengtang123.com^ +||http://a.yixie8.com^ +||http://a.yl-taikang.com^ +||http://a.yuzhainan.com^ +||http://a1.0s.net.cn^ +||http://a1.16700.net^ +||http://a1.7down.com^ +||http://a1.99933.cn^ +||http://a1.99966.cn^ +||http://a1.aluntan.com^ +||http://a1.bookapka.com^ +||http://a1.chajiaotong.com^ +||http://a1.firstgw.com^ +||http://a1.gexing.me^ +||http://a1.juzih.com^ +||http://a1.lshou.com^ +||http://a1.mingyihui.net^ +||http://a1.qqjay.com^ +||http://a1.qqtn.com^ +||http://a1.shusanqi.com^ +||http://a1.sumiaowang.com^ +||http://a1.twtym.com^ +||http://a1.vdolady.com^ +||http://a1.yuuedu.com^ +||http://a1.zhanzhang.net^ +||http://a3.ikafan.com^ +||http://a3.jandan.net^ +||http://aa.gushiwen.org^ +||http://aa.jiangzi.com^ +||http://aa.xiangxiangmf.com^ +||http://aa808.com^$third-party +||http://ab.cnbanbao.com^ +||http://ab.pincai.com^ +||http://abc.douguo.com^ +||http://abc1.yszyz.com^ +||http://abcj.dooccn.com^ +||http://abds.pingpingw.com^ +||http://ac*.pingguolv.com^ +||http://ac.86huoche.com^ +||http://ac1.faxingchina.com^ +||http://adbd.liuxue86.com^ +||http://adccoo.cn^ +||http://adjb.5nd.com^ +||http://aili.com^$third-party +||http://ainiyiwannian0.5tps.vip^ +||http://aiwen.cc^ +||http://al.newxue.com^ +||http://aoshuku.com^$third-party +||http://ap*.jj20.com^ +||http://ap*.pl520.com^ +||http://as1.m.hao123.com^ +||http://as1.wenku.baidu.com^ +||http://at1.doubanio.com^ +||http://b.unjs.com^ +||http://b1.51scw.net^ +||http://b1.91jucai.com^ +||http://b1.b2b168.com^ +||http://b1.c1km4.com^ +||http://b1.fengdu100.com^ +||http://ba.cydp5.com^ +||http://baid1.okooo.com^ +||http://baidu1.codejie.net^ +||http://baiduada.babihu.com^ +||http://baidujs.cnys.com^ +||http://baiduwapjs1.chinaiiss.com^ +||http://bas.boshi.tv^ +||http://bd-s.baixing.net^ +||http://bd.czxuexi.com^ +||http://bd.ershenghuo.com^ +||http://bd.hao224.com^ +||http://bd.haomagujia.com^ +||http://bd.scw98.com^ +||http://bd01.daqiso.com^ +||http://bd01.qqkxb.com^ +||http://bd1.365qilu.com^ +||http://bd1.52che.com^ +||http://bd1.dopa.com^ +||http://bd1.flfgw.cn^ +||http://bd1.heiguang.cn^ +||http://bd1.jinbaozy.com^ +||http://bd1.nxing.cn^ +||http://bd1.pipaw.com^ +||http://bd1.sosg.net^ +||http://bd1.szhk.com^ +||http://bd1.xiangha.com^ +||http://bd1.xiby.cn^ +||http://bd1.yidu.cc^ +||http://bd11.nipic.com^ +||http://bd3.chuiyue.com^ +||http://bdad.gaotie.net^ +||http://bdasd.chinabig.com.cn^ +||http://bdasd.wmxa.cn^ +||http://bdcm.kandianla.com^ +||http://bdcode.2345.com^ +||http://bdcode.35d1.com^ +||http://bdcode.qinglm.com^ +||http://bdcode.youke.com^ +||http://bdcode1.haodou.com^ +||http://bdcpro*.techweb.com.cn^ +||http://bddm.58news.org^ +||http://bdfpbimg.ifengimg.com^ +||http://bdgg.youbian.com^ +||http://bdjb.gai001.com^ +||http://bdjiaoben.wmxa.cn^ +||http://bdjj.bzr99.com^ +||http://bdjj.makepolo.net^ +||http://bdjs.163lady.com^ +||http://bdjs.6822.com^ +||http://bdjs.a-site.cn^ +||http://bdjs.guangyuanol.cn^ +||http://bdjs.ixiumei.com^ +||http://bdjs.kaixin100.com^ +||http://bdjs.uimg.cn^ +||http://bdjs.ylq.com^ +||http://bdlm*.hc360.com^ +||http://bdlmggcs1.familydoctor.com.cn^ +||http://bdm.911cha.com^ +||http://bdu.focus.cn^ +||http://bdu1.coozhi.cn^ +||http://bdu1.eol.cn^ +||http://bdunion1.suxiazai.com^ +||http://bdwmhz.120askimages.com^ +||http://bdx.playnext.cn^ +||http://becode.qiushibaike.com^ +||http://becode.xiao84.com^ +||http://beijing.buzhi5.com^ +||http://bj*.9669.cn^ +||http://book.114la.cn^ +||http://boy.fujieace.com^ +||http://bstatic.1kejian.com^ +||http://bt1.patexplorer.com^ +||http://bu1.duba.com^ +||http://bu1.vvvdj.com^ +||http://c.mnjkw.cn^ +||http://c.tvsou.com^ +||http://c.xiaobaipan.com^ +||http://c1.4qx.net^ +||http://c1.china.cn^ +||http://c6.friok.com^ +||http://ca.cydp5.com^ +||http://cbdm.weathercn.com^ +||http://cby521.cn^ +||http://cby521.com^ +||http://cdeme.com^$third-party +||http://cdn1.tvzhe.com^ +||http://cee1.iteye.com^ +||http://cfff.net^$third-party +||http://cgm.shicimingju.com^ +||http://chicken18.com^ +||http://chnci.com^$third-party +||http://chuangyixi.com^ +||http://cj1.256.cc^ +||http://ckg.vipyl.com^ +||http://cm.baidu.com^ +||http://cn.bidushe.com^ +||http://cod.southmoney.com^ +||http://code.ditiezu.net^ +||http://code.tui80.com^ +||http://code1.2chcn.net^ +||http://codeok.com^ +||http://codeym.dictall.com^ +||http://cp.7y7.com^ +||http://cp.greenxf.cn^ +||http://cp.jfcdns.com^ +||http://cp.qbaobei.com^ +||http://cpro.zol.com.cn^ +||http://crayon.meishichina.com^ +||http://css.juqingba.cn^ +||http://d*.ruiwen.com^ +||http://d*.wanzhuang.com^ +||http://d*.xinshipu.com^ +||http://d.gz2010.cn^ +||http://d.gzpinda.com^ +||http://d.tonghua5.com^ +||http://d.xaoyo.com^ +||http://d.xitongtiandi.net^ +||http://d1.5h.com^ +||http://d1.handdiy.com^ +||http://d1.zhuangxiu6.com^ +||http://d6.mobaders.com^ +||http://dai18.mumu01.com^ +||http://dai18.shangc.net^ +||http://daima.23yy.com^ +||http://daima.diaoben.net^ +||http://daima.huoche.net^ +||http://daima.hydcd.com^ +||http://daima.ijq.tv^ +||http://daima.jiazhao.com^ +||http://daima.miercn.com^ +||http://daima.niubb.net^ +||http://daima.ysdui.com^ +||http://daima.yutou123.cn^ +||http://daimaceshi.8809.cn^ +||http://data.waptime.cn^ +||http://datas.tianqistatic.com^ +||http://daxishi.com^$third-party +||http://daxueshengqiandai.com^ +||http://dd1.diymianmo.com^ +||http://df666.pzhttaax.cn^ +||http://df888.eastday.com^ +||http://dm*.ppzuowen.com^ +||http://dm*.yxlady.com^ +||http://dm.300zi.com^ +||http://dm.388g.cc^ +||http://dm.51okc.com^ +||http://dm.66qw.net^ +||http://dm.66wenshen.com^ +||http://dm.92to.com^ +||http://dm.aizhan.com^ +||http://dm.cnbanbao.com^ +||http://dm.cqdxun.cn^ +||http://dm.duoshitong.com^ +||http://dm.gucheng.com^ +||http://dm.haojuzi.net^ +||http://dm.huochepiao.com^ +||http://dm.ishuo.cn^ +||http://dm.jb51.net^ +||http://dm.jsyst.cn^ +||http://dm.pw0.cn^ +||http://dm.riji.cn^ +||http://dm.sanwen.net^ +||http://dm.sanwen8.com^ +||http://dm.sb580.com^ +||http://dm.taobaojuhuasuan.cn^ +||http://dm.wenshenxiu.com^ +||http://dm.ws8.org^ +||http://dm.zuowenku.net^ +||http://dm1.3199.cn^ +||http://dm1.3328.cn^ +||http://dm1.yongkao.com^ +||http://dm1.zjydt.com^ +||http://dm50.jkyd.net^ +||http://dmm.aizhan.com^ +||http://dmr.cnhoney.com^ +||http://dn*.ixinwei.com^ +||http://dsxdn.com^ +||http://du1.bbdj.com^ +||http://dudm.qingsj.cn^ +||http://duoyouqu.net^ +||http://dyscb.cn^$third-party +||http://dzais.com^ +||http://e.qiaoyuwang.com^ +||http://ee.shixunwang.net^ +||http://ejunshi.com^ +||http://emjs.mkzhan.com^ +||http://ent1.12584.cn^ +||http://er.5ykj.com^ +||http://f.520tingshu.com^ +||http://f1.06ps.com^ +||http://f1.ichong123.com^ +||http://f1.lutouwang.net^ +||http://f1.pig66.com^ +||http://f1.zaojv.com^ +||http://fan.9939.com^ +||http://fanpingbi*.gaokao.com^ +||http://fanyi100.com.cn^ +||http://fbmjc.39yst.com^ +||http://feidalu.com^ +||http://ff.guidaye.com^ +||http://ff.xue163.net^ +||http://ff.xue63.com^ +||http://firefang.cn^ +||http://fjzimaoqu.cn^$third-party +||http://fmgoal.com^ +||http://forad1.weimeicun.com^ +||http://fotao9.com^ +||http://fp.jj59.com^ +||http://fpb*.51edu.com^ +||http://fpb.kuhou.com^ +||http://fpb1.apple886.com^ +||http://fpb1.chinacar. +||http://fpb1.gxfin.com^ +||http://fpbcode.onlinedown.net^ +||http://fuz.cc^$third-party +||http://fxjs.2541.com^ +||http://fzb01.qiushibaike.com^ +||http://g.3lian.com^ +||http://g.pgu.cc^ +||http://g1.pptair.com^ +||http://g1.taijuba.com^ +||http://gaoguai.com^ +||http://gb.it1352.com^ +||http://gccode.gongchang.com^ +||http://gcw*.2liang.cn^ +||http://gg.egouz.com^ +||http://gg.jkmeishi.com^ +||http://gg1.jc001.cn^ +||http://gg1.mengchongzu.com^ +||http://ggdm1.nhaidu.net^ +||http://gk1.zjbiz.net^ +||http://godloveme.cn^ +||http://gp.zaiyunli.cn^ +||http://gsjdzx.com^$third-party +||http://guang.sdsgwy.com^ +||http://gumgo.cn^$third-party +||http://gunmi.cn^$third-party +||http://gushifanyi.com^$third-party +||http://gzcl999.cn^ +||http://gzcl999.com^ +||http://gzm.xzbu.com^ +||http://h1.cfxinxi.cn^ +||http://h1.kukuw.com^ +||http://h1.tvhome.com^ +||http://ha.zixuekaoshi.net^ +||http://hao.315hyw.com^ +||http://hao.360hyzj.com^ +||http://hao1.loxue.com^ +||http://hapic1.zhuangxiu22.com^ +||http://hccms.com.cn^ +||http://hdc.maxli.cn^ +||http://hdc.watchtimes.com.cn^ +||http://hh.jiankang.com^ +||http://hi.xiunm.com^ +||http://hiapple1.jobui.com^ +||http://hmtoday.com^$third-party +||http://home520.com^ +||http://hrjg.com.cn^$third-party +||http://hu.xbhy.com^ +||http://hy.huangye88.net^ +||http://iia1.pikacn.com^ +||http://ikuailian.com^$third-party +||http://img.263y.com^ +||http://img.80982.org^ +||http://img.ferlie.net^ +||http://img.xuenb.com^ +||http://img.yangshengtang123.com^ +||http://img.zuowen8.com^ +||http://img1.eywdf.com^ +||http://img1.ysts8.com^ +||http://img16.diyifanwen.com^ +||http://img2.pengfu.net^ +||http://info.meiguoshenpo.com^ +||http://int.w3tong.com^ +||http://ios.426g.com^ +||http://ixpub.net^*.js +||http://iy.com.cn^$third-party +||http://j.baminw.cn^ +||http://j.diangon.com^ +||http://j.imdb.cn^ +||http://j1.piaobing.com^ +||http://jb.dianshu119.com^ +||http://jb.ecar168.cn^ +||http://jb.imgsina.com^ +||http://jc1.dayfund.cn^ +||http://jddaw.com^ +||http://jeepyy.com^$third-party +||http://jiaoben.eastday.com^ +||http://jiaoben.ganji.cn^ +||http://jiaoben.jucanw.com^ +||http://jiaoben.webkaka.com^ +||http://jibn12.jintang114.org^ +||http://jiliw.com^$third-party +||http://jinghuazhijia.com^ +||http://jinshui2018.chalook.net^ +||http://jiyan.net^ +||http://jke1.jianke.com^ +||http://jnsz.net.cn^ +||http://js.158pic.com^ +||http://js.51ir.cn^ +||http://js.fc090.com^ +||http://js.gdyjs.com^ +||http://js.kt250.com^ +||http://js.ruiwen.com^ +||http://js.shangxueba.com^ +||http://js.ubaike.cn^ +||http://js1.2abc8.com^ +||http://js1.xbaixing.com^ +||http://jsb.qianzhan.com^ +||http://jscode.acg68.com^ +||http://jsf.cnlinfo.net^ +||http://jskrnekewe.mofans.net^ +||http://jsm.39yst.com^ +||http://jsm.9939.com^ +||http://jss.tvzhe.com^ +||http://jxdown.com^$third-party +||http://jy135.com^$third-party +||http://k1.wanwenwan.cn^ +||http://ka5188.com^ +||http://kc.gouchezj.com^ +||http://kpshx.douguo.com^ +||http://ku.92to.com^ +||http://kuhou.com^$third-party +||http://kuk8.com^$third-party +||http://kuku99.com^$third-party +||http://kxji.com^$third-party +||http://lang.t7114.com^ +||http://liangpinge.com^$third-party +||http://libs.tvmao.cn^ +||http://linyao.dxsdb.com^ +||http://lixiangmo.com^ +||http://ll38.com^ +||http://lm.dawenxue.org^ +||http://lm1.tuliu.com^ +||http://lm1.wzpcw.com^ +||http://lmz.9939.com^ +||http://love.eng20.cn^ +||http://love.xingyunxingqiu.wang^ +||http://lraa.xiaoniutui.com^ +||http://luolikong.net^$third-party +||http://luoshenbest.cn^ +||http://lv.myapks.com^ +||http://lyz.radio366.com^ +||http://m1.27com.com^ +||http://m1.51kaowang.com^ +||http://m1.81312.com^ +||http://m1.bitequan.net.cn^ +||http://m1.darfd.com^ +||http://m1.dxsbb.com^ +||http://m1.jintang114.org^ +||http://m1.kuanff.com^ +||http://m1.nn670.com^ +||http://m1.vodjk.com^ +||http://m1.we556.com^ +||http://ma1.meishij.net^ +||http://mad1.jirou.com^ +||http://matwbp.iask.sina.com.cn^ +||http://mb.gulongbbs.com^ +||http://mbjb1.girl13.com^ +||http://mc.tvzhe.com^ +||http://mc.weather.com.cn^ +||http://md.tvzhe.com^ +||http://meipinxinwen.net^ +||http://meishiba.com.cn^$third-party +||http://meng.360zuowen.com^ +||http://mf01.zybang.com^ +||http://milk.7dapei.com^ +||http://milk.yesky.com.cn^ +||http://mipujia.com^$third-party +||http://miyudaquan.top^$third-party +||http://mj-medlab.com^$third-party +||http://mm.anqu.com^ +||http://mn586.com^$third-party +||http://mo-tuo.com^ +||http://modzj.net^$third-party +||http://mountain.zhidao.baidu.com^ +||http://mpb1.iteye.com^ +||http://mssheng.com^ +||http://mxitie.com^$third-party +||http://mxpwx.com^$third-party +||http://my.gz2010.cn^ +||http://myunion1.qm120.com^ +||http://myunion1.tupians.com^ +||http://mzcsdf.com^$third-party +||http://namedq.com^ +||http://nba.emohe.com^ +||http://new.htcui.com^ +||http://noc.shixunwan.cn^ +||http://nyhpyq.com^$third-party +||http://o.jy135.com^ +||http://o.phb123.com^ +||http://oicchina.com^$third-party +||http://okkkk.com^ +||http://p1.zhongyoo.com^ +||http://p1.zhumengwl.com^ +||http://pan.keyunzhan.com^ +||http://pb.okk123.com^ +||http://pb.shuxigua.com^ +||http://pingbi.diudou.com^ +||http://pjcn.org^$third-party +||http://pkk1.zuimeiniwo.com^ +||http://ppt.tianya999.com^ +||http://psywed.com^ +||http://ptw.la^ +||http://qcjslm.com^ +||http://qifake.com^ +||http://qiji1.jdwx.info^ +||http://qiyeb.iaskbus.com^ +||http://qizhihaotian.com^*.js +||http://qq167.com^ +||http://qqhuhu.com^ +||http://qqzu.com^ +||http://qujishu.com^ +||http://qwxcs.com^$third-party +||http://rabc1.iteye.com^ +||http://rbmry.com^ +||http://rdbd.xsread.com^ +||http://redmx.cn^$third-party +||http://rmcxw.cn^ +||http://rmcxw.net^ +||http://rs1.rensheng5.com^ +||http://ruan88.com^ +||http://s.zixuntop.com^ +||http://s1.dapenti.com^ +||http://s1.dugoogle.com^ +||http://s1.hiapk.com^ +||http://s1.hualaoye.com^ +||http://s1.qiqutt.cn^ +||http://s1.qiqutt.com^ +||http://s1.wan1979.com^ +||http://s1.wesiedu.com^ +||http://s11.cn^$third-party +||http://salary.xiao84.com^ +||http://sbbd1.qulishi.com^ +||http://sc.csai.cn^ +||http://script-bd.baixing.net^ +||http://sdd.dzsc.com^ +||http://sell*.etlong.com^ +||http://sg92.com^$third-party +||http://sh996.dftoutiao.com^ +||http://shicao.icantv.cn^ +||http://shili.downxia.com^ +||http://shili.wanyx.com^ +||http://shop265.com^ +||http://show.9zwang.com^ +||http://shuqw.com^$third-party +||http://sjbaiduadv1.redou.com^ +||http://sjzqu.com^ +||http://sp.dnqc.com^ +||http://ss.shicimingju.com^ +||http://ss.ting55.com^ +||http://star-media.cn^$third-party +||http://static*.365inews.com^ +||http://static.ichehome.com^ +||http://static.jiaquyi.com^ +||http://sundxs.com^$third-party +||http://t.cnscore.com^ +||http://t.douyaobuy.com^ +||http://t1.612.com^ +||http://thetestpage.39.net^ +||http://ticcdn.com^ +||http://tiexing.com^$third-party +||http://tongj.xilu.com^ +||http://trebleperfect.com^$third-party +||http://tt123.eastday.com^ +||http://tt123.hao0202.com^ +||http://tu.zx110.org^ +||http://tui98.cn^ +||http://ty1.263y.com^ +||http://u1.shuaiku.com^ +||http://ub1.job592.com^ +||http://uc*.atobo.com.cn^ +||http://uc.xiaoxuehelp.com^ +||http://un1.takefoto.cn^ +||http://undm.qibulo.com^ +||http://union*.365inews.com^ +||http://union1.cnbetacdn.com^ +||http://uniondm.cz88.net^ +||http://v1.phb123.com^ +||http://ve.kj-cy.cn^ +||http://vi1.souid.com^ +||http://vjie.com^$third-party +||http://vvv.ieduw.com^ +||http://w.xiaopiaoyou.com^ +||http://w1.diaoyou.com^ +||http://w11.zhongkaohelp.com^ +||http://w18.9939.com^ +||http://wabdb1.52pk.com^ +||http://wap001.bytravel.cn^ +||http://wayqq.cn/g/ +||http://wda.ydt.com.cn^ +||http://web8.net^$third-party +||http://weilianjie.com^$third-party +||http://wenshenbang.com^$third-party +||http://whfpbc.99.com.cn^ +||http://wj.jiancai365.cn^ +||http://wm.mipcdn.com^ +||http://wneia.iaskhot.com^ +||http://ws.wenshenxiu.com^ +||http://wshufa.com^$third-party +||http://wuliao.chzsport.cn^ +||http://wuliao.juqingba.cn^ +||http://www1.qicheyinyue.wang^ +||http://wyzq.rehuwang.com^ +||http://x.mtrend.cn^ +||http://xbtw.com^ +||http://xc.gouchezj.com^ +||http://xcf-bd-js.chuimg.com^ +||http://xfyjz.cn^$third-party +||http://xiaomiaoquan.com^$third-party +||http://xiaopangtao.com^ +||http://xiaoyutiao.com^ +||http://xinju.cc^ +||http://xinkuaiyu.com^ +||http://xitongku.cc^ +||http://xne1ocient87zxz.360doc.cn^ +||http://xttianning.com^ +||http://xue.zbyw.cn^ +||http://y1.spreton.com^ +||http://yfx1.17gouwu.cn^ +||http://yhzm.cc^ +||http://yi.ximizi.com^ +||http://yihubaiying.com^$third-party +||http://yijiuningyia.gushiwen.org^ +||http://yin1.zgpingshu.com^ +||http://ykxwn.com^ +||http://ynzhby.com^ +||http://yong.chazidian.com^ +||http://ys.muhoujiemi.com^ +||http://ysx8.vip^ +||http://ysxywj.com^ +||http://yulzs.com^ +||http://yunzuowen.com^$third-party +||http://yx1.managershare.com^ +||http://yy1.fwccw.com^ +||http://yy2018.jintonghua.com^ +||http://z1.chezhuzhinan.com^ +||http://z1.cyla.cn^ +||http://z1hihu.xmcimg.com^ +||http://z888.izhufu.net^ +||http://zfds1.tianya999.com^ +||http://zg.mmyuer.com^ +||http://zhantai.com^$third-party +||http://zhaoshang8.com^ +||http://zhgg.dre8.com^ +||http://zhihu.xmcimg.com^ +||http://zhongchouyan.com^ +||http://zhongkaowu.com^$third-party +||http://zichenit.com^$third-party +||http://zk.91post.com^ +||http://zq84.com^ +||http://zxw51.com^$third-party +||http://zzc.9939.com^ +||http://0377shujuhuifu.top^ +||http://0531mnk.net^ +||http://1711811.com^ +||http://18dusun.com^ +||http://2013sh.com^ +||http://210189.com^ +||http://258pct.com^ +||http://258ydh.com^ +||http://265958.com^ +||http://2pmob.com^ +||http://360shopping.com.cn^ +||http://3dqiang.com^ +||http://60608787.com^ +||http://711983.com^ +||http://77rog.com^ +||http://910weixin.com^ +||http://913vt.com^ +||http://93vitui.com^ +||http://ailiyou1999.com^ +||http://aliguojw.com^ +||http://anhuilitian.net^ +||http://aodongjiaosu.com^ +||http://autoyou1678.com^ +||http://bihutg.com^ +||http://bjwwfx001.org.cn^ +||http://blossommo.com^ +||http://bycxsh.com^ +||http://ccbccb.cn^ +||http://cdxyb.cn^ +||http://chinahdcm.com^ +||http://dakawm.cc^ +||http://dfcwg.com^ +||http://dsgy521.com^ +||http://dupinpu.com^ +||http://enyayinxiang.com^ +||http://etg98.com^ +||http://fate-xy.com^ +||http://feihongjiaoyu.com^ +||http://fenvm.com^ +||http://fjmailia.com^ +||http://fm6w.com^ +||http://front99.com^ +||http://fuyigo.top^ +||http://gogolm.xyz^ +||http://gotourls.bid^ +||http://guangtui1999.com^ +||http://gzhctryy.com^ +||http://gzmsm.cn^ +||http://h01ce.cn^ +||http://harbinbaojia.net^ +||http://hdjxmf.com^ +||http://hechaocheng.cn^ +||http://henanfs.com^ +||http://hfxs01il.com^ +||http://hgo7r.cn^ +||http://hulemedia.com^ +||http://ip.hivps.xyz^ +||http://jhwj88.com^ +||http://jjqyk.com^ +||http://jlhygy.com^ +||http://juren0.com^ +||http://kkdsdlc.com^ +||http://kuangtuiguoo18888.com^ +||http://kuuad.com^ +||http://kyad88.com^ +||http://la61d.cn^ +||http://lucktui.com^ +||http://meizhuzhuangshi.com.cn^ +||http://mengchengbao.com^ +||http://miaobeichina.com^ +||http://mightiger.net^ +||http://mlangw.net^ +||http://nettsl.com^ +||http://np176.com^ +||http://pp9kk.com^ +||http://pr33.cn^ +||http://shanghuitianxia.cn^ +||http://shanxiyizhao.com^ +||http://shijiezhidao.com^ +||http://shongcheng.com^ +||http://shunlige.com^ +||http://smsksx.com^ +||http://somode.net^ +||http://soonyou123.com^ +||http://sssgao999.com^ +||http://starstar19999.com^ +||http://start1999.com^ +||http://startui19999.com^ +||http://sy123888.com^ +||http://tangeb.com^ +||http://tdtsd.com^ +||http://tjshuimu.com^ +||http://tkssw.com^ +||http://tuituiyoo999.com^ +||http://tuoguang1111.com^ +||http://uux79.com^$third-party +||http://wangketuan.com^ +||http://weduoke.com^ +||http://weekslw.com^ +||http://weixingshexiangji.net^ +||http://wjdjcjcm444.cn^ +||http://wxktv.cn^ +||http://xiaohui2.cn^ +||http://xlsschina15.net^ +||http://xueyanshan.com^ +||http://xvyljkr.com^ +||http://xzqxz.net^ +||http://ydeprint.com^ +||http://ynjkkj.com^ +||http://yootui19999.com^ +||http://youhm.cn^ +||http://youhuomeishi.com^ +||http://yttz113.com^ +||http://yunpifu.cn^ +||http://yuxiangrc.com^ +||http://yzjlsb.com^ +||http://zgdmsj.cn^ +||http://zhuyuanp.club^ +||http://zhybw88.com^ +||http://zrwhartongroup.com^ +||http://alicdn.com^$domain=2c2.website|2p8.space|adultgao.com|caopop.com|caoporn.com|caouoo.com|caox.cc|h3e.pw|h3y.pw|k88.club|me88.pw|p5p.space|se88.space|t2p.space|tb001.xyz|te88.pw|vwan.xyz|xhao1.com +||http://camspic.com/imguang/*.gif +||http://sinaimg.cn^$domain=2c2.website|2p8.space|adultgao.com|caopop.com|caoporn.com|caouoo.com|caox.cc|h3e.pw|h3y.pw|k88.club|me88.pw|p5p.space|se88.space|t2p.space|tb001.xyz|te88.pw|vwan.xyz|xhao1.com +||http://aaaimg.com/images*.gif +||http://canimgs.com/images/ +||http://caoimg.xyz/images/ +||http://caoimgs.com/images/*.gif +||http://ganimg.com/images/*.gif +||http://ganimgs.com/images/*.gif +||http://gaoimg.xyz/images/ +||http://ggtg8.com^ +||http://haoimgs.com/images/*.gif +||http://paopic.com/imguang/ +||http://anixwallpaper.com^$csp=script-src 'self' * 'unsafe-inline' +||http://techroomage.com^$csp=script-src 'self' * 'unsafe-eval' +||http://dlkoo.cc/down/$subdocument +||http://dlkoo.cc/down/*.htm$popup +||http://dlkoo.cc/down/copy +||http://haoxianggou.xyz/?from=$popup,third-party +||http://dlkoo.com/down/$subdocument +||http://dlkoo.com/down/copy +||http://ifun.tv/a/$xmlhttprequest +||http://s1-a1.dnvodcdn.me^*.svg +||http://s1-a4.ifun.tv^$rewrite=abp-resource:blank-mp3,domain=ifun.tv +||http://dnvod.tv/abb/$domain=dnvod.tv +||http://s1-a4.dnvod.tv^$rewrite=abp-resource:blank-mp3,domain=dnvod.tv +||http://dnvod.tv/04/ +||http://dnvod.tv/1tJ/ +||http://dnvod.tv/2b/ +||http://dnvod.tv/34DH/ +||http://dnvod.tv/3a/ +||http://dnvod.tv/91/ +||http://dnvod.tv/BtT/ +||http://dnvod.tv/DBqW/ +||http://dnvod.tv/Home/ObtainPublic +||http://dnvod.tv/LbP/ +||http://dnvod.tv/Movie/GetResource.ashx?id= +||http://dnvod.tv/Qfj/ +||http://dnvod.tv/Scripts/jquery.public- +||http://dnvod.tv/WlCk/ +||http://dnvod.tv/a/$xmlhttprequest +||http://dnvod.tv/a/o +||http://dnvod.tv/a2/ +||http://dnvod.tv/b9/ +||http://dnvod.tv/cSTR/ +||http://dnvod.tv/d4/ +||http://dnvod.tv/f9/ +||http://dnvod.tv/ffcX/ +||http://dnvod.tv/gb/ +||http://dnvod.tv/jXdH/ +||http://dnvod.tv/sc3Xv/ +||http://dnvod.tv/upload/public/ +||http://dnvod.tv^*.MP4| +||http://p2.dnvod.tv^ +||http://p3.dnvod.tv^ +||http://p4.dnvod.tv^ +||http://p5.dnvod.tv^ +||http://p6.dnvod.tv^ +||http://pub.dnvod.tv^$xmlhttprequest +||http://pub1.dnvod.tv^ +||http://public.dnvod.tv^$xmlhttprequest +||http://s1-a1.dnvod.tv^ +||http://s1-a2.dnvod.tv^ +||http://s1-a3.dnvod.tv^ +||http://hh010.com/static/image/f/ +||http://hh010.com/static/image/g/ +||http://hh010.com/static/image/image/ +||http://hh010.com/static/image/t/ +||http://stunninglover.com^ +||http://aa1.ifeng.com^ +||http://ae4.ifeng.com^ +||http://as.g5s.ifeng.com^ +||http://bb2.ifeng.com^ +||http://cc3.ifeng.com^ +||http://dkg.ifeng.com^ +||http://ifeng.com^*?*cl= +||http://ifengimg.com/*1751.js +||http://ifengimg.com/6536a +||http://ifengimg.com/9c86 +||http://ifengimg.com/c867 +||http://ifengimg.com/cfb80 +||http://ifengimg.com/d54c8 +||http://ifengimg.com/md86 +||http://ifengimg.com/sdk +||http://ifengimg.com/sfs-6536a6d5.js +||http://ifengimg.com^*/m/sources +||http://ifengimg.com^*679.js +||http://cryptaloot.pro^ +||http://yuyyio.com^ +||http://wuwuhh.top^ +||http://ucsmqq.site^ +||http://0234408.cn^ +||http://03196688.com^ +||http://0532ci.com.cn^ +||http://0551zgz.com^ +||http://0577renliu. +||http://07kfh.cn^ +||http://0851ok.com^ +||http://0b6h.cn^ +||http://0fwg.cn^ +||http://0n6h.cn^ +||http://0ozo.cn^ +||http://0z5jn.cn^ +||http://114com.cc^ +||http://118ex.cn^ +||http://119cgpt.com^ +||http://12381236.com^ +||http://12jf3.cn^ +||http://17zheng.cn^ +||http://183pu.cn^ +||http://1j2h31.cn^ +||http://1k4vd.cn^ +||http://1mb034.cn^ +||http://1x26q3.cn^ +||http://215to.cn^ +||http://216pu.cn^ +||http://21xsk.com^ +||http://228pu.cn^ +||http://23txt.com^$third-party +||http://24haitao.net^ +||http://258zw.com^ +||http://282l1.cn^ +||http://28mcw1.cn^ +||http://2fnrc.cn^ +||http://2r3485.cn^ +||http://2scjbg.com^ +||http://2shoushi.com^ +||http://2st5ne.cn^ +||http://2v9ml.cn^ +||http://2wxb5.cn^ +||http://2zm4.cn^ +||http://365yigou.cn^ +||http://38ursg.cn^ +||http://3ql1pb.cn^ +||http://3vn52l.cn^ +||http://47dx0c.cn^ +||http://47n209.com^ +||http://49lkc.cn^ +||http://4a3zf.cn^ +||http://4ekx.cn^ +||http://4py3oe.cn^ +||http://4qn1k.cn^ +||http://4z5o27.cn^ +||http://519397.com^ +||http://51gpt.com^ +||http://51posuiji.org.cn^ +||http://52tushuo.com^ +||http://555b2b.com^ +||http://58scx.com^ +||http://58xmgys.com^ +||http://5dydk.com^ +||http://5kmm.top^ +||http://5mbd2.com^ +||http://5pb266.com^ +||http://5tbiec.cn^ +||http://5x0f.cn^ +||http://5yw4n.cn^ +||http://64si.com^ +||http://678sky.com^ +||http://69yll.cn^ +||http://6c4t5.cn^ +||http://6fai2.cn^ +||http://6nzev.cn^ +||http://6o87d.cn^ +||http://6ou47b.cn^ +||http://6yush.cn^ +||http://6yw7j.cn^ +||http://70e.me^ +||http://71mxc6.cn^ +||http://73cm.com^ +||http://757g7g.cn^ +||http://7ez4.cn^ +||http://7ia9h.cn^ +||http://7n3e8o.com^ +||http://80f31.cn^ +||http://81ngn1.cn^ +||http://85rvq.cn^ +||http://85wa.cn^ +||http://88android.com^ +||http://88k73d.cn^ +||http://89tyge.top^ +||http://8byu.cn^ +||http://8fiv9a.cn^ +||http://8j24h.cn^ +||http://8ls3n.cn^ +||http://8p30k.cn^ +||http://8v7wg.com^ +||http://91byy.cn^ +||http://958so.cn^ +||http://979067.com^ +||http://97kuaixiu.com^ +||http://97paa.com^ +||http://99hg.wang^ +||http://9d7in.cn^ +||http://9pb0h.cn^ +||http://9x6lr.cn^ +||http://9y88.com^ +||http://9yyg.cn^ +||http://a9v8.cn^ +||http://aa.wenxue6.com^ +||http://aabku.cn^ +||http://aauisg64017.cn^ +||http://abeij.com^ +||http://abfirst.cn^ +||http://acaog.com^ +||http://acaox.com^ +||http://acaoz.com^ +||http://achig.com^ +||http://actingidekex.cn^ +||http://adaog.com^ +||http://admddc.com^ +||http://aduic.com^ +||http://aercxy.com^ +||http://afefw.com^ +||http://afoux.com^ +||http://aganj.com^ +||http://agurl.top^ +||http://ahuac.com^ +||http://aibangzs.com^ +||http://aicydb.com^ +||http://aikan6.com^ +||http://aimiyz.com^ +||http://aiode.cn^ +||http://aishake.cn^ +||http://aishowbger.com^ +||http://aiyyu.com^ +||http://ajiez.com^ +||http://ajkdg3.xyz^ +||http://alksdh.com^ +||http://alryo.cn^ +||http://amu520.com/imgnk/02.gif +||http://anmeilai.net^ +||http://anyysz.com^ +||http://aomde.com^ +||http://apjiangte.com^ +||http://apmengxin.com^ +||http://applequan.com^ +||http://apxyz.com^ +||http://archrug.com^ +||http://avsmt.cn^ +||http://awqsaged.cn^ +||http://awtks.com^ +||http://awyys.com^ +||http://axkxy.com^ +||http://axuns.com^ +||http://aykcic.com^ +||http://ayues.com^ +||http://b0lc.cn^ +||http://b54ah.cn^ +||http://baful.net^ +||http://baiduspider1.cn^ +||http://baiyangzs.com^ +||http://bapkt.com^ +||http://barnfps.com^ +||http://bbeyay41026.cn^ +||http://bbvjs.com^ +||http://bchur.com^ +||http://bcunr.com^ +||http://bdaor.com^ +||http://bdiae.com^ +||http://beidouxin.com^*html? +||http://beifmu.com^ +||http://bentengcn.com^ +||http://bgcse.cn^ +||http://bgj216.cn^ +||http://bgtrtv.top^ +||http://bhuak.com^ +||http://bianxianwu.com^ +||http://biboi.cn^ +||http://biluzhang.cn^ +||http://bingdiantao.com^ +||http://biquguan.com/guan/ +||http://bjbrtc.com^ +||http://bjdianyue.com^ +||http://bjeai.com^ +||http://bjygfd.com^ +||http://bjzcbx.com^ +||http://blfyquz.cn^ +||http://bmfwwz.top^ +||http://bmgan.com^ +||http://bmuju.com^ +||http://bobotune.com^ +||http://bokanedu.net^ +||http://book9.net^$third-party +||http://booksky.cc^*html? +||http://boweineng.cn^ +||http://bpdffh.cn^ +||http://bqqsdv73724.cn^ +||http://bslmw.com^ +||http://bsmakeup.com.cn^ +||http://bueson.com^ +||http://bvoer.com^ +||http://bvosv.com^ +||http://bym03.cn^ +||http://byujf.cn^ +||http://c19f2.cn^ +||http://c6z85.cn^ +||http://c82d5.cn^ +||http://ca88b.cn^ +||http://caduka.cn^ +||http://cailawyer.cn^ +||http://calculated.cn^ +||http://car156.net^ +||http://casbanlly.com^ +||http://cccab.club^ +||http://cchfjz.com^ +||http://ccjxybj.cn^ +||http://ccmdgg.com^ +||http://ccouv.com^ +||http://ccunf.com^ +||http://cdfzcz.com^ +||http://cdgxq.com^ +||http://cdhenfan.com^ +||http://cdiah.com^ +||http://cdn.m.okdd.net^ +||http://cdouj.com^ +||http://cdqjmc.com^ +||http://ceiyo.com^ +||http://ceyiuy.com^ +||http://cezezo.top^ +||http://cfdanet.com^ +||http://cfenl.com^ +||http://cgaij.com^ +||http://cgoiiq.com^ +||http://cgoul.com^ +||http://cgxxmy.com^ +||http://changhehengqi.com^ +||http://chaojilamei.cn^ +||http://chengboke.cn^ +||http://chenxiangqian.cn^ +||http://chersc.com^ +||http://chexiw.com^ +||http://chfuw.com^ +||http://chgdf.cn^ +||http://chinaqirun.cn^ +||http://chinaweian.com^ +||http://chrommotor.com^ +||http://chuangxinfa.cn^ +||http://chuhul.cn^ +||http://chutangpu.cn^ +||http://cike666.com^ +||http://cindy17club.com^ +||http://city009.com^ +||http://cjh9.cn^ +||http://cjieh.com^ +||http://ckaiv.com^ +||http://ckikq.com^ +||http://claiks.com^ +||http://clandia.cn^ +||http://clmmw.com^ +||http://cn-3drp.com^ +||http://cni58.com^ +||http://cniuv.com^ +||http://cnshef.com^ +||http://cnzhqs.com^ +||http://coccccc.cc^ +||http://codejumps.com^ +||http://codlw.com^ +||http://coenr.com^ +||http://cojia.net^ +||http://comesgo.com^ +||http://continuedsys.cn^ +||http://couas.com^ +||http://countersys.cn^ +||http://coveredsys.cn^ +||http://cpxkvc.com^ +||http://cqgya.com^ +||http://cqhhct.com^ +||http://cqlxscdc.top^ +||http://cqytjzgc.com^ +||http://cs12d.com^ +||http://ctiev.com^ +||http://cuoas.com^ +||http://cuoss.com^ +||http://cwj2h.cn^ +||http://cwpush.com^ +||http://cxaerp.com^ +||http://cxb4.cn^ +||http://cxcxt.com^ +||http://cxrjl.cn^ +||http://cxslchkb.cn^ +||http://cyto-biotherapy.com^ +||http://cyylove.com^ +||http://cz345.cn^ +||http://czlhgz.com^ +||http://czxjx.cn^ +||http://czyiming.club^ +||http://czzdf.com^ +||http://d08kfa.cn^ +||http://d72l4.com^ +||http://d93nzb.cn^ +||http://dabizi.net/images/pcad.png +||http://dachadu.cn^ +||http://daishuxy.com^ +||http://daizhankj.cn^ +||http://dajean.com^ +||http://dake.net.cn^ +||http://damiren.com^ +||http://daokejs.com^ +||http://daskm.com^ +||http://dbaij.com^ +||http://dbaof.com^ +||http://dbeii.com^ +||http://dbeij.com^ +||http://dbiej.com^ +||http://dbwmjj.com^ +||http://dcaij.com^ +||http://dceni.com^ +||http://dcuom.com^ +||http://ddanq.com^ +||http://ddg1277.com^ +||http://ddhuangchao.com^ +||http://ddpxhq.cn^ +||http://dengfenzhang.cn^ +||http://dependablewood.com^ +||http://deyidesign.com^ +||http://dezfu.com^ +||http://dgaoz.com^ +||http://dgxzwj.com^ +||http://dhaof.com^ +||http://dhbo4t.cn^ +||http://dhgdp.cn^ +||http://dhuhui.cn^ +||http://dierqingchun.com^ +||http://djhbxz.com^ +||http://djhhy.com^ +||http://dkdlsj.com^ +||http://dldsrs.com^ +||http://dlouf.com^ +||http://dlvnxf.cn^ +||http://dmpsj.cn^ +||http://dn189.com^ +||http://dnfeu.com^ +||http://doowe.cn^ +||http://doryhome.com^ +||http://dqgpb.com^ +||http://drc6i.cn^ +||http://drgykb.cn^ +||http://dsjcfw.com^ +||http://dsjre.com^ +||http://dtzysm.com^ +||http://duanwenxue.com/functions/ +||http://duoyidd.com^ +||http://dxcssc.cn^ +||http://dxmci.com^ +||http://dydyhg.com^ +||http://dzisou.com^ +||http://e647ob.cn^ +||http://e9emh.cn^ +||http://ecuwa.cn^ +||http://ediun.com^ +||http://edysn.cn^ +||http://egqiyw.com^ +||http://ehxyz.com^ +||http://ei4f.cn^ +||http://ejiur.com^ +||http://ejwmc.cn^ +||http://eloer.cn^ +||http://emgwq.com^ +||http://emshx.cn^ +||http://enjuk.com^ +||http://enjuw.com^ +||http://eou01a.cn^ +||http://epanr.com^ +||http://eqiuy.com^ +||http://erocw.com^ +||http://eshuy.com^ +||http://esuzm.cn^ +||http://esyzdb.com^ +||http://ewphm.cn^ +||http://exusr.com^ +||http://eyaor.com^ +||http://eysmaa.pw^ +||http://ezuon.com^ +||http://fangdalaw.gd.cn^ +||http://fangjslc.com^ +||http://fangzi2.top^ +||http://fbaot.com^ +||http://fbieq.com^ +||http://fcaot.com^ +||http://fccay.cn^ +||http://fchio.com^ +||http://fcrdb.com^ +||http://fcuit.com^ +||http://fcunq.com^ +||http://fdaoo.com^ +||http://fdoun.com^ +||http://feifish66.com^ +||http://feizw.com/style/t.js +||http://fenbengpan.cn^ +||http://ffanq.com^ +||http://ffychb.com^ +||http://fgaon.com^ +||http://fgzba.com^ +||http://fipipo.cn^ +||http://fj95560.com^ +||http://fjhanmei.com^ +||http://fjmrxys.com^ +||http://fjtzjy.com^ +||http://fjxyo.com^ +||http://fkikij.cn^ +||http://fkkse.com^ +||http://fkogs.com^ +||http://fninin.cn^ +||http://fnxmyx.cn^ +||http://focuscat.com^ +||http://foshou.pw^ +||http://fouas.com^ +||http://foumm.com^ +||http://fqzds.com^ +||http://frjxdv.cn^ +||http://fshet.com^ +||http://fstaw.com^ +||http://fszhxd.com^ +||http://ftrp4.cn^ +||http://fuhuikang360.com^ +||http://fuwosi.cn^ +||http://fw.zhuaji.org^ +||http://fwjoi.com^ +||http://fwyang.com^ +||http://fx6j3.cn^ +||http://fxfhjs.com^ +||http://fxunn.com^ +||http://fy4zb.cn^ +||http://fyjyhm.com^ +||http://fzdfwy.com^ +||http://fzxrjx.com^ +||http://fzyda.com^ +||http://g3ao2q.cn^ +||http://gadhx.cn^ +||http://gadwhy.com^ +||http://galaxyns.com^ +||http://gaykes.com^ +||http://gazoeft.cn^ +||http://gbeik.com^ +||http://gbieg.com^ +||http://gcaij.com^ +||http://gcaog.com^ +||http://gcfx777.com^ +||http://gcheg.com^ +||http://gcouh.com^ +||http://gdaii.com^ +||http://gdeih.com^ +||http://gdhdfs.com^ +||http://gdlbdzkj.com^ +||http://gdsqwy.org^ +||http://gdunt.com^ +||http://gedus.cn^ +||http://gelinboer.cn^ +||http://georgias.cn^ +||http://gerunsenbo.cn^ +||http://ggouh.com^ +||http://ggz55268.com^ +||http://gjiai.com^ +||http://gjiak.com^ +||http://gjkpo.com^ +||http://gjuet.com^ +||http://glpen08.com^ +||http://glvej.com^ +||http://gmxyorg.cn^ +||http://gnmbd.top^ +||http://gobali.cn^ +||http://googlespider1.cn^ +||http://gou1zhe.com^ +||http://goulanmeng.cn^ +||http://gtaih.com^ +||http://gtchong.com^ +||http://gtifund.cn^ +||http://gtiou.com^ +||http://gtnde.com^ +||http://guaas.com^ +||http://guangsss1999.com^ +||http://guanqinjie.cn^ +||http://guansenff.cn^ +||http://gwdqp.com^ +||http://gxklsftz.cn^ +||http://gxkyl.com^ +||http://gxssjz.com^ +||http://gxunj.com^ +||http://gyeet.com^ +||http://gyhzr.com^ +||http://gyrtg.com^ +||http://gzmxybg.com^ +||http://gzmzts.com^ +||http://gznsyh.com^ +||http://gzzena.com^ +||http://h2pzh.cn^ +||http://hajuwang.cn^ +||http://hawbfa.com^ +||http://hbaog.com^ +||http://hbbww.com^ +||http://hbhxqcw.com^ +||http://hbnygj.com^ +||http://hbttcc.com^ +||http://hbyyzm.com^ +||http://hcaig.com^ +||http://hcenc.com^ +||http://hchig.com^ +||http://hchik.com^ +||http://hdfdm.com^ +||http://hdminfeng.com^ +||http://hdswgc.com^ +||http://hduic.com^ +||http://headwell.cn^ +||http://hebhec.cn^ +||http://hebzycw.com^ +||http://hehmy.cn^ +||http://heib2.top^ +||http://heizundg.cn^ +||http://helpinfo.cn^ +||http://henduoqian.com^ +||http://hfyxdl.com^ +||http://hgdanbas.cn^ +||http://hgrqp.com^ +||http://hguac.com^ +||http://hguas.com^ +||http://hhslbz.cn^ +||http://hihufu.cn^ +||http://hissq.com^ +||http://hjiec.com^ +||http://hjjnpx.com^ +||http://hjkrlc.cn^ +||http://hjryl.com^ +||http://hjues.com^ +||http://hjzndq.com^ +||http://hk7799.net^ +||http://hk9600.com^ +||http://hkmqp.com^ +||http://hldwmly.com^ +||http://hlhulu.com^ +||http://hmhqp.com^ +||http://hmttoly.com^ +||http://hmyangshengji.com^ +||http://hnfxty.cn^ +||http://hnhgw.cn^ +||http://hnzyfs.com^ +||http://hogyp.com^ +||http://hongshikai.com^ +||http://hongyangbg.com^ +||http://how5.cn^ +||http://hp-china.biz^ +||http://hpzyl.com^ +||http://hqgjcm.com^ +||http://hqsjc.com^ +||http://hs1s1.cn^ +||http://hsbkr.com^ +||http://htfmbt.com^ +||http://htjsk.com^ +||http://huayange.com^ +||http://huayi65.com^ +||http://huigoushop.com^ +||http://hunpp.com^ +||http://hwertd.xyz^ +||http://hxiak.com^ +||http://hycfxdc.com^ +||http://hyjyjc.com^ +||http://hypzv.com^ +||http://hyxca.top^ +||http://hzht666.com^ +||http://hzuok.com^ +||http://hzuvw.com^ +||http://hzxfmc.com^ +||http://hzzfan.com^ +||http://i-components.net^ +||http://i05h.cn^ +||http://ia22.com^ +||http://iamqqo85467.cn^ +||http://iangp.com^ +||http://iangs.com^ +||http://iauqwe.com^ +||http://ibaop.com^ +||http://ibeiling.cn^ +||http://ibeip.com^ +||http://ibinp.com^ +||http://icebeatuy.com^ +||http://icyrd.com^ +||http://idanmei.cn^ +||http://identified.cn^ +||http://ienkdaccessible.cn^ +||http://ienkdago.cn^ +||http://ieqmeq.com^ +||http://ifeib.com^ +||http://ihais.com^ +||http://ihear123.com^ +||http://ihhii.xyz^ +||http://iigushi.com^ +||http://ijieo.com^ +||http://ijuns.com^ +||http://ijuny.com^ +||http://imanchu.cn^ +||http://imiek.com^ +||http://imykgs.com^ +||http://inccnd.com^ +||http://increased.cn^ +||http://infvb.com^ +||http://internerl.com^ +||http://iq24ne.cn^ +||http://irauz.com^ +||http://irkuj.com^ +||http://iruad.com^ +||http://ishowms.com^ +||http://iyaos.com^ +||http://iyuey.com^ +||http://izouo.com^ +||http://izuis.com^ +||http://jaat3ax.site^ +||http://jbanb.com^ +||http://jbbath.cn^ +||http://jcaik.com^ +||http://jcaip.com^ +||http://jcdb88.com^ +||http://jcwwxn.com^ +||http://jdaot.com^ +||http://jdflower.cn^ +||http://jdgsgl.com^ +||http://jduiv.com^ +||http://jgkto.com^ +||http://jiaofulin.cn^ +||http://jiaqingli.cn^ +||http://jieyixiu.com^ +||http://jifeidandar.com^ +||http://jiirz.com^ +||http://jim86d.cn^ +||http://jinchaoyu.com^ +||http://jingdayiyuan.com^ +||http://jingxiangyalvji.cn^ +||http://jioeg.com^ +||http://jiumishow.com^ +||http://jiyuanzixun.com^ +||http://jkert.com^ +||http://jlkja.com^ +||http://jlvskg.cn^ +||http://jlxzt.com^ +||http://jmxlaser.com^ +||http://jndczg.com^ +||http://jnsdkjzs.com^ +||http://jollyspring.com^ +||http://jotrening.com^ +||http://jpenk.com^ +||http://jpg1.oss-cn-beijing.aliyuncs.com^ +||http://jrdkc.com^ +||http://jsaik.com^ +||http://jssumei.cn^ +||http://jstdjq.com^ +||http://jsyjwj.com^ +||http://jullycn.com^ +||http://jundazulin.com^ +||http://just9229.cn^ +||http://juyzr.com^ +||http://jwhfn.cn^ +||http://jwiyr.com^ +||http://jx.cn^$third-party +||http://jxhcyc.com^ +||http://jxinyue.top^ +||http://jxnrfx.com^ +||http://jxxcfd.com^ +||http://jyhwt.cn^ +||http://jyjhkz.com^ +||http://jzntxs.com^ +||http://k5ai3c.cn^ +||http://k859n.cn^ +||http://k9wi2d.cn^ +||http://kafka8.com^ +||http://kanjiaqun.cn^ +||http://kbstyn.com^ +||http://kcenu.com^ +||http://kchaq.com^ +||http://kcooy.com^ +||http://kdieu.com^ +||http://ketaoke.com^ +||http://kexigia.com^ +||http://kfand.com^ +||http://kfeiu.com^ +||http://kfuih.cn^ +||http://kguaq.com^ +||http://khuoy.com^ +||http://kjfhe.com^ +||http://kjhfy.com^ +||http://kl6636.net^ +||http://koudaichaoshi.cn^ +||http://kqiaq.com^ +||http://ks67.com^ +||http://ksdsuzhou.com^ +||http://kshks5.site^ +||http://kteyz.com^ +||http://ktzte.cn^ +||http://kuaituisss.com^ +||http://kueofwt.cn^ +||http://kuptmf.cn^ +||http://kwjkd.com^ +||http://kwp79i.cn^ +||http://kxhie.com^ +||http://kyxnz.cn^ +||http://kz8tr2.cn^ +||http://l30od.cn^ +||http://l4elb.cn^ +||http://l93stb.cn^ +||http://l9c4s.cn^ +||http://la71f.cn^ +||http://laksdn.com^ +||http://lanhouhou.cn^ +||http://laojiayoufang.com^ +||http://layyi.com^ +||http://lbaij.com^ +||http://lbaoj.com^ +||http://lchar.com^ +||http://lcrmm.top^ +||http://legozu.com^ +||http://lerenzx.cn^ +||http://let83.cn^ +||http://lfdydk.com^ +||http://lfouz.com^ +||http://lfzxcp.com^ +||http://lglady.cn^ +||http://lglkqm.cn^ +||http://lguir.com^ +||http://lhhxlj.com^ +||http://lianfuhuang.cn^ +||http://liaotian4.com^ +||http://lifuzhubao.com^ +||http://lihongdou.cn^ +||http://linwukui.cn^ +||http://linyankm.cn^ +||http://listenother.com^ +||http://ljuer.com^ +||http://lletd.cn^ +||http://llvez.com^ +||http://lnenz.com^ +||http://lpaoz.com^ +||http://lqmohun.com^ +||http://lsiwd.cn^ +||http://lusrg.cn^ +||http://luxoshopde.com^ +||http://lvyishengtai.com^ +||http://lxind.cn^ +||http://lybczlsb.com^ +||http://lyjz001.com^ +||http://lyshengtu.cn^ +||http://lzida.com^ +||http://lzjycy.com^ +||http://lzkjsj.com^ +||http://lzytt.com^ +||http://m4ztka.cn^ +||http://m72r.cn^ +||http://mammina.cn^ +||http://maoyumao.net^ +||http://maxoi.cn^ +||http://mbaik.com^ +||http://mbiek.com^ +||http://mcaik.com^ +||http://md0z4dh.com^ +||http://mdous.com^ +||http://mdsfzh.cn^ +||http://mendoc.cn^ +||http://mengpr.com^ +||http://meooe.com^ +||http://mgldzcls.com^ +||http://mgsue.cn^ +||http://mhuos.com^ +||http://miaiche.cn^ +||http://miaos11.com^ +||http://mid5in.top^ +||http://miiuv.com^ +||http://mindrook.com^ +||http://mjita.cn^ +||http://ml44.cn^ +||http://mlion.cn^ +||http://mmfusheng.com^ +||http://mmhhjt.com^ +||http://mmkvi.com^ +||http://mmpuh.cn^ +||http://mmwdwg.cn^ +||http://mobiorg8.com^ +||http://morningpiggy.com^ +||http://mouaa.com^ +||http://movii-loft.cn^ +||http://mqcwr.cn^ +||http://mqgpo.com^ +||http://mqies.com^ +||http://mreod.cn^ +||http://msdfd.cn^ +||http://msuik.cn^ +||http://mtcat.cn^ +||http://mubite.cn^ +||http://mukkkoi.cn^ +||http://muusn.cn^ +||http://mwjpk.com^ +||http://myycrw.com^ +||http://mzclass.club^ +||http://nbaob.com^ +||http://nbhotpo.com^ +||http://ncoyqc.com^ +||http://nduop.com^ +||http://ndusa.cn^ +||http://neijh.com^ +||http://nernv.com^ +||http://netko0o.com^ +||http://nfkos.com^ +||http://nickarini.com^ +||http://niegg.com^ +||http://nihao987654.top^ +||http://ningbojipiao.com^ +||http://nixiclothing.com^ +||http://njguluyu.cn^ +||http://njxczy.com^ +||http://nkwwbg.com^ +||http://nmmdzq.cn^ +||http://nmtouzi.com^ +||http://nnfiy.com^ +||http://nongshengyi.cn^ +||http://nq37f.cn^ +||http://ntpddq.com^ +||http://nwwap.com^ +||http://nwxzs.com^ +||http://nxh2h.cn^ +||http://nxkycx.com^ +||http://nxwly.com^ +||http://nxypz.com^ +||http://nyhnx.com^ +||http://nykps.com^ +||http://oangm.com^ +||http://obeip.com^ +||http://obj9.cn^ +||http://oende.cn^ +||http://oeocriaq.cn^ +||http://oesnw.com^ +||http://ohuam.com^ +||http://ojues.com^ +||http://okshishi.com^ +||http://okuis.com^ +||http://okwan.cn^ +||http://olc0.cn^ +||http://on68xf.cn^ +||http://once88.cn^ +||http://oomyv.com^ +||http://opengam.com^ +||http://opqsr.com^ +||http://osaws.com^ +||http://osimym.com^ +||http://osndy.com^ +||http://osvp2.cn^ +||http://ou15r.cn^ +||http://oul78c.cn^ +||http://ow*.biqugego.com^ +||http://paochala.net^ +||http://passwz.com^ +||http://pbino.com^ +||http://pcaoo.com^ +||http://pd3a.cn^ +||http://pdfbs.com^ +||http://pdkuai.com^ +||http://petsheying.com^ +||http://photo.*.html?tk=$script,third-party +||http://pi920.com^ +||http://pianyi95.top^ +||http://piaogj.com^ +||http://picbr.com^ +||http://pieaa.com^ +||http://piliangzhuce.cn^ +||http://pincidao.cn^ +||http://pipysoft.cn^ +||http://pitena.top^ +||http://pjbjzf.com^ +||http://pkbrxja.cn^ +||http://pkesports.cn^ +||http://plerv.com^ +||http://plokr.com^ +||http://pmshy.cn^ +||http://pomhz.com^ +||http://pomkl.com^ +||http://pougg.com^ +||http://pptte.com^ +||http://pqnlorg.cn^ +||http://prazpf.cn^ +||http://ptuoa.com^ +||http://puzwb.cn^ +||http://pwjhg.com^ +||http://pxyvb.cn^ +||http://pyerc.com^ +||http://pyhuiyu.com^ +||http://pzuth.cn^ +||http://pzvlnh.cn^ +||http://q0uz4c.cn^ +||http://q671e.cn^ +||http://q7ms.cn^ +||http://qaqact.cn^ +||http://qcgkd322.vip^ +||http://qdiut.com^ +||http://qdyazc.com^ +||http://qflwh.cn^ +||http://qgana.com^ +||http://qgaot.com^ +||http://qhdop.com^ +||http://qhuik.com^ +||http://qiaopiguniang.com^ +||http://qinchugudao.com^ +||http://qingzhencai.net^ +||http://qjueu.com^ +||http://qkptx.com^ +||http://qlaot.com^ +||http://qloer.com^ +||http://qlonglong.com^ +||http://qneit.com^ +||http://qq0au.cn^ +||http://qqiat.com^ +||http://qsove.com^ +||http://qtpngov.cn^ +||http://quldu.com^ +||http://qzbxfs.com^ +||http://qzdag.com^ +||http://qzdaren.com^ +||http://raeqqe.cn^ +||http://rbign.cn^ +||http://rbywg.com^ +||http://rcaiu.com^ +||http://rcynoe.cn^ +||http://rdxhrd.com^ +||http://renshengyiyi.com^ +||http://represented.cn^ +||http://requested.cn^ +||http://rerwe.cn^ +||http://rfese.com^ +||http://ricqo.com^ +||http://rjiau.com^ +||http://rmwdn.com^ +||http://romgv.com^ +||http://rongnews.com^ +||http://rrkykn.cn^ +||http://rrrwwwa.com^ +||http://rtslgov.cn^ +||http://ruiyufangchan.cn^ +||http://ruxmc.cn^ +||http://ruyidk.com^ +||http://ruyiqufu.com^ +||http://rxxdq.cn^ +||http://s06th.cn^ +||http://s2mvd.cn^ +||http://sanitwealth.com^ +||http://sbenx.com^ +||http://sbiim.com^ +||http://sbinx.com^ +||http://sceyv.com^ +||http://scouc.com^ +||http://scoue.com^ +||http://scqajt.cn^ +||http://sczhilong.cn^ +||http://sdaiv.com^ +||http://sdgdtz.cn^ +||http://sdkdm.com^ +||http://sdsqyyc.com^ +||http://sdytsh.com^ +||http://sezvc.com^ +||http://sfanf.com^ +||http://sguac.com^ +||http://sgzs999.com^ +||http://shenbimall.com^ +||http://shenyunkeji.com^ +||http://shidailw.com^ +||http://shjsxx.com^ +||http://shumilou.co/style/html5.js +||http://siguatv.cn^ +||http://sincetrade.com^ +||http://sjaidu.com^ +||http://sjczsc.com^ +||http://sjuqc.com^ +||http://slvtx.com^ +||http://smckii.cn^ +||http://smdhek58726.cn^ +||http://smpdth.cn^ +||http://smxay.com^ +||http://sonomoyo.com^ +||http://sonsang.cn^ +||http://sosjyx.com^ +||http://soso.ws^ +||http://soyue.cc^$third-party +||http://spahelani.com^ +||http://sqwscy.com^ +||http://srrux.com^ +||http://statstat888.com^ +||http://stuoe.com^ +||http://suehy.com^ +||http://suoooi.cn^ +||http://suwo0n.com^ +||http://svfwer.top^ +||http://swhgd.com^ +||http://swq48b.cn^ +||http://sxjkc.cn^ +||http://sxjxhg.com^ +||http://sxlczj.cn^ +||http://sxmdxy.com^ +||http://sxmutan.com^ +||http://sxxca.com^ +||http://sxzzhj.com^ +||http://sycbbs.com^ +||http://symaa.cn^ +||http://symab.cn^ +||http://symad.cn^ +||http://symae.cn^ +||http://symag.cn^ +||http://symah.cn^ +||http://sysadult.cn^ +||http://sysal.cn^ +||http://sytsr.com^ +||http://syxsa.cn^ +||http://szqifu.com^ +||http://szshouzhai.com^ +||http://tabwl.com^ +||http://tajxgs.com^ +||http://tatahn.com^ +||http://tbaia.com^ +||http://tbenq.com^ +||http://tbieq.com^ +||http://tbinq.com^ +||http://tchep.com^ +||http://tcnmf.com^ +||http://tdain.com^ +||http://tdoup.com^ +||http://tenh2.cn^ +||http://themee.cn^ +||http://thuyki.cn^ +||http://tianhelife.com^ +||http://tiankongzudui.com^ +||http://tianxiazhenji.com^ +||http://tiaopimiao.net^ +||http://tiaoweiyou.cn^ +||http://tick0.com^ +||http://tinwong.cn^ +||http://tiojk.com^ +||http://tiwom.com^ +||http://tjiaa.com^ +||http://tkshyp.com^ +||http://tl875f.cn^ +||http://tmmjgcp.cn^ +||http://tmrmixer.cn^ +||http://tochgw.com^ +||http://tongjiwo.com^ +||http://tp74ym.cn^ +||http://travlcen.com^ +||http://tsrc8.com^ +||http://tuadong.com^ +||http://tukexiu.com^ +||http://txstatic.cn^ +||http://txtxr.com^ +||http://tymsyx.com^ +||http://tyyjzs.cn^ +||http://u7qy3e.cn^ +||http://ubaii.com^ +||http://uc4a.cn^ +||http://ucaii.com^ +||http://uchij.com^ +||http://ueaeqqi.cn^ +||http://uhor8.cn^ +||http://uissm.com^ +||http://uksnyf.cn^ +||http://umm6.cn^ +||http://umyai.com^ +||http://uqpfh.cn^ +||http://usty357a.site^ +||http://uuopp.com^ +||http://uxyrl.cn^ +||http://uzhaj.com^ +||http://uzyid.cn^ +||http://v3iy0h.cn^ +||http://v44i.cn^ +||http://v5b99.cn^ +||http://vb4rvq.cn^ +||http://vbaiu.com^ +||http://vbanm.com^ +||http://vbaof.com^ +||http://vbaou.com^ +||http://vbieu.com^ +||http://vbinu.com^ +||http://vcaif.com^ +||http://vchim.com^ +||http://vchiy.com^ +||http://vcuor.com^ +||http://vdlha.cn^ +||http://ve6j.cn^ +||http://vers80.com^ +||http://vf5yb4.cn^ +||http://vgaom.com^ +||http://vhuay.com^ +||http://vichc.com^ +||http://viiqx.com^ +||http://vjuer.com^ +||http://vkjnd.com^ +||http://vkuay.com^ +||http://vmiua.com^ +||http://vnanf.com^ +||http://vouky.com^ +||http://vsxet.com^ +||http://vvnna.com^ +||http://vvocm.com^ +||http://vweit.com^ +||http://vy74i.cn^ +||http://w13qh.cn^ +||http://w859u.cn^ +||http://waby66.cn^ +||http://wagenlux.cn^ +||http://wanfcc.com^ +||http://wanrenshe.com^ +||http://wao24.com^ +||http://warron.cn^ +||http://wbanz.com^ +||http://wbaor.com^ +||http://wbies.com^ +||http://wbiev.com^ +||http://wcail.com^ +||http://wcaos.com^ +||http://wcjup.com^ +||http://wdeie.com^ +||http://wdiur.com^ +||http://webenginner.com^ +||http://webkooo.com^ +||http://weboser.com^ +||http://wechatpu.com^ +||http://weikefanli.com^ +||http://weiziqiang.top^ +||http://wervp.com^ +||http://wfyqc.com^ +||http://wgaoe.com^ +||http://wghjq.cn^ +||http://whrles.com^ +||http://whsjg.cn^ +||http://whxhhjx.com^ +||http://wjdfv.com^ +||http://wjier.com^ +||http://wkjhd.com^ +||http://wksrx.cn^ +||http://wl963.com^ +||http://wnbfw.com^ +||http://wo-x.cn^ +||http://wokekk.com^ +||http://wonwg.com^ +||http://workbizs.com^ +||http://woshiyunying.com^ +||http://wotto.cn^ +||http://woyvk.cn^ +||http://wsoue.com^ +||http://wsxxu.com^ +||http://wuylp.com^ +||http://wvcdn.cn^ +||http://wvver.com^ +||http://wwetjy.com^ +||http://wxhdwy.com^ +||http://wxhh678.com^ +||http://wxhltd.com^ +||http://wxmg2016.com^ +||http://wywna.cn^ +||http://wzn4.cn^ +||http://x5cc5z.cn^ +||http://x81zw.com^*.gif +||http://xabtx.com^ +||http://xacqp.com^ +||http://xavingtsun.com^ +||http://xbaiv.com^ +||http://xberu.com^ +||http://xcbmwx.com^ +||http://xcdzsw.com^ +||http://xdkje.com^ +||http://xdunv.com^ +||http://xdyszx.com^ +||http://xeihy.com^ +||http://xfytjx.cn^ +||http://xhaiu.com^ +||http://xhct66.com^ +||http://xhera.cn^ +||http://xiakelea.com^ +||http://xiangchim0.com^ +||http://xiangshiw.net^ +||http://xindelin.cn^ +||http://xinghao89.com^ +||http://xingtaiju.cn^ +||http://xinterface.cn^ +||http://xinuocp666.com^ +||http://xjtxcj.com^ +||http://xk0x.cn^ +||http://xkanf.com^ +||http://xkena.com^ +||http://xkqpco.com^ +||http://xkunn.com^ +||http://xmcxz.com^ +||http://xmgdfb.cn^ +||http://xmgysweb.com^ +||http://xmndrx.cn^ +||http://xncgroup.cn^ +||http://xnghmc.com^ +||http://xnjzsn.com^ +||http://xrain.net^ +||http://xroun.com^ +||http://xrpva.cn^ +||http://xszysc.com^$third-party +||http://xtzxmy.com^ +||http://xujx8.com^ +||http://xunhuaji.cn^ +||http://xurizhongguo.cn^ +||http://xxkio.com^ +||http://xxlywl.cn^ +||http://xznykf.org^ +||http://xztms.com^ +||http://y05zw.cn^ +||http://y12f.com^ +||http://yajiuwz.xyz^ +||http://yanjunbo.com^ +||http://ybaih.com^ +||http://ybaiu.com^ +||http://ybanj.com^ +||http://ybaoh.com^ +||http://ybeih.com^ +||http://ybfwmm.cn^ +||http://ybhypt.com^ +||http://ybtianxi.com^ +||http://ychap.com^ +||http://ydfz.org^ +||http://ydouu.com^ +||http://yexfes.com^ +||http://yfano.com^ +||http://ygqczh.com^ +||http://yguap.com^ +||http://yicang8.com^ +||http://yicixingjinkou.com^ +||http://yicuntian.cn^ +||http://yijieweizf.com^ +||http://yingkepj.cn^ +||http://yinzantouzi.com^ +||http://yisloda.com^ +||http://yiyuantian.com^ +||http://yizhijin.cn^ +||http://yjiaj.com^ +||http://ymmdpk.cn^ +||http://ynbzxh.com^ +||http://yndushi.cn^ +||http://ynjczy.net^ +||http://ynjyhm.com^ +||http://ynmhg.cn^ +||http://ynnke.com^ +||http://ynp0h.cn^ +||http://yoiur.com^ +||http://youweiprint.com^ +||http://yoxus.cn^ +||http://ypzhwf.cn^ +||http://ys6ot.cn^ +||http://ysjweb.com^ +||http://yssbi.net^ +||http://ytbnm.cn^ +||http://ytdksb.com^ +||http://ytmaitian.com^ +||http://ytmaksim.cn^ +||http://yueyelive.com^ +||http://yunanfuwuqi.com^ +||http://yunxiufang.net^ +||http://yuxiny.com^ +||http://yuxyz.com^ +||http://ywbwsm.com^ +||http://ywrjgzs.com^ +||http://yxhxs.com^ +||http://yyeks.com^ +||http://yyhqch.com^ +||http://yyjhf.com^ +||http://yymmsd.cn^ +||http://z3uk6.cn^ +||http://zabxb.com^ +||http://zbeic.com^ +||http://zbieo.com^ +||http://zcand.com^ +||http://zcaod.com^ +||http://zcdor.com^ +||http://zcpap.cn^ +||http://zcpnq.cn^ +||http://zenffs.cn^ +||http://zenwq.com^ +||http://zesod.cn^ +||http://zfanc.com^ +||http://zfood029.com^ +||http://zgbsny.com^ +||http://zgclmw.cn^ +||http://zgfszs.com^ +||http://zgjjkk.com^ +||http://zgjkv.com^ +||http://zgncpjyw.cn^ +||http://zgsxhx.com^ +||http://zhamm.cn^ +||http://zhenben.cc/2000/ +||http://zhfyws.com^ +||http://zhiyaowan.cn^ +||http://zhuyuanp.shop^ +||http://zhuyuanp.top^ +||http://zhywyl.cn^ +||http://zizcy.com^ +||http://zjhrondo.cn^ +||http://zjkdaikuan.com^ +||http://zjuwjdc.com^ +||http://zkba9.cn^ +||http://zkfborg.cn^ +||http://zkwsdf.com^ +||http://zlauk.cn^ +||http://zmlfk.com^ +||http://zmyuer.com^ +||http://zougg.com^ +||http://zpoder.com^ +||http://zreder.com^ +||http://zstjy.com^ +||http://zsxpx.com^ +||http://ztxbd.com^ +||http://zunss.com^ +||http://zuopp.com^ +||http://zutodu.cn^ +||http://zwkssb.com^ +||http://zx-jsp.com^ +||http://zxhymh.com^ +||http://zxin131.cn^ +||http://zxjjzx.com^ +||http://zzhszj.com^ +||http://zzmmkj.com^ +||http://zzqqhb.com^ +||http://zzsdjq.com^ +||http://zzsno1.com^ +||http://corechina.net^ +||http://diogv.com^ +||http://iierq.com^ +||http://jbflil.cn^ +||http://shyanche.net^ +||http://yljiaoluo.com^ +||http://yqjxzw.com^ +||http://playno1.club/uppic/ +||http://rjno1.com^$csp=script-src 'self' *;style-src +||http://www.wifi588.net^*.gif +||http://69lm.com.cn^ +||http://qhdfxkj.com^ +||http://shxqeps.com^ +||http://hnpjshop.com^ +||http://lopostone.com^ +||http://qyqc4s.com^ +||http://vuahb.com^ +||http://alicdn.com^$domain=thz5.cc +||http://chuantu.biz^$domain=thz5.cc +||http://sinaimg.cn^$domain=thz5.cc +||http://tcmdz.com^ +||http://nvsea.com^ +||http://103.49.209.27^ +||http://146.148.85.61^ +||http://172.81.246.180^ +||http://212.64.34.17^ +||http://45.126.123.80^ +||http://akamaihd.net^*/gsd.html?d= +||http://akamaihd.net^*/sid.html?p= +||http://chaogej.com^ +||http://commondisplay-a.akamaihd.net/cri/*.htm?cat= +||http://hdapp1003-a.akamaihd.net^ +||http://hdapp1008-a.akamaihd.net^ +||http://hdsrc-a.akamaihd.net^ +||http://journalforum.org^ +||http://qhdbfjx.com^ +||http://sohu999.com^ +||http://withad.cn^ +||http://hjfile.cn/analytics/site/TrackEvent.js +||http://7moor.com^$third-party +||http://2005net.net^$third-party +||http://3jia5.com^$third-party +||http://5251.net^$third-party +||http://53kf.com^$third-party +||http://54kefu.net^$third-party +||http://5etv.com^$third-party +||http://bobo.com^$third-party +||http://cir-smart.baidu.com^ +||http://crs.baidu.com^ +||http://goutong.baidu.com^ +||http://knet.cn^$third-party +||http://kuaishang.cn^$third-party +||http://live800.com^$third-party +||http://looyu.com^$third-party +||http://lxbjs.baidu.com^$third-party +||http://meiqia.com^$third-party +||http://mylikechat.com^$third-party +||http://ntalker.com^ +||http://pop800.com^$third-party +||http://soperson.com^$third-party +||http://tui.cnzz.net^$third-party +||http://zoosnet.net^$third-party +||http://zoossoft.cn^$third-party +||http://025yimei.com/templets/default/js/swt.js +||http://100xuexi.com/CssModel/botad.js +||http://115img.com/static/pc/d_ +||http://126.net/caipiao/js2/dialog.js +||http://126.net/caipiao/js2/index/homePop.js +||http://163.com/special/*/bobo.html +||http://163.com^*/boboData +||http://17173.com/actapi/qiyu/ +||http://17173cdn.com^*/js/task/src/task/live/greenhand/ +||http://21sq.org/js/downloadbanner.js +||http://360doc.com/js/index7/mask_index_yc.js +||http://39.net/PictureLib/A/f76/20160825/org_749281.png +||http://51credit.com/bbs/js/bbs-end-layer.js +||http://51cto.com/iframe/get-station-ads +||http://51liucheng.com/js/dialogLogin.js +||http://51zxw.net/netclass/images/*_top.jpg +||http://6pan.cc/ps/vip.jpg +||http://a6.hujiang.com^$domain=~class.hujiang.com +||http://ad.qn.img-space.com^ +||http://ali213.net/js/3g/newsdetail.js +||http://alicdn.com/mtb/lib-smartbanner- +||http://aoji.cn/default/looyu/ +||http://asp300.com/2017images/kefu.js +||http://autohome.com.cn/news/$script +||http://autohome.com.cn/vr/*?pvareaid= +||http://autoimg.cn/Space/help/HelpRdTask.js +||http://baidu.com/cms/lemmaconfig/baikeDynamic. +||http://baidu.com/cms/lemmaconfig/navbarAd. +||http://baidu.com^*/app/banner_ +||http://baidu.dj/u/upan/you.html +||http://baike.com/newtop/news.html +||http://bdstatic.com/searchbox/icms/searchbox/img/*.jpg +||http://bdstatic.com/tb/img/icon_coo_operation_ +||http://bendibao.com/weixin_ +||http://bestpush.pconline.com.cn^ +||http://betteredu.net/js/pop_tuiguang_ +||http://bilibili.com/html/ads-index.js +||http://bjsxt.com/statics/js/bjsxt/js.js +||http://bjwj2y.com/JS/LsJS.aspx +||http://blog.sina.com.cn/lm/mini/ +||http://bobo.com/special/mod-follow/ +||http://c-ctrip.com/ResUnionOnline/R3/float/floating_normal.min.js +||http://caixin.com/file/content/js/mobile_news_app_banner.js +||http://cctvpic.com/photoAlbum/templet/common/*/game_ +||http://chazidian.com/all/gg_ +||http://china.com/images/milapp +||http://chinaacc.com/lamu/piao +||http://chinacloudsites.cn/api/promotion? +||http://chinanews.com/fileftp/2016/06/2016-06-13/U194P4T47D35171F967DT20160613093733.jpg +||http://chinanews.com/fileftp/2016/08/2016-08-04/U194P4T47D36220F967DT20160804155100.jpg +||http://chinatimes.com/ads/ +||http://cndns.com/incs/js/website_mobile.js +||http://con-article.hjapi.com/v1/txs/ +||http://cpu.baidu.com^ +||http://ctfile.com/img/*ssp +||http://daf-rs.com/imageViewer/wpAd +||http://dahe.cn/indiboy/ads/ +||http://dangbei.net/img/db/downdangbei.gif +||http://dilidili.wang/uploads/allimg/171227/1_1520203421.png +||http://dmzj.com/module/js/float_code.js +||http://dmzj.com/public/js/app_banner.js +||http://docin.com/building/getAdvById. +||http://douyu.com/dygev/*.swf +||http://duba.net/skins/2009/images/db300_250.gif +||http://dwstatic.com^*/newsPopup/ +||http://dwstatic.com^*/sidebar.js +||http://easteat.com/templets/default/images/media-top.png +||http://eastmoney.com/Extends/GetReferralLinkJavaScriptObj +||http://eastmoney.com/js/*Share.js +||http://eastmoney.com/public/ad.tools. +||http://eic.org.cn/api/Popup? +||http://eic.org.cn^*/analytics +||http://enet.com.cn/counter.php +||http://ettoday.net/style/mobileweb2014/js/smartbanner/jquery.smartbanner. +||http://ettoday.net/style/video-ad/ +||http://feng.com^*/index_treasure/ +||http://fengbuy.com/recommend-new. +||http://fh21.com.cn/js/passport/createQuickMenu.js +||http://forex.com.cn/index.php/Invoking/tanchukuang +||http://forex.com.cn/statics/images/ewm.jpg +||http://fydisk.com/images/showvip.gif +||http://goodcome.com.tw/block/ad/rndtopad.php +||http://gtimg.com/finance/js/st/p/news_ad_ +||http://gtimg.com/gamezone/2014index/images/600x75.jpg +||http://gtimg.com/pingjs/ext2020/dc2017/dist/m_tips/tips.js +||http://gz-chengkao.com/js/duo.js +||http://haha.mx/images/banner/ +||http://hanjutv.com/public/js/layer/layer.js +||http://hao123img.com/v4/MB/xU/jy/VY/YX/MBxUjyVYYX.js +||http://heiguang.com/_r/2015/js/hrBottomBar. +||http://hexun.com/2016/pc/618.swf +||http://hexun.com/2017-11-07/191534592.jpg +||http://hexun.com/inc/popbox.aspx +||http://hexun.com^*/appDplus +||http://hjapi.com/v1/pageSoftText? +||http://hjfile.cn/lib/hui/footer/0.1.0/footer.js +||http://hjfile.cn/lib/uzhi/uzt. +||http://hjfile.cn/site/hj-lzs/ +||http://hjfile.cn/site/js/pop_gift_plugin.js +||http://house365.com/js/fixWin.php +||http://howbuy.com/subject/js/jquery.blockUI.js +||http://howbuy.com/subject/js/layer/layer.js +||http://hujiang.com/Web/tx.ashx +||http://iask.sina.com.cn/s-b/mxbg +||http://iciba.com/static/images/download_banner.png +||http://ifeng.com/uploadfiles/main_blog/main_child/v3_block +||http://ifengimg.com/auto/js/*enquiry +||http://ifengimg.com^*/red2018icon. +||http://igo.cn/liuxue/js/slideBar +||http://imall.cctv.com^ +||http://imall.cntv.cn^ +||http://ithome.com/block/headerline$subdocument +||http://ithome.com/images/productgif/pcmaster.gif +||http://ithome.com/images/v2.1/downsoftmaster.gif +||http://jc001.cn/img/yhj.gif +||http://jc001.cn/indexnew/js/yuyue.js +||http://jia.com/js/common/jia-common.js +||http://jia.com/js/tuku/footBanner_ +||http://jia.com/js/zixun/news.js +||http://jia.com/js/zixun/zixun_ +||http://jianshe99.com/lamu/ +||http://kaoyan.com/__pub/shop_book.html +||http://kaoyan.com/global/js/backtopnew.js +||http://kaoyan.com/school/final_class.html +||http://kaoyan.com/school/js/yz.school.packed.js +||http://kekenet.com/images/*/app +||http://kgimg.com/public/root//images/hardware.jpg +||http://kongzhong.com/style/newindex/js/tad.js +||http://koolearn.com/v2/js/*AD.js +||http://koolearn.com/v2/js/wxewm.js +||http://koolearn.com/www/subject/script/subject_form.js +||http://koolearn.com/zt/poster_js/$domain=~www.koolearn.com +||http://kuakao.com:6053/floatcard? +||http://kuwo.cn/static/swf/xctg.swf +||http://lab.feng.com/images_new/ad- +||http://lofter.com/blogPhotoAd? +||http://lofter.com/mailEntry.do?blogad +||http://longzhu.com/i/api/videos/dailyRecommend? +||http://me360.com/swt/swt.js +||http://meilele.com/js/mll/baiduLabelRecommend. +||http://mianwww.com/wp-content/uploads/2014/05/insigmaedu1.gif +||http://mitbbs.com/img/app +||http://mnks.cn/jk/appAD_ +||http://mtime.cn/library/*/ECommerce/GoodsAndFeatureCtrl.js +||http://naajie.com/float.js +||http://netease.com/f2e/auto/modules/float-ask-price/ +||http://netease.com/fz/interface/frontend/fz.do?pos=tongyong- +||http://netease.com^*bobologo +||http://neuralstemcell.com.cn/img/js.js +||http://ntce.com/images/js/ntce_public.js +||http://offcn.com/index.php?m=dbsource&c=call&a=get&id=75 +||http://offcn.com/offcnewm/ +||http://ol-img.com/channel/tuku/js/tukuPopup.js +||http://pcauto.com.cn/forum/1508/intf7631.js +||http://pcauto.com.cn/forum/autobbs/clubtl/ +||http://pchome.com.tw/js/fancybox/ +||http://pconline.com.cn/intf/hot_ +||http://pinggu.org/api/bbsgg. +||http://pstatp.com/growth/mobile_list/image/bonus_ +||http://pstatp.com^*/bannersdk/ +||http://qhimg.com/static/5dcd236fc857be9c,5b391c33a0748022.js +||http://qidian.com/Images/990x40_ +||http://qudao.com/common/minisite.js +||http://qyer.com/qcross/home/ajax?action=banner +||http://qyerstatic.com/common/models/common/component/footerBanner/ +||http://rjzxw.com/temp/index.files/logo2.gif +||http://rrjc.com/home/seo/ad/ +||http://shejiben.com/common/libs/layer.js +||http://shejiben.com/common/widgets/ui/*zb.js +||http://shopping.udn.com/mall/cus/cat/OutWebAd.do? +||http://showguide.cn/templets/*/qqcenter.js +||http://showguide.cn/templets/*/sg-ad.js +||http://sina.com.cn/1016/getPhones- +||http://sina.com.cn^*/energypop. +||http://sinaimg.cn/finance/*/hqMainTopBanner.js +||http://sinaimg.cn/finance/*/sideQR +||http://sinaimg.cn/finance/app2018/js/appbar.js +||http://sinaimg.cn/finance/hq_finapp_ad/ +||http://sinaimg.cn/finance/ny_live*.js +||http://sinaimg.cn/finance/wanghong_ +||http://sinaimg.cn/large/a518ed97jw1eu4mxubbe6j209q01e3ys.jpg +||http://sinaimg.cn/mw690/005uyUwYjw1eocc98cbgag30gk02ygm9.gif +||http://sinaimg.cn/tech/*/sidebar.js +||http://sinaimg.cn^*/everyoneReading.js +||http://soft4fun.net/wp-content/themes/arthemia/js/common_footer_min.js +||http://soso.com/wenwen/i/ad/ +||http://soufunimg.com/common_m/m_public/js/wa +||http://sp.qf.56.com^ +||http://tfg2.com/images/upfile/banner/ +||http://tianya.cn/shang/*/index.shtml +||http://tianyaui.com/cms_fragments/res/*/bbs_include_mod.js +||http://tianyaui.com/global/dashang/vip_seat/js/ds_vip_seat.js +||http://to8to.com/assets/wap//common/widgets/appGuide/appGuide. +||http://to8to.com/yezhu/zxbjWidget. +||http://to8to.com^*_bottom_ +||http://toutiao.haotui.com/data/js/0.js +||http://tq.cn/floatcard? +||http://tsdmw.net/img01/MP3/pm_ +||http://tuyiyi.com/tuyiyi/m.js +||http://tv002.com/img/down1_ssp1.gif +||http://upaiyun.com/wp-content/uploads/2016/12/wenzhangyouce +||http://w3cschool.cn/attachments/image/20170919/1505817817281252.jpg +||http://wanwan.sina.com.cn/kb/ +||http://wanwan.sina.com.cn/sinasupersport/back/ +||http://wbiao.cn/common/adapi/ +||http://wbiao.cn/common/newsbannerAds/ +||http://wbiao.co/src2/js/expand/fudong/ +||http://webservice.360doc.com^ +||http://wingontravel.com/Static/headerfooter/Content/js/masterpage. +||http://wumii.cn/ext/relatedItemsWidget +||http://wuxibus.com/Image/title +||http://xcar.com.cn/bbs/adfocus.js +||http://xiaoma.com/kf.php?arg= +||http://xiaoma.com/xiaoma/www/js/article_right +||http://xnimg.cn^*/liveinc/rightlive.js +||http://ye120.com/swt.js +||http://ye120.com/zool.js +||http://youdao.com/market/banner/banner +||http://youdao.com/www/banner.html +||http://yytcdn.com/js/common/widget/pcpusher. +||http://zhiyoo.com/mplus/images/banner.jpg +||http://zndsssp.dangbei.net^ +||http://zol-img.com.cn/star/image/star-banner2.gif +||http://zol.com/index.php?c=ZolShopIndex +||http://zp365.com/newhousered/hb-index-pop- +||http://zuoyebang.cc/static/question/question/resource/QRCode_ +||http://zuoyebang.cc/zyb_4953cbb8a9a2332469592196c056a906.jpg +||http://yuedu.baidu.com/hybrid/wkrec/search? +||http://zhan.com^*/middle_ad_modal.js +||http://dealmoon.com/build/js/www/home/activity-pop/index. +||http://zglww.net/jsnew/pfkf.js +||http://ld0766.com/index.php?m=call&id=10 +||http://sina.com.cn/other/src/app/SFANewVersionPop.js +||http://gtimg.com/finance/js/st/p/cms/ce56e2f3303d17b6.js +||http://gtimg.com/finance/js/st/p/quotpage/maxcard_ +||http://med66.com/lamu/ +||http://51cto.com/edu/blog/*box.js +||http://taisha.org/statics/js/pc2.0/common/form.bottom. +||http://sohu.com/os/text/focus? +||http://autoimg.cn/club/v1Content/images/heycar +||http://china.cn/js/common/daniel_pop/ +||http://chinaacc.com/lamu/*dl- +||http://chinaacc.com/lamu/*piao +||http://zol.com.cn/js/ask/ask.js +||http://xhd.cn/topic/leyu-piaofu/ +||http://zol.com.cn/index.php?c=Api_JumpApi& +||http://jjwxc.net/adsmanage. +||http://sinaimg.cn/tech/zcapp2018/zcapp.js +||http://233.com/js/side.htm +||http://soufunimg.com/homepage/new/*/buttomLayer.js +||http://vuetifyjs.com/notify.json +||http://qhres.com/static/b4f92ac067a4768b/v4/modules/footer.js +||http://daniujiaoyu.com/js/zk +||http://daniuxuexiao.org.cn/js/zk +||http://aoji.cn/static/js/pushadv.js +||http://aoji.cn/static/js/yiliao/ad_common.js +||http://zx123.cn/templates/zx123cs/theme-2015/js/right_xh.js +||http://people.com.cn/rmrb/tplimg/new.js +||http://appledaily.hk/banners/subscription/ +||http://bilibili.com/x/web-interface/archive/special/recommend?aid= +||http://lancdn.com/tmp3/GG_Notice.png +||http://chinaacc.com/upload/*zhongjizhicheng +||http://zhangzishi.cc/cdn-cgi/apps/ +||http://macx.cn/js/blockadblock.js +||http://bestqikan.com/static/js/swt.js +||http://book118.com/Public/book118/js/side-customer/customer.js +||http://51cto.com/js/activity_pop.js +||http://kuakao.com/index.php?m=content&c=index&a=show_ad +||http://qinxue100.com/qinxue/pc/js/add_js.js +||http://hujiang.com/ciku/getDetailSoftText/ +||http://hujiang.com/ciku/getLesson +||http://zbcdn.net/__uvjgyw/slb.default.js +||http://sina.com.cn/other/src/sfc_app_sidebar.js +||http://sinaimg.cn/cj/finance/forex/res/searchCallup.js +||http://tsdm.live/weibo.html +||http://126.net^*analysis +||http://zol.com.cn/pvn/ +||http://map.baidu.com^$domain=laosiji.com +||http://laosiji.com/static/js/lib/od_statistics.js +||http://100bt.com/dc?Url +||http://113.105.248.169^ +||http://115img.com/static/115tj.js +||http://123cha.com/counter.js +||http://218.30.15.193/phpstat/count/ +||http://28.com/count.js +||http://28.com/countnew.js +||http://39.net/js/wt.js +||http://51.la^$third-party +||http://5173.com/__tra.gif? +||http://51la.net^$third-party +||http://58cdn.com.cn/resource/xxzl/xxfw/ +||http://8cnd.com^ +||http://91160.com/nykj/f=static/v4/common/tj.js +||http://a-m-s.adnonstop.com^ +||http://a.tbcdn.cn/s/ac.js +||http://a.tbcdn.cn/s/atp.js +||http://a.tbcdn.cn/s/tb-tracer-min.js +||http://abab.com/pv.js +||http://acookie.*.gif? +||http://agrantsem.com/js/ag.js +||http://analy.tuniu.cn^ +||http://analyse.weather.com.cn^ +||http://analysis.chinaiiss.com^ +||http://analytics-union.sandai.net^ +||http://analytics-union.xunlei.com^ +||http://analytics.21cn.com^ +||http://analytics.oneplus.cn^ +||http://analytics.techweb.com.cn^ +||http://analytics.tv189.cn^ +||http://api.cupid.qiyi.com/etx? +||http://api.cupid.qiyi.com/track2 +||http://apistat.gao7.com^ +||http://apistat.wasu.cn^ +||http://apple.www.letv.com/env/? +||http://ark.letv.com/t? +||http://atpanel.com^$image +||http://autohome.com.cn/risk_fp_log? +||http://autoimg.cn/bi/mda/ahas_body. +||http://baidu.com/4.gif? +||http://baidu.com/smalllog/ +||http://baidu.com^*/w.gif? +||http://bc.qunar.com^ +||http://bdstatic.eastmoney.com^ +||http://bendibao.com/js/count.js +||http://bitauto.com/bglog.gif? +||http://bshare.cn/bshare_view?Callback= +||http://bt.ktxp.com/iframe/statistics.js +||http://btdb.in/beacon.html +||http://btime.com/api/weblog? +||http://bytecdn.cn/ta/resource/v0/analytics.js +||http://ca.cbsi.com.cn/rpv? +||http://carstat.bitauto.com^ +||http://cbjg.cqnews.net^ +||http://cbsi.com.cn/js/mlt.js +||http://ccoo.cn/mystat.asp +||http://cdnlog.zhenai.com^ +||http://cheshi-img.com/js/pv.min.js +||http://chinatimes.com/analytics/ +||http://chouti.com/js/tingyun-rum.js +||http://cig.com.cn^$third-party +||http://cjyun.org/assets/js/analytics.js +||http://click.tianyaui.com^ +||http://cnfol.com/Count.html +||http://cnmo.com/pv.js +||http://cnpc.infzm.com^ +||http://comm100.cn/livechatserver/chatbutton.*&res= +||http://count.candou.com^ +||http://count.enet.com.cn^ +||http://count.iyaxin.com^ +||http://count.pcauto.com.cn^ +||http://count.pcgames.com.cn^ +||http://counter.pcauto.com.cn^ +||http://counter.tianjimedia.com^ +||http://countpage.sznews.com^ +||http://cpms.now.com^ +||http://damai.cn/phpstat/ +||http://data.xici.net^ +||http://dcs.conac.cn/js/ +||http://dfcfw.com/libs/js/counter.js +||http://dianping.com/hippo.gif? +||http://dig.qbao.com^ +||http://doc88.com^*/count.js +||http://duba.com/static/v2/js/min.pop.js +||http://dw.xcar.com.cn^*.gif? +||http://ea3w.com/pv.js +||http://eastmoney.com/analysis/ +||http://ejieban.com^ +||http://fcm.baidu.com^ +||http://fengniao.com*/pv.js +||http://fjsen.com:81/mysql/count/ +||http://frame.enet.com.cn/a.php +||http://ftchinese.com/index.php/jsapi/analytics +||http://ftchinese.com/index.php/jsapi/ga +||http://ftchinese.com/js/log.js +||http://ftchinese.com/log/analytics.js +||http://fx678.com/htcount/count.js +||http://g.yccdn.com^ +||http://gridsumdissector.cn/gs.gif? +||http://guahao.cn/blank.gif? +||http://hao123img.com/res/js/track.js +||http://haostat.qihoo.com^ +||http://hc360.com/js/module/common/logrecordservice. +||http://hd.sohu.com.cn^$object-subrequest +||http://hdslb.com/js/bfd.js +||http://hexun.com/js/att_count.js +||http://hiido.com^$third-party +||http://hm.baidu.com/mkt.js +||http://hupu.com/_dace.gif? +||http://house365.com/js/analyze.js +||http://iciba.com/web/static/scripts/kds2_record.js +||http://icon.zol-img.com.cn/mainpage/js/click.js +||http://ifengimg.com^*/sta_collection +||http://img.kuai.xunlei.com/js/statistics.js +||http://imgstat.baidu.com^ +||http://imp.zol.com.cn^ +||http://ipinyou.com^$third-party +||http://it168.com/pv.js +||http://itc.cn/cache/lib/v2/odvmonitor/ +||http://itc.cn/hdpv.js +||http://itc.cn/pv/ +||http://itc.cn^*/tracker.js +||http://itsmore.cn^$third-party +||http://js.passport.qihucdn.com/11.0.1.js +||http://kaipuyun.cn/count/ +||http://kkpgv2.xunlei.com^ +||http://l.ykimg.com^ +||http://ll.hudong.com^ +||http://log.daqi.com^ +||http://log.mtime.cn^ +||http://log.music.baidu.com^ +||http://log.vdisk.cn^ +||http://log.zongheng.com^ +||http://log2.mtime.cn^ +||http://lotour.net/analytics/statsv2.js +||http://mafengwo.cn/uva/i.gif? +||http://mixer.sina.cn^ +||http://mlog.aipai.com^ +||http://msg.ettoday.net^ +||http://msg.video.qiyi.com^ +||http://msn.ynet.com/c/tj_comm.js +||http://news.cn/pc-log? +||http://newspage.xilu.com/model/visitlog.js +||http://nmgnews.com.cn/sys/online_calc.js +||http://nsclick.baidu.com^ +||http://olpv.onlylady.com^ +||http://optaim.com^$third-party +||http://other.v.duowan.com^ +||http://p0y.cn^ +||http://p2p.v.yyclouds.com/crossdomain.xml +||http://pconline.com.cn/count.php? +||http://pcpop.com/pv/pv.js +||http://playstats.v.duowan.com^ +||http://push.zhanzhang.baidu.com/push.js +||http://pv.ltn.com.tw^ +||http://pv.zhiding.cn^ +||http://pvtest.zol.com.cn^ +||http://qdp.qidian.com^ +||http://qhimg.com/clk.gif? +||http://qhimg.com/js/iwt.js +||http://qunar.com/js/ga.min.js +||http://qunar.com/render/ga.jsp? +||http://qunar.com/render/googlesem.jsp +||http://qyer.com^*/base_beacon_ga.js +||http://qzwb.com/phpstat/ +||http://record.kuai.xunlei.com^ +||http://reportlog.dftoutiao.com^ +||http://runsky.com/phpstat/ +||http://s-msn.com/portal/js/vendor/manto/ +||http://s.btime.com^ +||http://s.so.360.cn^ +||http://s.union.360.cn^ +||http://sina.cn*/view? +||http://sogou.com/cl.gif? +||http://sohu.com/mail/pv/ +||http://stat.2u.com.cn/ol_2u.js +||http://stat.baike.com^ +||http://stat.cnmo.com^ +||http://stat.cqwb.com.cn^ +||http://stat.cutv.com^ +||http://stat.download.xunlei.com^ +||http://stat.ea3w.com^ +||http://stat.game.yy.com^ +||http://stat.hebnews.cn^ +||http://stat.hkwb.net^ +||http://stat.house365.com^ +||http://stat.ijinshan.com^ +||http://stat.img-space.com^ +||http://stat.mql5.com^ +||http://stat.pchome.net^ +||http://stat.timedg.com^ +||http://stat.ts.cn^ +||http://stat.v.17173.com^ +||http://stat.xgo.com.cn^ +||http://stat.yunfan.com^ +||http://static.gridsumdissector.com^ +||http://static.zongheng.com^*/ad_click.js +||http://static.zongheng.com^*/adClickStat.js +||http://static.zongheng.com^*/logger.min.js +||http://statis1.mama.cn^ +||http://stats.766.com^ +||http://stats.v.duowan.com^ +||http://suning.cn/javascript/sn_da/sa.js +||http://sxrb.com/front/stat/ +||http://ta.trs.cn^$third-party +||http://tingyun.com^$third-party +||http://tj.21ic.com^ +||http://tjj.com^ +||http://tongji.xinmin.cn^ +||http://track.hujiang.com^ +||http://track.uc.cn^ +||http://trends.com.cn/k.js +||http://tw.rd.yahoo.com^$image +||http://uedas.$domain=qdmm.com|qdwenxue.com|qidian.com +||http://uuu9.com/photolog.html +||http://vm.aty.sohu.com^ +||http://wanmei.com/public/js/stat.js +||http://wlxww.com/html/analytics/ +||http://xgo.com.cn/pv.js +||http://xls.go.sohu.com^ +||http://xs8.cn/qreport? +||http://xunlei.com/api/stat/rt/js? +||http://yaolan.com/ylk.mini.js +||http://ynet.com/c/js/manto.min.js +||http://youdao.com/ctlog? +||http://youdao.com/rlog.php +||http://youdao.com/tl? +||http://ysont.cn^ +||http://zdnet.com.cn/js/pv.js +||http://zdw.w8.com.cn/p.ht? +||http://zhulang.com/zlpv.php +||http://zol.com.cn/cgimp/zc.js +||http://beacon.sina.com.cn^ +||http://cnzz.com^$third-party +||http://duba.com/proxy/tj/ +||http://google-analytics.com/analytics.js +||http://hm.baidu.com^$third-party +||http://msg.71.am^ +||http://rs.sinajs.cn^ +||http://s.360.cn^ +||http://sinajs.cn/open/analytics/ +||http://stadig.ifeng.com^ +||http://wrating.com^$third-party +https://ubmcmm.baidustatic.com +https://szxx.com.cn###A0 +https://szxx.com.cn###A1 +https://szxx.com.cn###A2 +https://gpcxw.com###AA2 +https://yahoo.com###ACT_crazy +https://yahoo.com###ACT_takeover +https://yahoo.com###ACT_takeover2 +https://hc360.com,yaolan.com###AD +https://21yq.com,yaolan.com###AD1 +https://itavcn.com###ADE +https://sina.com.cn###AD_Background_Wall_BG +https://sina.com.cn###AD_Background_Wall_BG_Link +https://sina.com.cn###AD_Background_Wall_Banner +https://51cto.com###ADsList +https://esu.moe,esu.wiki###ASSPC +https://i-part.com.tw###AdBanner785 +https://elecfans.com###AdHtmlRight +https://bbs-tw.com###AdImg +https://hboav.com###AdTitle +https://hboav.com###AdTitle + table +https://bookgew.com###AdsT +https://diyifanwen.com###ArtTl +https://zol.com.cn###Article_Top_Banner +https://avmimi.com###ArticlesEx_box +https://gamer.com.tw###BH-ad_banner +https://gamer.com.tw###BH-bigbanner +https://ifeng.com###CA_left +https://ifeng.com###CA_right +https://cnfol.com###CjAdvBt +https://pjtime.com###Couplet_l_big +https://pjtime.com###Couplet_l_small +https://pjtime.com###Couplet_r_big +https://pjtime.com###Couplet_r_small +https://jiaodong.net###FixedLeft +https://jiaodong.net###FixedRight +https://stnn.cc###FloatDIV +https://chinatp.com.cn###FloatL_2 +https://chinatp.com.cn###FloatLa +https://chinatp.com.cn###FloatRb +https://angelweb.cn###G640x60 +https://114la.com,ylmf.com###GameAdv +https://hupu.com###HCFull +https://114la.com,ylmf.com###HDtopBar +https://azofreeware.com,pttjoke.com###HTML3 +https://azofreeware.com###HTML7 +https://zhoushan.cn###Headtop +https://tigtag.com###Home1000x70_A29 +https://tigtag.com###Home280x80_A16 +https://tigtag.com###Home942x70_A1 +https://xd0.com###HtmlMoKua_775790 +https://diyifanwen.com###Hzh1 +https://diyifanwen.com###Hzh2 +https://21ic.com###IC2008Ad +https://rfidworld.com.cn###IOTVote2017Ad +https://fx168.com###ImgText_01 +https://fx168.com###ImgText_02 +https://fx168.com###ImgText_03 +https://gq.com.tw###IndexCover +https://rijutv.com###JU +https://dj97.com###J_A_B +https://duba.com###J_BottomAdBan +https://duba.com###J_BottomAdBan_bg +https://duba.com###J_FloorWave +https://duba.com###J_FloorWrap +https://duba.com###J_S11 +https://2345.com,hao774.com###J_act_plane_hb +https://2345.com###J_acts11_footerfixed +https://xiami.com###J_albumSale +https://2345.com###J_bgSug1st +https://gaokao.com###J_fixed_popbox +https://2345.com###J_go_erweima +https://uc123.com###J_logoLeft +https://huya.com###J_roomGg2 + a +https://2345.com###J_s11_foot +https://2345.com,hao774.com###J_search_bd > div:last-child +https://uc123.com###J_shoppingPush +https://duba.com,uu114.cn###J_sideFooter +https://chem99.com###J_tcode +https://2345.com###J_tip_stopXP +https://jin10.com###J_wdgg_t +https://qzwb.com###Javascript\.RightDiv +https://pconline.com.cn###JdlFixed +https://pconline.com.cn###JrightSideFocus +https://huarenjie.com###LeftAd2 +https://eastmoney.com###ListPage_r_Ad +https://elecfans.com###MiddleLeaderboard +https://yunlaige.com###PAGE_baidu_4 +https://yunlaige.com###PAGE_baidu_5 +https://sogou.com,soso.com###PZL +https://sogou.com,soso.com###PZR +https://airav.cc###Panel_GambleZone +https://airav.cc###Panel_GambleZone + .Hide_For_JP_AND_EN +https://th7.cn###PcPoPmarket +https://aiyuke.com###Playerpad +https://iis7.com###QTGG +https://elecfans.com###Right2 +https://huarenjie.com###RightAd2 +https://airav.cc###Right_Panel > div[style^="margin-"] +https://sina.com.cn###SI_Comment_DA +https://www.sina.com.cn###SI_EDU_AD +https://aishoujizy.com###ShouYe_ShangBu > .HtmlMoKua:first-child +https://xiaokuangyl.com###ShouYe_ShangBu > .themeauthor > table:first-child +https://70bt.cn###ShowAD +https://gushiwen.org###ShowAd +https://upan.cc###ShowDIV +https://soopat.com###SoopatAside +https://ifeng.com###StreamMediaWrap +https://webkaka.com###Table1 +https://shhgg.in###TopTipHolder +https://csdn.net###Topic_Top +https://07073.com###Vsss00 +https://cnzol.com###Wl_Float_Div +https://duote.com###\32 345_ad +https://jisuxz.com###\32 345float +https://morningpost.com.cn###\33 60hot +https://zongheng.com###\36 roomRecommend +https://renrenfabu.com###\39 1banner +https://hao123.com###\5f _wgt_0_1 +https://hao123.com###\5f _wgt_0_13 +https://ofweek.com###\5f ad-2100 +https://hao123.com###__elm_0_4 +https://973.com###a0 +https://admin5.com###a22 +https://mtv-ktv.net###aShow +https://le.com###a_body_11628 +https://yatu.tv###a_d1 +https://le.com###a_title_11628 +https://51dll.com,fulisuo.com,fulisuo1.com,papa1024.com###aa +https://ik123.com###aa960a +https://discuss.com.hk###ab_div_px1 +https://2345.com###abanner +https://hao.360.cn,hao.360.com###activity +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###activity_countdown_head +https://jqgcw.com,srzc.com,vuejs.org###ad +https://ofweek.com###ad-2100 +https://ruten.com.tw###ad-467 +https://itxueyuan.org###ad-beifeng-729-90 +https://duba.com###ad-detail-banner +https://duba.com###ad-dongman +https://titan24.com###ad-index-01 +https://ithome.com.tw###ad-on-top +https://udn.com###ad-pall +https://kiwsy.com.hk###ad-popup-dialog +https://kiwsy.com.hk###ad-popup-dialog-overlay +https://autohome.com.cn###ad-top-1111 +https://dbw.cn###ad-word +https://dayoo.com###ad-xl +https://baike.com###ad-xnsc +https://duba.com###ad-zongyi +https://price.com.hk###ad0 +https://90oo.com,etest8.com,eworldship.com,hntobacco.com,jc001.cn,p9.com.tw,price.com.hk,vipbuluo.com,xinhuanet.com,ylnet.com.cn,zimuzu.tv###ad1 +https://booklink.me,eworldship.com,p9.com.tw,xinhuanet.com,zimuzu.tv###ad2 +https://zimuzu.tv###ad3 +https://efu.com.cn###ad4 +https://price.com.hk###ad5 +https://yuqingcn.cn###ad715x90 +https://hur.cn###ad810_2 +https://hur.cn###ad810_6 +https://vjmedia.com.hk###ad900 +https://dahe.cn###adArea1 +https://baidu.com###adCard +https://yeecloud.com###adFirefox +https://baidu.com###adMainTopLeft +https://baidu.com###adMainTopRight +https://plu.cn###adMask +https://xunyingwang.com###adModalLabel +https://huanqiu.com###adP-Bot-right-float +https://baidu.com###adTitleRight +https://gameapps.hk###adTopClickAreaLeft +https://gameapps.hk###adTopClickAreaRight +https://gameapps.hk###adTopClickAreaTop +https://sogou.com###adWindow +https://sina.com.cn###ad_blk_fixed +https://windows7en.com###ad_btm_down +https://gdmm.com###ad_cover +https://udn.com###ad_curtain +https://gpcxw.com###ad_dl +https://gpcxw.com###ad_dl2 +https://house.jschina.com.cn###ad_dl_left +https://house.jschina.com.cn###ad_dl_right +https://88448.com###ad_forum_banner +https://btime.com###ad_full_button_placehoder +https://autohome.com.cn###ad_ic_video +https://lqz.cn###ad_index +https://babyhome.com.tw###ad_m_peacock +https://udn.com###ad_mag +https://100ksw.com###ad_move_sg +https://zysj.com.cn###ad_pc_bottom +https://csdn.net,itboth.com,iteye.com,itkeyword.com###ad_pop +https://c114.com.cn###ad_r1 +https://lzep.cn###ad_side_l +https://lzep.cn###ad_side_r +https://bioon.com###ad_tb +https://taoguba.com.cn###ad_tgb_list +https://cctime.com###ad_three +https://sina.com.cn###ad_tl_01 +https://gaokao.com###ad_top_gkw +https://megatime.com.tw###ad_type_9 +https://baidu.com###ad_xbox_1 +https://baidu.com###ad_xbox_2 +https://baidu.com###ad_xbox_3 +https://localking.com.tw###adbannerurl +https://yxdown.com###adbg +https://tbtdg.com###adblockWarning +https://lzep.cn###add +https://chongbuluo.com###add + a +https://fhm.com.tw###add-box +https://speedtest.cn###add_r1 +https://speedtest.cn###add_r2 +https://17yy.com###addiv +https://3322.cc###addr +https://rj.baidu.com###ader +https://eol.cn###adfloat_l +https://eol.cn###adfloat_r +https://jia360.com###adl +https://172cat.com###adload +https://vip-free.com###adpic +https://jia360.com###adr +https://ahtv.cn,frdic.com,huasing.net,it168.com,qinbing.cn###ads +https://nownews.com###ads-footer-bar +https://disp.cc###ads_page_b +https://disp.cc###ads_page_r +https://yes-news.com###adsc3 +https://yes-news.com###adsc4 +https://image.baidu.com###adsearch +https://dahe.cn###adsg +https://ishuati.com###adsh +https://whsir.com###adswidget1-quick-adsense-2 +https://weather.com.cn###adtop_r +https://btspreadcn.com###adultwarningmask +https://dm530.net,it168.com###adv +https://chinabyte.com###adv-button +https://js0573.com###adv1 +https://js0573.com###adv2 +https://wenku8.net###adv300 +https://firefoxchina.cn###advBlock +https://nnfcxx.com###adv_3 +https://shurua.com###advbox +https://104.com.tw###aidma-job +https://104.com.tw###aidma_128 +https://104.com.tw###aidma_588 +https://ali213.net###ali-js-4 +https://shenchuang.com###all +https://aizhan.com###all_text_content +https://liisex.com###apDiv22 +https://sogou.com###appNewsBtn +https://sogou.com###appRedPackageAd +https://dmzj.com###app_home_ad +https://dmzj.com###app_manhua +https://hao123.com###append +https://txahz.com###archy_ad2 +https://huanqiu.com###artHqsc +https://wx.sina.com.cn###artibody > .article-video +https://zhuankebar.com###article-cnt > a +https://blog.csdn.net###article_content > link + a +https://p2peye.com###article_content a[ref="nofollow"] +https://doyo.cn###article_top_down +https://tingvoa.com###articletopimg +https://360doc.cn###artnewdiv +https://csdn.net###asideCustom36733263 +https://csdn.net###asideCustom65392991 +https://baidu.com###asideLeft +https://baidu.com###asideRight +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###attention-game-wraper_dialog +https://vjmedia.com.hk###author-spotlight + .clear + div +https://androiddevtools.cn###auto-scroll-ad-box +https://ck101.com###av_a +https://bing.com###b_results > li[style*="padding-bottom: 8px;"][style*="235, 235, 235"] +https://520cc.me###back-to-top > a[href^="http"] +https://hao.360.cn###background.festival +https://china.com.cn###baidu +https://ifeng.com###baidualading +https://52pk.com###baidutop +https://52pk.com###baidutop2 +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###baiduweishiDown +https://newsmth.net###ban_ner +https://ufanw.com###banne +https://cwyuni.tw###banner > h2 +https://iwan.baidu.com###banner-box +https://iwan.baidu.com###banner-info +https://qidian.com###banner-two +https://360.cn###banner0 +https://ballbar.cc,qidian.com###banner1 +https://360.cn,ballbar.cc,muchong.com###banner2 +https://ksbbs.com,kshot.com###banner2_top +https://qidian.com###banner3 +https://360.cn###banner_2 +https://99tianji.com###banner_gg +https://ksbbs.com,kshot.com###banner_top +https://uestc.edu.cn###bar +https://c114.com.cn###barrage_ad +https://c114.com.cn###barrage_bg +https://hao.rising.cn###bbTao +https://zimuzu.tv###bbs_list_ad +https://muchong.com###bbsmain > div[style="padding:10px 0;"] > table +https://cntv.cn###bbspop +https://gamme.com.tw###bd +https://acfun.cn###bd_ad1 +https://makaidong.com###bdcs +https://sogou.com###bdfs0 +https://baidu.com###bdyx_float_rb +https://qxfun.com###beautiful-things +https://1kkk.com,bukade.com,dm5.com,dm5.hk,sfacg.com###beitou +https://eeyy.com###beitou_box +https://dataguru.cn###bg +https://91danji.com###bg_ad +https://kyofun.com###bg_ad_left +https://kyofun.com###bg_ad_right +https://netbardh.com###bg_left +https://52pk.com,hanhande.com###bg_link +https://netbardh.com###bg_right +https://eol.cn###big-ad-img +https://timedg.com###bigAdv +https://gdzjdaily.com.cn###bigblockAd +https://bitauto.com###bitAd_background +https://bitauto.com###bitAd_floatFlash +https://dilidili.wang###bkm +https://e-learn.cn###block-changyanpinglunxia8 +https://e-learn.cn###block-layui-ele +https://e-learn.cn###block-tengxunyunshuang11 +https://zaobao.com###block-views-zb2016-freefrom-block-1 +https://e-learn.cn###block-wenzilianjie +https://e-learn.cn###block-youxiajiao +https://gmgard.com,hggard.com###blog > div[style="overflow:hidden"] +https://blog.163.com###blog-163-com-toptips +https://so.com###bnbtm-banner +https://159i.com###body > table[width="100%"] +https://microcontrol.cn###body > table[width="758"] +https://nick20.com###body_page_sharer ~ table[width="100%"] +https://tom.com###body_right_banner +https://esdict.cn,eudic.net,frdic.com,godic.net###bodycontent > style + div[id] +https://airav.cc###bottom-adv +https://hiwenku.com###bottom-advert +https://recruit.com.hk###bottomBar +https://10086.cn###bottomBigBanner +https://wapwenku.baidu.com,wk.baidu.com###bottomFixed +https://auto.sina.com.cn###bottomInquryBar +https://masok.cn###bottomLayer +https://hao.360.com###bottom_hotsite +https://badmintoncn.com###bottomad_big +https://kdhome.net###bottomadv +https://vzhuan.cn###box +https://50sen.com###box-ads +https://mcdulll.com,mcdulll.pixnet.net###box1290930 +https://mcdulll.com,mcdulll.pixnet.net###box1989082 +https://cwyuni.tw###box34614 > [class^="box-"] +https://lohas.pixnet.net###box785805 +https://finance.ifeng.com###box_img +https://zhan.com###box_tips +https://hefei.cc###bp_ad +https://sogou.com###browser_ad +https://orsoon.com###btn-down-one +https://wap.eastmoney.com###bulletin_board > ul[id] +https://pchome.net###bzhref +https://fuli.us###callboard +https://ck101.com###canvas-section +https://cangku.in,galacg.me,moneyweekly.com.tw###carousel-example-generic +https://bitauto.com###carshow +https://bbs-mychat.com###cate_top > tr > .f_one +https://cnbeta.com###cb_share > .fl +https://sina.com.tw###cboxOverlay +https://eworldship.com###ccrhshow +https://dapenti.com###center > div[align="center"][target="_blank"] +https://huarenjie.com###cftoutiao +https://hao.rising.cn###change +https://i-part.com.tw###chatroomFrame + div[style="text-align: center;padding-top: 10px"] +https://fulishequ.com###china_ads_div405 +https://cqfishing.net,gpshk.cc###chs_bannerArea +https://gz0668.com###closexguide +https://uuu9.com###cm1337 +https://baidu.com###cms-company +https://baidu.com###cms-scroll +https://image.baidu.com###cmsimage +https://chinaqking.com###cnt-ad +https://2345.com###cnxh +https://sina.com.tw###colorbox +https://haianw.com###comiis_haianw01 +https://haianw.com###comiis_haianw13 +https://haianw.com###comiis_haianw14 +https://chcj.com###comiis_sfcs00 +https://jrj.com.cn###comment > a:first-child +https://fuli.us,tianshif.com###comment-ad +https://elecfans.com###company-ad +https://ithome.com###con > div[style="text-align:center"] +https://apk.tw###confirmOverla +https://gate.baidu.com,m.baidu.com###container +https://gg163.net###container > table[width="960"] +https://jb51.net###contbot +https://biquge001.com,fuliba.net###content > a +https://fuliba.net###content > div:first-child > a:first-child:last-child +https://go-gddq.com###content > div[style="float: Right;"] +https://fuliba.net###content > ul[style="list-style-type: none;"] +https://yes-news.com###content-728 +https://yes-news.com###content-728-top +https://yes-news.com###content-ads-right +https://jdyou.com###contentSlide +https://udn.com###content_body_banner +https://qihoo.com###content_bottom_gg +https://qihoo.com###content_bottom_left_gg +https://aa25.cn###content_head +https://jpwind.com###content_right_ad2 +https://aa25.cn,kafan.cn###content_top +https://qihoo.com###content_top_gg +https://mbd.baidu.com###content_wrapper + div + .default-container +https://jb51.net###contsec +https://0597kk.com###cool_fixed +https://2345.com###corner-flash +https://2345.com,hao774.com###corner_a +https://airav.cc###corner_cf +https://2345.com,hao774.com###corner_div +https://qihoo.com###countdown1111 +https://sg169.com###coupleft +https://baidu.com,danyang.com###couplet-left +https://baidu.com,danyang.com###couplet-right +https://youxi.baidu.com###coupletBanner +https://sg169.com###couprigth +https://eepw.com.cn###coverDiv +https://1688.com###cpm-ad +https://1688.com###cpm-ad-2 +https://idanmu.at###cpv +https://nownews.com###crazy-video +https://yahoo.com###crazyAD +https://muchong.com###creditegg +https://ipcfun.com###crumb_r +https://wpsoso.com###cse-search-box > p +https://wjx.cn###ctl01_ContentPlaceHolder1_divProMsg +https://fzlimg.com###ctopad +https://fzlimg.com###ctopadtop +https://free.com.tw###custom_html-11 +https://hexieshe.cn###custom_html-2 +https://wanghualang.com###cx_tag_cloud-2 ~ aside[id^="php_text-"] +https://makaidong.com###cyWallsplugin +https://eworldship.com###d1 +https://eworldship.com###d2 +https://cool18.com###d_right_ad +https://1010jiajiao.com###daan_recommend + .xiti +https://hao.360.cn###daily-hotword +https://6789.com,hao.360.cn,hao.360.com###daily-hotwords +https://iask.sina.com.cn###daily_topic_flnr +https://mydrivers.com###dangbei_down +https://kpw6.com###daojs +https://fzdao.cn###datu +https://ytbbs.com###dd1 +https://4399.com###defaultbglink +https://sogou.com###detailRightAd +https://stockstar.com###dhwzl +https://141hongkong.com###dialog +https://chinanews.com###dingtong +https://3boys2girls.com###displayadb1 +https://3boys2girls.com###displayadbu3 +https://szhk.com###div01 +https://3boys2girls.com###div3_display3 +https://wendangwang.com###divActivity +https://findprice.com.tw###divBestBuy +https://76xh.com###divFendDuo +https://splaybow.com###divPrevious:last-child +https://rfidworld.com.cn###divTopContainer +https://nmgnews.com.cn###div_ad4 +https://webkaka.com###div_bottomad_m +https://twpkinfo.com###div_close_cf +https://3boys2girls.com###div_display +https://eeyy.cc###div_dn +https://heiguang.com###div_heiguang_ad3 +https://heiguang.com###div_heiguang_ad4 +https://chem99.com###div_main_ta +https://ref.so###div_midleft +https://ck101.com,pchome.com.tw###div_superbar_swf +https://360doc.com###divaboveReflectionAd1 +https://360doc.com###divaboveReflectionAd2 +https://360doc.com###divunderZcommondAd +https://360doc.com###divyoulikead +https://0562.cc,114shouji.com,1xlala.com,528500.com,52jscn.com,5378cc.com,5imx.com,99nets.me,bansha.com,bbs.52life.cc,chcj.com,chcj.net,cm868.com,cnyw.net,cqfishing.net,discuzlab.com,hh010.com,i3zh.com,im286.net,kugz.com,ld0766.com,luanren.com,mahoupao.com,qilanxiaozhu.net,qinzhou8.com,sh419.net,suizhoushi.com,txahz.com,wishct.com,xsool.com,ybvv.com,ytshe.com###diy1 +https://d7w.net###diy10 +https://im286.net###diy110 +https://cbber.com###diy2 +https://chiphell.com###diy2 + div +https://gpshk.cc,oneplusbbs.com,wstx.com,xiaot.com###diy4 +https://cbber.com,qilanxiaozhu.net,xiaot.com###diy_chart +https://chinafix.com###diy_col_1-3 +https://5imx.com###diy_mxad02 +https://5imx.com###diy_mxad03 +https://5imx.com###diy_mxad04 +https://5imx.com###diy_mxad06 +https://5imx.com###diy_mxnewsad01 +https://airav.cc###diy_right +https://0517w.com,lysq.com###diyad +https://cnpingpang.com###diycity1103 +https://storyren.com###diyfastposttop +https://im286.net###diyflash +https://qbaobei.com###diyforumdisplaybottom +https://0517w.com,1xlala.com,365kl.net,3qled.com,52ch.net,bbs.qbaobei.com,chcj.net,chinafix.com,cnyw.net,gz0668.com,mahoupao.com,mcncc.com,qilindao.com,xsool.com###diynavtop +https://51nb.com###diynavtop + .t_rown[cellpadding="5"] +https://bbs.pcbeta.com###diynavtop + style + div[class] +https://yshw1.com###diynews_ad1 +https://lahoo.ca###diyrighttop +https://114la.com###dlAD1 +https://114la.com###dlAD2 +https://ebiotrade.com###dlBoxs +https://docin.com###docindex_ad +https://udn.com###doctop +https://niutuku.com###downAD1 +https://qiannao.com###downTb + div +https://sm.cn###download-uc +https://sm.cn###download-uc-v2 +https://howfile.com###downloadtable + div > table[style="margin-top:5px"] +https://nczsks.com###downyxjs +https://langxi.org###drk_ledtd +https://chinanews.com###dt_advert +https://ptbus.com,weather.com.cn###duilian +https://my0511.com###duilianleftdiv +https://my0511.com###duilianrightdiv +https://gongkong.com###dull_left +https://gongkong.com###dull_right +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###duoku_servers_list +https://chongbuluo.com###dzrid > .frame:nth-child(n+2) +https://so.com###e_idea_left +https://so.com###e_idea_pp +https://so.com###e_idea_wenda_detail_guess_new +https://so.com###e_idea_wenda_leftBox +https://easou.com###ec-results-c +https://baidu.com###ec_im_container +https://hao123.com###ecom +https://image.baidu.com###ecomContainer +https://hjenglish.com###editor_a4 +https://gcxa.cn###edu_ad63 +https://letv.com###egg +https://21cn.com###embed_hzh_div +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###encourage_entry +https://hc360.com###endAccessories1 +https://hc360.com###endAdBanner +https://chinabidding.cn,chinabidding.com.cn###erweima_l +https://chinabidding.cn,chinabidding.com.cn###erweima_r +https://anhuinews.com###ewm +https://maomaomom.com###execphp-15 +https://maomaomom.com###execphp-21 +https://maomaomom.com###execphp-4 +https://www.pixnet.net###extradiv2 +https://www.pixnet.net###extradiv5 +https://apk.tw###favatarRight +https://happy-yblog.blogspot.com,happy-yblog.blogspot.hk,happy-yblog.blogspot.tw###fbox-background +https://baidu.com###fc-left +https://baidu.com###fengchao-dialog +https://baidu.com###fengchaoad +https://maxthon.cn###festival-fix-bottom +https://360.cn###festival-logoskin +https://maxthon.cn###festival-rain-wrapper +https://hao.360.cn###festival-theme > .left-entry +https://hao.360.cn###festival-theme > .right-entry-wrap +https://360.cn###festival_baijian +https://360.cn###festival_balloon +https://hao.360.cn###festival_fly +https://hao.360.cn###festival_fly + .couten +https://6665.com###fgdiy01 +https://6665.com###fgdiy09 +https://elecfans.com###fix-tdkad +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###fixed_bar +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###fixed_daoliu +https://duba.com###fixedad +https://qqread.com###flash310ad +https://haha.mx###float-left-ad +https://speedpan.com###float-window +https://fun48.com###float2016 +https://guagua.cn###floatRoomDiv +https://zmz2019.com###float_ad +https://eeyy.com###float_ad0 +https://123du.cc,bokon.net,eol.cn###float_l +https://jnnc.com###float_layer +https://ssnn.net###float_picr +https://123du.cc,bokon.net###float_r +https://28hse.com###floating_left_div +https://brushes8.com###flxgg +https://gamer.com.tw###flyRightBox +https://gamer.com.tw###flySalve +https://juxia.com###fmt +https://apk.tw###focus +https://fulibus.net,wuzuowei.net###focusslide +https://bitauto.com###folieAdNews +https://wdzj.com###footbanner +https://jxedt.com###footer +https://ttzmz.vip###footer > div[style] +https://ettoday.net###for-ec +https://uwants.com###foruminfo + div[align="center"] +https://my0511.com###forumtextad +https://xianliao.me###frame > .xianliao_component +https://wcjbb.com###frame2TVWk2 +https://filmaker.cn###frame2gS3Ea +https://wcjbb.com###frame37boCx +https://yangluo.cn###frame51RcxP +https://tvapk.net###frame5zglZ4 +https://playno1.com###frame8I822E +https://tahua.net###frameJjnBIp +https://dabin69.com###frameOa2lrD +https://ytshe.com###frameUTSzKE +https://yangluo.cn###frameVw7574 +https://gz0668.com###framec32DR1 +https://tvapk.net###framecd6V1M +https://tvapk.net###framelP7piy +https://qhf168.com,qianhua.biz,qianhuaw.com###framelzHoHY +https://wcjbb.com###frameo834m9 +https://aishs.top###frameu9916W_left > .block:nth-child(-n+6) +https://18avhub.com,18avtube.com,avmimi.com,mm-cg.com###friendLink +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###frs-list-game +https://docshelper.net###ft_ad +https://wendangxiazai.com###ft_hb +https://fancai.com,gamemei.com###ft_right_bottom +https://windows7en.com###fu_box_logo +https://cnyes.com###full_ad-popup +https://cnyes.com###full_ad-screen +https://ifeng.com###funBar +https://baidu.com###gamePromo +https://51.com###game_advlayer +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###game_cover_head_wrapper +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###game_forum +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###game_frs_head +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###game_live_list +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###game_live_widget +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###game_rank +https://discuss.com.hk###gamepage_banner +https://downxia.com###gaosu_div0 +https://downcc.com,pc6.com,zdfans.com###gaosuxiazai +https://www.infoq.com###gbanner.gbanner +https://66ys.tv,6vhao.net,dygang.com###gd +https://ruanyifeng.com###gd1 +https://whnews.cn###gd_l +https://whnews.cn###gd_r +https://ant.design###geektime +https://ant.design###geektime-ads +https://dilidili.name,zdzdm.com###gg +https://sdgundam.cn###gg-banner +https://vvshu.com###gg120 +https://5173.com###gg330 +https://5173.com###ggFloat +https://xiazaizhijia.com###gg_1 +https://xiazaizhijia.com###gg_2 +https://xiazaizhijia.com###gg_3 +https://324324.cn###gg_468_60 +https://324324.cn###gg_728_90 +https://yy.com###gg_left +https://yy.com###gg_right +https://7654.com###gg_top +https://shouji56.com###gg_top_banner +https://baidu.com###ggbtm +https://wenku.baidu.com###ggbtm-ads +https://huya.com###ggcomment +https://52pk.com###ggfloat +https://china.com.cn###gggg +https://discuss.com.hk###gid_group_restricted > .gid_group_title +https://danyang.com###global-hd > div[align="center"] +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###global_notice_wrap +https://eprice.com.tw###goldlink +https://rebooo.com###gong +https://acfun.cn###goniudan +https://gameapps.hk###google_side_ad2_top +https://aimazu.com###gotoTop +https://js0573.com###gotopl +https://js0573.com###gotopr +https://cnr.cn###gtop00 +https://creaders.net###guanggao2 +https://gasaq.com###guanggao_left +https://gasaq.com###guanggao_right +https://hao123.com###guesslikesite +https://hao123.com###guesslikesite-block +https://szhk.com###h_banner +https://szhk.com###h_textads +https://hao123.com###hao123-gw11 +https://macd.cn###hbad +https://coolaler.com###hd +https://gdmm.com###hd > .wp > .module +https://hackhw.com,ithome.com###hd_float +https://he-games.com###he_banner_ad +https://he-games.com###he_bottom_ad +https://1ydt.com###head +https://opticsky.cn###head > .tac +https://gaoqing.la###head > a +https://pythontab.com###head-bottom +https://elecfans.com###headJf +https://hao123.com###headJoke +https://tbxt.com###headad2 +https://solidot.org###headads +https://lxty66.com###header + .tac.mb5 +https://33235.net###header > center +https://maxthon.cn###header-float-promote +https://2345.com###header-news +https://hao.360.cn,hao.360.com###header-patch +https://060s.com###header4 +https://bdinfo.net###header_AD +https://hnr.cn###header_banner_list +https://131458.com###header_gg +https://pediy.com###header_right_cell[width="603"] +https://huan.moe###headhead +https://duote.com###hengfu +https://moe-acg.cc###hengfu-widget +https://hexun.com,hexun.com.tw###hexunCouplet01 +https://eepw.com.cn###hiddenLayer +https://gamersky.com###hitix +https://w3cplus.com###home-page-widgets +https://wacowla.com###home-top-narrow +https://bjhockey.org###homeVideoModal +https://ruanyifeng.com###homepage_pos +https://3987.com###hongbao +https://3boys2girls.com###hotbar +https://sogou.com###hotel_vr_details +https://sohu.com###hotpicnew +https://yahoo.com###hp-ad-left +https://yahoo.com###hp-ad-right +https://huanqiu.com###hqbl123 +https://ifeng.com###hslide_sPic_360 +https://ifeng.com###hslide_sPic_baidu +https://narutom.com###hy_float +https://hz66.com###hzhead + .column +https://mingyg.cn###hzw_showmsg +https://mzyz.com###idTransformView2 +https://nownews.com###idle-layer +https://ifeng.com###ifengAehovering_small +https://tingroom.com###ifram_563 +https://hao.360.cn###iguess +https://ck101.com###image_ad_long +https://cnjxol.com,rznews.cn###img +https://nick18.com###img a +https://firstchina.org.cn,pharmnet.com.cn###img1 +https://e0575.com###img2 +https://114la.com,ylmf.com###imgArr +https://image.baidu.com###imgCmsAdPart +https://e10000.cn###imgFloat +https://image.baidu.com###imgid > .fcimgpage +https://54new.com###imgshow +https://ydss.cn###indexBlad +https://baidu.com###index_banner_top +https://zongheng.com###index_game +https://windows7en.com###index_long_first +https://baidu.com###index_right_float +https://baidu.com###index_right_top +https://58.com###infolist > .recycleInfo +https://520cc.cc,jav777.cc###inplayer +https://pchome.net###intel-bar +https://mm-cg.com###ioshowAD +https://xh127.com###isubpi +https://narutom.com###itaTop +https://2345.com###ivy-taobao +https://baidu.com###j-ad-first +https://baidu.com###j-ad-side +https://letv.com###j-adr-playBT +https://letv.com###j-bottomBanner +https://iwan.baidu.com###j-ditu +https://iwan.baidu.com###j-media +https://qidian.com###j-topBgBox +https://qidian.com###j-topHeadBox +https://yaolan.com###j_focus_img +https://tieba.baidu.com###j_light_see_index +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###j_star_bus_before +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###j_ten_years +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###j_worldcup_info_banner +https://ydss.cn###jd_test +https://freehao123.com###jieweigg +https://awaker.cn###jiji + div[style="padding: 20px"] +https://cnbeta.com###job_box +https://aiyuke.com###js-ad-type4 +https://tigtag.com###js-dropdown +https://163.com###js-ep3rdRank +https://so.com###js-mod-fixed-float +https://zhanqi.tv###js-room-flash-banner-panel +https://cnxz.cn###js_focusimg3 +https://image.so.com###js_textlink +https://ifeng.com###js_videopause_container +https://airav.cc###jssor_banner +https://mh160.com###jusha1 +https://xianshuabao.com###justfy_left_banner +https://pcstore.com.tw###keyad-right +https://0597kk.com###kk_content1_left_ad1 +https://0597kk.com###kk_head_ad +https://0597kk.com###kk_oTransContainer2 +https://1m3d.com###klp_adtop +https://sogou.com###kmap_business_title +https://sogou.com###kmap_business_ul +https://csdn.net###kp_box_476 +https://csdn.net###kp_box_58 +https://douni.com###lad_1 +https://douni.com###lad_2 +https://douni.com###lad_3 +https://douni.com###lad_5 +https://csdn.net###layerd +https://hao123.com###layout-guess +https://jobbole.com###leaderboard +https://baidu.com###left-promotion +https://hao.360.cn###left-ria-fixed +https://sdgundam.cn###left-sponsor +https://rising.cn###left50 +https://cs.com.cn,cssqt.com,qinbing.cn,sonimei.cn###leftDiv +https://hexun.com###leftFloat +https://duba.com###leftHot +https://51credit.com###leftLayerDown +https://ccb.com.cn###leftSideAd +https://2345.com###leftSideBar +https://kuai8.com###left_Ad +https://cpd.com.cn###left_bdad +https://hao.360.cn###left_float +https://sina.com.cn###left_focus_ad +https://timeon.cn###leftadv +https://hao123.com###leftbannerv2 +https://wed114.cn###leftdiv +https://ifeng.com###leftdl +https://leagueofmovie.com###leftfixedad +https://fqlook.com###leftfloatad1 +https://www.wenxuecity.com###leftside +https://hao123.com###lefttip-container +https://dilidili.name,dilidili.wang###lgg +https://sdgundam.cn###link-roll ~ .box-set-2 +https://cwyuni.tw###links-row-1 > div[id^="box"]:not(#box32499):not(#box1026387):not(#box34614) +https://51cto.com###list4 +https://uimaker.com###listbaidu +https://90bifen.com###live > table[cellspacing="0"][cellpadding="0"] +https://autohome.com.cn###live_rec +https://500.com###live_top_ad +https://bukade.com###loadimg +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###loan_ad_mod_a +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###local_pb_top +https://blog.163.com###loftertextlinkad +https://elecfans.com###login-tip +https://ly6080.com###loginInfo > a +https://djwma.com###logo +https://xuehuile.com###logoBanner +https://eepw.com.cn###logoSearchNews + .marb10 +https://histock.tw###logo_21_ad_768x901_pnlAD1 +https://letv.com###logo_activity +https://ebc.net.tw###lotteryfnc +https://nlc.gov.cn###lovexin12xx +https://rising.cn###lowerrightAd +https://my0511.com###lphybbschklogdiv +https://antpedia.com###luxury_car +https://dilidili.wang###m-box +https://playno1.com###m12 +https://playno1.com###m2 +https://playno1.com###m7 +https://2345.com###m_banner +https://2345.com###m_banner_2 +https://chacuo.net###mailtooltipss +https://g-years.com,ghoffice.com,gpsuu.com,mydigit.cn###main > .textMes +https://e0575.cn###main > div:first-child +https://qiannao.com###main > div[style="padding-left:20px;margin-top:10px;"]:first-child +https://ksbbs.com###main > div[style^="height:65px"] +https://secretmine.net###main-content > br +https://secretmine.net###main-content > center +https://jia360.com###mainADswitch +https://hkgolden.com###mainTopicTable > tbody > tr:nth-child(3):not([id]) +https://hkgolden.com###mainTopicTable > tbody > tr[id] + tr:not([id]) +https://mail.pchome.com.tw###main_top_frame +https://yimuhe.com###maincontent3 > div[style^="height"] +https://map.baidu.com###mapBanner +https://wenxuecity.com###marquee +https://xmfish.com###marry_laping +https://yaolan.com###maryAd +https://muchong.com###mask +https://gzmama.com###mdvtips +https://l114la.com###media +https://hinet.net###media_ad_popup_overlay +https://hexieshe.cn###media_image-2 +https://hexieshe.cn###media_image-3 +https://fuliba.net###menu-nav > .menu-item:nth-child(n+4):not(:last-child) +https://xiuren.org###menur +https://tv.sohu.com###miaozhenad +https://download.enet.com.cn###middle_new > .font2 +https://emu999.net,webjx.com###middleimg +https://m.hao123.com###midline +https://hao123.com###mingzhanresource +https://hk.yahoo.com###mntl1 +https://jspoo.com###module2748 +https://so.com###mohe-etao_shangye +https://so.com###mohe-gouwu > .g-shadow +https://so.com###mohe-m-smzdm_haojia +https://so.com###mohe-medicine_sy > .cont +https://so.com###mohe-right_windows_ads +https://wenxuecity.com###morehealth-banner-1 +https://nick18.com,niko18.com###mov > .content +https://gd163.cn,itavcn.com,jmnews.com.cn,xt700.com###msg_win +https://yahoo.com###my-adsHPSPON +https://yahoo.com###my-adsMBAR +https://pianyuan.net###myModal +https://qqjia.com###myadsL +https://xiaoz.me###mygg +https://javjunkies.com###naked-ad +https://narutom.com###naruto_desk +https://28188.com,28188.net,yxad.com###nav +https://ccav1.com###nav-menu > ul > .menu-item > a[href^="http"]:not([href*="yigujin."]) +https://tgbus.com###neck_970 +https://40407.com###nei_fmt +https://elecfans.com###new-adsm-berry +https://cnpingpang.com###new-flash +https://hc360.com###newAppBox +https://hc360.com###newAppBox1 +https://cam4.tw###newTippingViewer + div[data-ab] +https://elecfans.com###newTopAdArea +https://ishuaji.cn###new_banner +https://dilidili.wang###newapp2018 +https://yaolan.com###newfix-dsp +https://pigai.org###newnotice +https://chinaqking.com###newsAD +https://hexun.com###newsPopWin +https://chinanews.com.cn###news_top_advert +https://live.win007.com###notify > a[target="_blank"] +https://ssnn.net###nrk_gg +https://fx168.com###oilTopAd +https://duba.com###one-mid +https://duba.com###oneTip +https://duba.com###oneone +https://image.baidu.com###only-lady-sec +https://xiaohx.org###open +https://lgmi.com###openwindows0 +https://samsung.com###operationBanner +https://ifeng.com###optimusPrimeContentId +https://ifeng.com###optimusPrimeContentId_left +https://jiyingdm.com###otherWindowBox +https://ttzmz.vip###otherad +https://zimuzu.tv###output > li > a[href^="http"]:not([href*="resource/"]) +https://zimuzu.tv###output > li > a[href^="http"]:not([href*="resource/"]) + h2 +https://zmz2019.com###output > li > a[href^="http://www.zmz2019.com/public/focusurl/"] +https://zmz2019.com###output > li > a[href^="http://www.zmz2019.com/public/focusurl/"] + h2 +https://lalulalu.com###overture-side-bar-ads +https://3boys2girls.com###overture_ads_long +https://lalulalu.com###overture_main_banner +https://manhua.weibo.com###p-nav-fix + .p-area.w980 +https://image.baidu.com###pageLayoutTipWindow +https://xizi.com###pageRight-loop +https://rising.cn###pageflip +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###pagelet_encourage-appforum\/pagelet\/my_app +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###pagelet_encourage-tbguess\/pagelet\/sidebar +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###pagelet_frs-aside\/pagelet\/ad +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###pagelet_frs-header\/pagelet\/head_content_middle > div[class]:not([class*="_"]):first-child +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###pagelet_search\/pagelet\/search_ad +https://whnews.cn###panel +https://xdowns.com###part_1 +https://hifidiy.net###part_left2 +https://hifidiy.net###part_right_gg7 +https://18avhub.com,18avtube.com,mm-cg.com###partner +https://vuetifyjs.com###patrons +https://hefei.cc###pb_sm_l +https://bdimg.com,tieba.baidu.com,tieba.com,wapp.baidu.com###pblist > li[class]:not(.j_post_list_item) +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###pc2client +https://pchome.net###pchome_970_90_a +https://kaixindy.com###pege_ad1 +https://tsdm.live###pgt:first-child + div > a +https://ifeng.com###picAdposition +https://china.cn###pic_loop +https://muchong.com###pid1 > div > a[class] +https://sina.com.cn###pip_taobao +https://pixnet.net###pixblogad +https://pixnet.net###pixblogad-banner2 +https://pjtime.com###pjtime_full +https://blog.sina.cn###pl-ad-after-comments +https://blog.sina.cn###pl-adtop-bar +https://blog.sina.cn###pl-blog-artad +https://blog.sina.cn###pl-blog-tbyy +https://blog.sina.cn###pl-float-bar +https://weibo.com###pl_common_ali +https://focustimeshk.com###placeholder +https://hao.360.cn,hao.360.com###plane > .plane-hd +https://hao.360.cn,hao.360.com###plane-ria +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###plat_order_head +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###plat_recom_carousel > .activity_head +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###plat_recom_carousel > .tbui_slideshow_list +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###platform_left_float +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###platform_spread_video +https://zdqx.com###play-gif +https://tingroom.com###play_ggr +https://7k7k.com###player-ad +https://jyacht.com###playergg +https://yxingqiu.com###playertipian +https://image.baidu.com###plz-albums +https://image.baidu.com###plz-head-banner +https://gdzjdaily.com.cn###politicTopAd +https://ahgame.com,china.com.cn,netbardh.com,pangzi.ca###pop +https://game2.cn###pop-flash +https://1688.com.au###pop-up +https://eepw.com.cn###popBox +https://dataguru.cn###popDiv +https://dilidili.wang###popUp +https://jdyou.com###popWrap +https://ebiotrade.com###pop_banner1 +https://xclient.info###pop_business +https://cnplugins.com###pop_div +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###pop_frame +https://hinet.net###pop_media_ad +https://up01.cc###popad +https://2dfan.com###popadv-container +https://univisa.com.cn###popup +https://eprice.com.tw###popup-ad-overlay +https://tom.com###popupDivgame +https://ck101.com###popupGameAd +https://5173.com###popupRight +https://baixing.com###port-info +https://ld0766.com###portal_ad3 +https://x3cn.com###portal_block_12045 +https://ichunqiu.com###portal_block_157 +https://fuyang.net###portal_block_474 +https://fuyang.net###portal_block_502 +https://zhaiiker.com###post-single + .pd10.mar10-t.box +https://51cto.com###postform + a[style] +https://sosg.net###postlist + .cc +https://apk.tw###postlist > div:nth-last-child(2):not([id]) +https://wenku.baidu.com###ppt-bottom-ads +https://9le8.com###program_play_right +https://oschina.net###project_ad_banner +https://firefoxchina.cn###promo +https://firefox.com.cn,firefoxchina.cn###promote-top-list +https://sina.cn###promotionCover +https://tmsf.com###property_listf +https://bbs.pcbeta.com###pt + div[style] > div[style^="clear:both;"] +https://xiazaizhijia.com###public_right_mid_ad +https://bestopview.com###pubtextnone +https://hcomic.in###pv_all > a[onclick^="trackOutboundLink"] +https://xmfish.com###pw_content > .forum_panel:nth-child(4) +https://xh127.com###pzlhdd +https://tianya.cn###q_topbanner_950_90 +https://soyunpan.com###qblad +https://cankaoxiaoxi.com###qihupic +https://so.com###qiyu-brand-container +https://chinanews.com###qizhi_div980 +https://xineurope.com###qmenu_menu + .wp +https://hbzkw.com###qq-bottom +https://duba.com###qq_adv +https://baidu.com###qrcode-chunwan +https://163.com###r_mkaolaadv +https://appinn.com###ranshownow +https://game2.cn###rb +https://hnr.cn###rb_pics +https://baiduyunso.com###rcode +https://cqsq.com###read_0 + a[target="_blank"] +https://tiboo.cn###read_hd1 +https://chinaqking.com###readerServiceDIV +https://pujia8.com,sdgundam.cn###recommend +https://ganji.com###recommend_storeg_div +https://duba.com,uu114.cn###redbagRain +https://ifeng.com###redbox +https://image.baidu.com###relEcom +https://baidu.com###relative_shop_flow +https://image.baidu.com###relecom54 +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###replyBusinessImg +https://qxfun.com###reward-me > figure:nth-child(n+2) +https://2345.com,hao774.com###right > div:first-child +https://90oo.com###right > div[style^="height:60px; width:750px;"] +https://cnbeta.com###right1 +https://cs.com.cn,cssqt.com,qiannao.com,qinbing.cn,sonimei.cn###rightDiv +https://07073.com###rightDiv > div[style="height:250px"] +https://zimushe.com###rightFixed +https://kuai8.com###right_Ad +https://cpd.com.cn###right_ad1 +https://cpd.com.cn###right_ad2 +https://cpd.com.cn###right_adt +https://discuss.com.hk,uwants.com###right_column +https://uc123.com###right_elevator +https://gamersky.com###right_fixed +https://gmw.cn###rightad1 + .contentColumnRight +https://wed114.cn###rightdiv +https://ifeng.com###rightdl +https://leagueofmovie.com###rightfixedad +https://ixueyi.com,shangxueba.com###rightfloatdiv +https://www.wenxuecity.com###rightside +https://nczsks.com###rightyxjs +https://motocity.com.tw###rotator +https://so.com###rt-interest-list +https://m.autohome.com.cn###s2205 +https://autohome.com.cn###s5473 +https://jvhao.com###sAD3 +https://jvhao.com###sAD5 +https://alu.cn###sanjia +https://javjunkies.com###sb1 +https://baby-kingdom.com###sbad +https://sm.cn###sc + .article.ali_row +https://hackp.net###scbar_hot +https://wpsoso.com###scontent > div[style] +https://chyangwa.net,motorfans.com.cn###scrollPics +https://youxi.kugou.com###scrollUp +https://qlwb.com.cn###scroll_box +https://kocpc.com.tw###scroll_div +https://baidu.com###search-union-ad +https://flighty.cn###searchBox + #sidebarBox +https://duba.com###searchRight +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###search_baidu_promote +https://baidu.com###search_bottomad +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###search_button_wrapper +https://liuli.pw###secondary img:not(.avatar) +https://iplaysoft.com###section_event +https://360-bo.com###selectpd +https://5118.com###seobigdata_d1_text_seoreport +https://gdmm.com###separatorline + script + tbody:not([id]) +https://nick18.com,nick20.com###sex +https://nick20.com###sex + div[align="center"] +https://265g.com###sfmt +https://ottawazine.com###sgpb-popup-dialog-main-div-wrapper +https://pan.baidu.com###share_ad_info_panl +https://hupu.com###shihuo1111 +https://maxthon.cn###shopping +https://hao123.com###shortcut-box > .tip +https://hao123.com###shortcut-tuiguang +https://kaoyan1v1.com###showAD +https://downkr.com###show_download_main_panel > .hidden-sm +https://downkr.com###show_download_top_panel > .row > .hidden-xs +https://china.cn###show_loop +https://dmzj.com###show_tip_bg +https://hinews.cn###showgg +https://chaidu.com###shuang11 +https://rising.cn###shuangshiyibid +https://maxthon.cn###side-game-pop +https://mgtv.com###side-join-ad +https://iwan.baidu.com###side-xbox +https://ck101.com###sideAds1 +https://ifeng.com###sideBar[class^="box_"] +https://2345.com###sideCat +https://paipai.fm###sideForum + div +https://hao.360.com###sidebar +https://qiuquan.cc###sidebar .aligncenter +https://5izyw.com###sidebar > .box-b:first-child +https://iyejie.com,pc360.net###sidebar > .widget:first-child +https://oneinstack.com###sidebar > .widget:last-child +https://gaoqing.la###sidebar > .widget:nth-child(-n+3) +https://pc360.net###sidebar > .widget:nth-child(3) +https://jobbole.com###sidebar > .widget_text:first-child +https://tl95.vip###sidebar > .wow:first-child > .widget:first-child +https://jiecao123.com###sidebar > a +https://fuliba.net###sidebar > div:first-child +https://fuliba.net###sidebar > div:last-child +https://iplaysoft.com###sidebar > ul > .widget:first-child +https://iplaysoft.com###sidebar > ul > .widget:nth-child(3) +https://ipcfun.com###sidebar > ul > div[style] +https://ipcfun.com###sidebar > ul > li[style] +https://mpyit.com###sidebar a > img +https://mpyit.com###sidebar div[style*="background"] +https://yigujin.cn###sidebar img[src*="/abc/"] +https://xici.net###sidebar-bd > #pbox:last-child +https://elecfans.com###sidebar-firstad +https://gaoqing.la###sidebar-follow +https://dianyingbar.com,hanjutvn.com,taijuwang.com###sidebar-quan +https://jobbole.com###sidebar-recommend +https://vikilife.com###sidebar-tab[style^="height:"] +https://iplaysoft.com###sidebar_scroll_bdad +https://2345.com###sidel_lvy +https://2345.com###sidenav > .activity-trig +https://douyu.com,douyutv.com###sign_p_1 +https://udn.com###simplemodal-container +https://udn.com###simplemodal-overlay +https://esu.moe,esu.wiki###siteNotice +https://megatime.com.tw,pchome.com.tw###sixi +https://hao123.com,jiegeng.com###siye +https://renrenfabu.com###sj-btn +https://etnet.com.hk###skinnerads +https://keke.la###slide:first-child +https://12306.cn,baike789.com,club.pchome.net,dysfz.tv,dysfz.vip,itkeyword.com,kdslife.com,wuhaozhan.net###slideBox +https://12306.cn###slideRBox +https://cjn.cn###slidelr +https://526bt.com###slider +https://tiantianzhibo.com###sliderb_container +https://popart.hk###slideshow +https://pconline.com.cn###smallHB1 +https://eol.cn###small_adleft +https://eol.cn###small_adright +https://360.cn###snatch-logo +https://hcyy.org###snav_mn_forum +https://baidu.com###sning1 +https://baidu.com###sning2 +https://baidu.com###sning3 +https://sogou.com###sogou_vr_10000901_0 > div[style="display:block;"] +https://sogou.com###sogou_vr_21355601_wrap_0 +https://babyhome.com.tw###spAffix +https://hc360.com###spad1 +https://hc360.com###spad2 +https://baidu.com###spage-top-banner +https://heartinkstone.pixnet.net###spotlight +https://srzc.com###srzcad +https://techbang.com###stickies +https://1616.net###stool +https://showtv.com.tw###sub-ad +https://163.com###suning-bottom-banner +https://265g.com###swiper-bot +https://yxdown.com###sy +https://windowszj.com###system_type +https://tw116.com###t365 +https://voicetube.com###tab-ad-site +https://sogou.com###tab857 +https://ezvivi.com###table1[width="336"] +https://net767.com,playtv.com.cn###table6 +https://gametower.com.tw###tableAD +https://titan007.com###table_live > tbody > tr > td[height="18"] > a +https://07073.com###tanchuang +https://zixuephp.net###tantips +https://xici.net###taobao_700x250 +https://e23.cn###taobaorba +https://findprice.com.tw###tb_ad +https://histock.tw###tbadword +https://kengso.com###tbk_left +https://kengso.com###tbk_right +https://40407.com###tcdgg +https://xh127.com###teinka +https://pchome.com.tw###test2 +https://moe-acg.cc,tumutanzi.com###text-3 +https://vjmedia.com.hk###text-33 +https://stoneip.info###text-57 +https://sea-group.org###text-7 +https://sogou.com###text_ad_area +https://tingvoa.com###textadbox +https://hc360.com###textadv +https://ref.so###tg2_main +https://eastmoney.com###tgbottom +https://paipai.fm###the-logo + .fr +https://firefoxchina.cn###theme-side-banner +https://hupu.com###threadLeftAd +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###thread_list > .j_thread_list + li[class]:not(.j_thread_list) +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###thread_list > .j_thread_list:not([data-field]) +https://firefox.com.cn,firefoxchina.cn###thside-left-banner +https://ettoday.net###ticker_3 +https://1ting.com###tingx_5 +https://wpsoso.com###tips +https://dict.cn###tjcd +https://yaxi.net###tk-slider +https://yxdown.com###tl_adv +https://51yfx.com###tmall_1111 +https://ali213.net###tmp_ggao +https://ziyouge.com###toadsend +https://hexun.com###tonglan_1 + .layout +https://10.0.0.211###toolbar +https://uuu9.com###top +https://iyejie.com###top > div:not([id]):not([class]) +https://gameapps.hk###top-ad-left +https://gameapps.hk###top-ad-right +https://hao123.com###top-anim +https://abcde.cn,bbs.houdao.com###top-banner +https://360.cn,hao.360.com###top-full-column-tips +https://maxthon.cn###top-slider-ad +https://teepr.com###topAdBlock +https://zhangxinxu.com###topAdOut +https://recruit.com.hk###topBar +https://qidian.com###topGameOp +https://2345.com,duanwenxue.com###topHf +https://elecfans.com###topJf +https://hupu.com###topPub +https://zhangxinxu.com###topRecomm +https://360.cn,hao.360.com###top_activity +https://starbaby.cn###top_ad_show +https://cctime.com,ck101.com###top_banner +https://bttop.net###top_bottom + div[style="float:left;width:100%;"] +https://xiashanet.com###top_content +https://ibf.tw###top_d +https://hiapk.com,xitongzhijia.net###top_gg +https://360.cn,hao.360.com###top_hotsite +https://duba.com###top_joke +https://huaban.com###top_promotion +https://wendu.cn###topads +https://10jqka.com.cn###topba1 +https://blog.163.com###topbar_randShowArea +https://hao123.com###topbeWrapper +https://xijucn.com###topc +https://nowscore.com###toperAd +https://nowscore.com###toperBaskText +https://nowscore.com###toperText +https://cnforex.com###topfocus +https://csshello.com###topgg +https://iask.sina.com.cn###topic_ylzz_new +https://1616.net###toplink +https://zzbaike.com###topnav +https://zzbaike.com###topnav + div[style] +https://mtrend.cn###toptabs1 > .kz_line +https://85lou.com###topwarning_7ree +https://fuli.us###toubuads +https://17ce.com###tp_wrap +https://qidian.com###tr-banner +https://tianya.cn###travel_float +https://sohu.com###turn-ad +https://ziqiangxuetang.com###tutorial_btm +https://tuyiyi.com###tuyiyi_zfb +https://ali213.net###tv +https://makaidong.com###txtlink +https://udn.com###udn_scupio_responsive_wrapper +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###union_mod +https://cnbeta.com###upcoming_box +https://v.163.com###v_shapeLeft_divId +https://v.163.com###v_shapeRight_divId +https://0772fang.com###v_topAD_1 +https://fanjian.net###vad +https://ifeng.com###veidoshowAd +https://hexun.com,hexun.com.tw###videoLeftAd +https://hexun.com,hexun.com.tw###videoRightAd +https://vhiphop.com###video_ad +https://yzz.cn###video_ff +https://bitauto.com###video_floatBox +https://ifeng.com###video_p +https://baidu.com###video_push_box +https://aipai.com###videosRightDown +https://rising.cn###viphui +https://rising.cn###viphuibg +https://jstv.com###vplayad +https://160.com###w-advertisement +https://160.com###w-btn-advertisement +https://zqzq.com###wAdTop1 +https://zqzq.com###wAdTop2 +https://weishangshijie.com###wad_left +https://weishangshijie.com###wad_right +https://kamlm.com###wanmeiffad1 +https://21ic.com###warp_con +https://6park.com###weibozkinfo +https://xunleige.com###weizhi-a +https://fububu.com###wendibu +https://baidu.com###wgt-ad-right-fixed +https://baidu.com###wgt-left-promo +https://51yfx.com###widget-gouwu +https://hanjutvn.com###widget-quan +https://51yfx.com###widget-test +https://heu8.com###widget_ada +https://ccav1.com###widget_da +https://ylnet.com.cn###winpop1 +https://news.baidu.com###women-picwall +https://xici.net###word_ad +https://chazidian.com###worldcup_float +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###worldcup_guess_frs_wrap +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###worldcup_topic +https://xingkbjm.com###wowslider-container1 +https://17jita.com###wp > .wp > .pbm +https://528500.com###wp > div[align="center"] +https://yixingjia.com###wp > table[width="960"] +https://wpjam.com###wpjam_blog_300x250_1 +https://isso.com.cn###wqd1496213529829serial +https://isso.com.cn###wqd1519353145001serial +https://ganpapa.com###wrapper + div +https://gdzjdaily.com.cn###wrapper > div[style^="margin-top:6px;"] +https://btbtt.me###wrapper2 > .width +https://huanqiu.com###wxhz1 +https://zhaolianmeng.com###wzgg +https://nczsks.com###wzyxjs +https://liaoxuefeng.com###x-sponsor-a +https://liaoxuefeng.com###x-sponsor-b +https://soft4fun.net###xad_mu +https://hl.cn###xf_left +https://hl.cn###xf_right +https://jmbbs.com###xjj_jmbbs2015_01 +https://fang.com###xmlAd +https://gaokao.com###xuad-left +https://qhnews.com###xwyc +https://alu.cn###xxxhuangjinzhanwei +https://storyren.com###xydlleft +https://storyren.com###xydlright +https://redocn.com###yc_adv_1_2 +https://rjfcxxw.com###yimao > div[style] +https://starbaby.cn###yindex_ads +https://hao123.com###yixing-siye +https://fawan.com###ynetG_B1 +https://dm5.com###youce +https://yahoo.com###ysm-umu +https://game735.com###ysmAD1433_1 +https://weather.com.cn###ytc +https://eastday.com###yxxf_area +https://weather.com.cn###zdl +https://cccpan.com,ys168.com###zdy_wz0 +https://gzmama.com###zone_banner_1_new +https://gzmama.com###zone_index_fullcolumn_2 +https://gzmama.com###zone_left_couplet +https://gzmama.com###zone_right_couplet +https://gzmama.com###zone_top_fullcolumn +https://jyacht.com###zy_topgg2 +https://jyacht.com###zyc1r_03 +https://jyacht.com###zyc1r_05 +https://dilidili.name,dilidili.wang##.A4 +https://china.com.cn,csdn.net,cyol.net,wxrb.com,yam.com##.AD +https://motobuy.com.tw##.AD1 +https://wxrb.com##.AD1000 +https://eepw.com.cn##.AD300x200 +https://wxrb.com##.AD305 +https://wxrb.com##.AD340 +https://wxrb.com##.AD640 +https://cyol.net##.AD960_90 +https://jc001.cn##.ADS +https://click108.com.tw##.AD_300250 +https://click108.com.tw##.AD_730280 +https://tzfdc.com##.AD_B +https://paowen.net##.AD_D +https://sina.com.cn##.AD_hqbottom +https://wxrb.com##.ADtxt +https://shejidaren.com##.AND +https://le.com,letv.com##.Ad +https://kuai8.com##.Ad1 +https://cnfol.com##.Ad1000 +https://cnfol.com##.Ad310 +https://cnfol.com##.AdAsideW300H250 +https://hung-ya.com##.AdBottom +https://aohua.com.au##.AdTop-Article-QQ1 +https://cnfol.com##.AdvDL +https://fx110.com##.Adv_1 +https://bestopview.com##.Adv_c +https://pc6.com##.Advbox +https://feixiangtv.com,qiuyi.cn##.Advertisement +https://big5.china.com.cn##.Advertising > a +https://ifeng.com##.Avt01 +https://ifeng.com##.Avt02 +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.BAIDU_CLB_AD +https://le.com,letv.com##.Banner +https://china.com.cn##.Banner_left +https://china.com.cn##.Banner_right +https://18avhub.com,18avtube.com,mm-cg.com##.CN_qmvtoy +https://ifeng.com##.ColBLAvt +https://ifeng.com##.ColBRAvt +https://ifeng.com##.ColDLAvt +https://ifeng.com##.ColDRAvt +https://ifeng.com##.ColELAvt +https://ifeng.com##.ColFLAvt +https://ifeng.com##.ColGLAvt +https://3464.com##.CommonBody > .CommonListArea:nth-child(3) +https://3464.com##.CommonBody > .CommonListArea:nth-child(3) + .CommonListArea +https://zjk169.net##.ConImg +https://imeee.cn##.DA336 +https://91lai.com##.D_guanggaotu11 +https://91lai.com##.D_guanggaotu2 +https://91lai.com##.D_guanggaotu3 +https://cnfol.com##.EtGA +https://javjunkies.com##.FAd +https://ifeng.com##.FNewLAvt +https://ifeng.com##.FNewRAvt +https://ifeng.com##.FNewRAvtLisBox +https://ifeng.com##.FNewRAvtLisBox02 +https://cnfol.com##.FixedLeft +https://cnfol.com##.FixedRight +https://jinhua.com.cn##.FocusAD +https://angelweb.cn##.GG960x90 +https://aiyuke.com##.GGad +https://downg.com##.Gs_d[href$=".exe"] +https://52fzba.com,79tao.com,hqol.cn,mcncc.com,sunwy.org,twunbbs.com,wnflb.com,wnflb66.com##.GzList +https://le.com,letv.com##.H-tg +https://diyifanwen.com##.Hzh1 +https://diyifanwen.com##.Hzh2 +https://iyaxin.com##.Information +https://ixigua.com,toutiao.com##.J_ad +https://toutiao.com##.J_add +https://smzdm.com##.J_index_wall +https://dianping.com##.J_midas-3 +https://dianping.com##.J_mkt-group-1 +https://dianping.com##.J_mkt-group-2 +https://dianping.com##.J_mkt-group-3 +https://toutiao.com##.J_qihu_ad +https://duba.com##.J_side_activity +https://uwants.com##.MFV +https://shenchuang.com##.MainR_ad3 +https://ltn.com.tw##.NC3 +https://taoguba.com.cn##.NH_ad +https://cnfol.com##.NavTopAd +https://cnfol.com##.NewAdBox +https://07073.com##.No1 +https://bing.com##.OpInNwWndw +https://chinaz.com##.Postcon-ad +https://chinaitlab.com,idcquan.com##.Prt_right[style^="HEIGHT:"] +https://hackhome.com##.Qad +https://21uscity.com##.R300x70 +https://3jy.com##.Rad +https://chinabidding.cn##.TB-focus +https://tuku.cc##.TLAD +https://avmimi.com##.TW_UTtoy +https://alu.cn##.Tg_125x70 +https://alu.cn##.Tg_230x80 +https://alu.cn##.Tg_260x70 +https://alu.cn##.Tg_290x60 +https://alu.cn##.Tg_390x60 +https://alu.cn##.Tg_590x60 +https://3dmgame.com##.Tonglan +https://dailynews.sina.com##.TopNav + table +https://qinzhou360.com##.Txtadv-show +https://weibo.com##.UG_bn_a +https://avmimi.com,mm-cg.com##.UT_thread +https://tuwan.com##.Video-r-ad +https://news.china.com.cn##.Wrapper > div[style] +https://51.ca##._51_a_c +https://outlook.live.com##.__Microsoft_Owa_MessageListAds_ListView_templates_cs_x +https://tools.2345.com##._hb-box + .mod +https://gamer.com.tw##.a-mercy-d +https://ijia360.com##.a.fz0.mb15 +https://thinkphp.cn##.a6 +https://chacuo.net##.a96090 +https://meijutt.com##.a960_index +https://speedtest.cn##.aP-box +https://lahoo.ca##.a_af +https://baixing.com##.a_d_s_hidden_link +https://jdbbs.com##.a_h +https://hh010.com##.a_hong_c +https://bbs.hh010.com##.a_hong_h +https://hh010.com##.a_hong_t +https://hh010.com##.a_hongh_h +https://hh010.com##.a_hongt_t +https://proewildfire.cn##.a_mu + a +https://tropica.cn##.a_mu1 +https://muchong.com##.a_subject[href^="creditshow."] +https://163.com##.a_topad +https://52ghai.com##.a_xiu_t +https://ishuhui.com##.a_xx_d +https://159i.com,china.com.cn##.ab +https://jiyingdm.com##.abcde +https://yesky.com##.abox +https://w3cschool.cn##.abox-item +https://yaolan.com##.abstract_ad +https://ifeng.com##.acAd1 +https://ifeng.com##.acPicBox +https://2345.com##.act-market +https://2345.com,hao774.com##.act-search-tab +https://2345.com##.act-yguang +https://rising.cn##.activity-ad +https://hao.rising.cn##.activity-gt +https://zuimeia.com##.activity-poster:not([href*="zuimeia."]) +https://2345.com##.activity-skin-rtrig +https://2345.com##.activity-skin-trig +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.activity_iframe_container +https://2345.com##.acts11-sidefixed +https://0379home.com,2345.cn,234fang.com,265g.com,3gsc.com.cn,52youpiao.com,72g.com,8btc.com,9dcj.com,acg.bz,acgbenzi.com,aohua.com.au,baiduyunpan.net,baike.com,banyungong.org,bbs-mychat.com,cailianpress.com,cdyee.com,ce.cn,chddh.com,chinaiiss.com,chinaqking.com,chinatimes.com,chinatruck.org,chinaz.com,cnforex.com,cnsoftnews.com,codepub.com,cq.xinhuanet.com,cxryun.cn,dav01.com,discuss.com.hk,djwma.com,douban.com,dzwww.com,e0838.com,eastday.com,eworldship.com,fengniao.com,focus.cn,gongkong.com,hanhuazu.cc,henan100.com,hkgalden.com,honglingjin.co.uk,house.jschina.com.cn,iciba.com,ifeng.com,ipeen.com.tw,isharebest.com,itavcn.com,jiligame.com,jrj.com.cn,kumi.cn,landiannews.com,lawtv.com.cn,loveshang.com,lyd.com.cn,lyreader.com,lzep.cn,maxpda.com,mm111.net,moxing.net,ncdiy.com,neotv.com.cn,newsmth.net,njdaily.cn,people.com.cn,pharmnet.com.cn,pixnet.net,pptv.com,ptbus.com,qihaa.cn,r3sub.com,shenchuang.com,sj998.com,sogou.com,sozi.cn,titan24.com,toocle.com,tpy888.cn,tv.sohu.com,tvhome.com,u-car.com.tw,wallstreetcn.com,weather.com.cn,xs99.cc,xun9u.com,xyfdcw.com.cn,yawin.cn,ydss.cn,yesky.com,yqxs.net,zhuhai.gd.cn,zjstv.com##.ad +https://photofans.cn##.ad-1-index +https://cqmmgo.com##.ad-160x40 +https://19lou.com,ihome99.com##.ad-190x60 +https://cqmmgo.com##.ad-230x60 +https://19lou.com,ihome99.com##.ad-300x30 +https://eprice.com.tw##.ad-320x480-popup +https://eprice.com.tw##.ad-336x280-g +https://eprice.com.tw##.ad-970x250-g +https://eprice.com.tw##.ad-970x90-g +https://19lou.com##.ad-980x40 +https://ihome99.com##.ad-980x60 +https://19lou.com,ihome99.com##.ad-980x90 +https://baofeng.com##.ad-bar-l +https://baofeng.com##.ad-bar-r +https://html-js.com##.ad-blank +https://baidu.com##.ad-block-1 +https://easou.com##.ad-charge +https://newtalk.tw,toolfk.com##.ad-container +https://olevod.com##.ad-corner +https://cqmmgo.com##.ad-cycle +https://sm.cn##.ad-dot-container +https://pc6.com##.ad-download +https://bilibili.com##.ad-e1 +https://bilibili.com##.ad-f +https://eastday.com##.ad-foot-right +https://pixiv.net##.ad-footer + .hover-item +https://gameapps.hk##.ad-full-screen +https://babyhome.com.tw##.ad-gad-300250 +https://babyhome.com.tw##.ad-gad-320100 +https://265g.com##.ad-inner03 +https://ifeng.com##.ad-list +https://daydaycook.com##.ad-mask +https://dilidili.wang##.ad-middle +https://vuejs.org##.ad-pagetop +https://elecfans.com##.ad-pcb +https://19lou.com,cqmmgo.com##.ad-place-logo +https://baidu.com##.ad-platform-tips +https://baofeng.com##.ad-pop-wrap +https://qidian.com##.ad-shell +https://zol.com.cn##.ad-soft-box +https://babyhome.com.tw##.ad-span-ec +https://babyhome.com.tw##.ad-span-large +https://babyhome.com.tw##.ad-span-square +https://liba.com##.ad-split +https://baidu.com##.ad-taishan +https://ithome.com.tw##.ad-text-in-middle +https://39.net##.ad-tl +https://yahoo.com##.ad-tl2b +https://baidu.com##.ad-vip-close +https://baidu.com##.ad-vip-close-bottom +https://cocomy.net##.ad-well +https://sm.cn##.ad-wolong-container +https://cztv.com##.ad003 +https://ifeng.com##.ad05 +https://ifeng.com##.ad06 +https://ifeng.com##.ad07 +https://ifeng.com##.ad08 +https://10jqka.com.cn,88files.net,99files.net,actoys.net,beijing-air.com,bio1000.com,gter.net,hepuwang.com,jjwxc.net,ncdiy.com,qingdaonews.com,tgbus.com##.ad1 +https://ifeng.com##.ad1000-2 +https://ifeng.com##.ad1000_2 +https://ifeng.com##.ad1000_box +https://yuqingcn.cn##.ad1024x90 +https://chexun.com##.ad1100 +https://ishowx.com##.ad1160 +https://c114.com.cn,chddh.com,china.com.cn,persue.com.cn,qingdaonews.com,sj998.com##.ad2 +https://ifeng.com##.ad200-2 +https://yaolan.com##.ad24090 +https://dbw.cn##.ad245 +https://jokeji.cn##.ad250_1 +https://jokeji.cn##.ad250_2 +https://nmgnews.com.cn,sj998.com,sportscn.com,tpy888.cn##.ad3 +https://21uscity.com##.ad300x60 +https://jokeji.cn##.ad3602 +https://jokeji.cn##.ad360_280 +https://linuxde.net##.ad360x500 +https://hupu.com##.ad361-240-240 +https://tpy888.cn,weather.com.cn##.ad4 +https://5imx.com##.ad4:first-child +https://sj998.com##.ad5 +https://china.com.cn##.ad6 +https://juyouqu.com##.ad630 +https://jxedt.com,sohu.com##.ad640 +https://kumi.cn##.ad64060Box +https://52ch.net##.ad650 +https://19lou.com,cqmmgo.com,ihome99.com##.ad650-60 +https://ifeng.com##.ad665 +https://baike.com##.ad680 +https://ting89.com##.ad7 +https://yaolan.com##.ad71090 +https://hupu.com##.ad720-90 +https://ck101.com##.ad728Top +https://ifeng.com##.ad728_tit +https://pujia8.com##.ad740 +https://chexun.com##.ad794 +https://ting89.com##.ad8 +https://ifeng.com,sohu.com##.ad950 +https://pharmnet.com.cn##.ad9502 +https://yaolan.com##.ad96090 +https://danlan.org##.ad98090 +https://dbw.cn##.ad980top +https://zznews.cn##.ad:not([style]) +https://hf365.com,sina.com.cn,sohu.com##.adA +https://sohu.com##.adB +https://sina.com.cn##.adC +https://hkgalden.com##.adContainer +https://familydoctor.com.cn##.adExtra +https://sina.com.cn##.adF +https://newcger.com##.adFullwidth90 +https://sina.com.cn##.adG +https://sina.com.cn##.adH +https://niaogebiji.com##.adImgBox +https://ifeng.com##.adL660 +https://baidu.com##.adLog +https://2345.com##.adMainBg +https://hao123.com##.adMainMiddle-box +https://cnblogs.com##.adPopup +https://jschina.com.cn##.adR +https://ifeng.com##.adR01 +https://ifeng.com##.adR330 +https://ck101.com##.adTopBox +https://baidu.com##.adTopImg +https://cztv.com##.ad_003 +https://ifeng.com##.ad_01 +https://sina.com.cn##.ad_01_center +https://sina.com.cn##.ad_01_left +https://sina.com.cn##.ad_01_right +https://ifeng.com##.ad_04 +https://ifeng.com##.ad_09 +https://szonline.net##.ad_1000_90 +https://ifeng.com,nnnews.net##.ad_12 +https://51wangdai.com##.ad_123_AD +https://jurong.cn##.ad_190_60_5s +https://nnnews.net##.ad_24 +https://1688.com.au##.ad_300_p +https://eol.cn##.ad_490 +https://feng.com##.ad_500 +https://ttys5.com##.ad_580 +https://feng.com##.ad_654 +https://zyue.com##.ad_90 +https://cna.com.tw##.ad_970 +https://hupu.com##.ad_980 +https://cheshi.com##.ad_980105 +https://leiling.org##.ad__single-double-rectangle-wrap +https://tpy888.cn##.ad_all +https://download.csdn.net##.ad_area_1 +https://sogou.com##.ad_aside_inner +https://81.cn##.ad_banner_1000x120 +https://zhibo8.cc##.ad_box_250 +https://ifeng.com##.ad_btn +https://kekenet.com##.ad_catagory +https://csdn.net##.ad_class +https://gamme.com.tw##.ad_down +https://putclub.com##.ad_fastReading +https://tgfcer.com##.ad_headerbanner +https://hb163.cn##.ad_inner +https://le.com##.ad_layer +https://hc360.com##.ad_left +https://duba.com##.ad_leftTip_out +https://ifeng.com,miercn.com##.ad_list +https://ck101.com##.ad_logo +https://78dm.net##.ad_logor +https://sina.com.cn##.ad_main_top +https://udn.com##.ad_mask +https://duba.com##.ad_middleModal +https://comefromchina.com##.ad_navtext_11 > li:nth-child(n+2) +https://ruian.com##.ad_opera +https://hb163.cn##.ad_panel_980 +https://letv.com##.ad_pop +https://itboth.com,itkeyword.com##.ad_pop_left +https://itboth.com##.ad_pop_left_txy +https://letv.com##.ad_pop_small +https://sogou.com##.ad_result +https://bitauto.com,cnblogs.com,hc360.com##.ad_right +https://9upk.com,ouyaoxiazai.com##.ad_show +https://fx168.com##.ad_teshu +https://tgfcer.com##.ad_text +https://dmzj.com##.ad_th +https://dmzj.com##.ad_time +https://zjstv.com##.ad_tl +https://pchome.com.tw##.ad_triple +https://fulibac.com##.ad_two +https://cs.com.cn,pjtime.com##.ad_txt +https://bcbay.com##.ad_txt_box +https://putclub.com##.ad_vipabc +https://yicheshi.com##.ad_w +https://stheadline.com,yinyuetai.com##.ad_w300 +https://itavcn.com##.ad_wordxin +https://baike.com##.ad_xuanban +https://zhijia.com##.adb +https://ifeng.com##.adbest +https://motobuy.com.tw##.adbig +https://sina.com.tw##.adbig300_mid +https://appledaily.com.tw##.adblock_splash +https://17173.com,cdyee.com,chinaz.com,eastmoney.com,epochtimes.com,hsw.cn,ifeng.com,lantian.tv,phoenixtv.com,pyccoo.cn,xineurope.com,yesky.com##.adbox +https://7jiu.com.hk,plays01.com##.adbox-bg +https://dwnews.com##.adbox-top +https://ifeng.com##.adbox03 +https://pchome.com.tw##.adcon +https://ifeng.com##.adcoop +https://jgzj.net##.adcss +https://52pk.com,hao.rising.cn,vpgame.com##.add +https://78dm.net##.add-980 +https://fang.com,soufun.com##.add1200 +https://chinanews.com##.add3 +https://chinanews.com##.add4 +https://putclub.com##.add_ad +https://uzzf.com##.address_like:nth-child(-n+7) +https://ck101.com##.adfixWp +https://chinaz.com##.adfixbug +https://duba.com,uu114.cn##.adfixed +https://1kkk.com,dm5.com,dm5.hk##.adform_1 +https://1kkk.com,dm5.com,dm5.hk##.adform_2 +https://xineurope.com##.adft +https://92wy.com##.adhengfu +https://ifeng.com##.adimg +https://huanqiu.com##.adindexList +https://sina.com##.aditem +https://fzdao.cn##.adlan +https://gkstk.com##.adleft +https://jxedt.com##.adlink1 +https://jxedt.com##.adlink2 +https://cww.net.cn##.adlinkL +https://cww.net.cn##.adlinkR +https://kuailady.com##.adm_wrap +https://mobile01.com##.admicrobtn +https://ccoo.cn,hackhome.com,vipcn.com##.adn +https://zj.com##.adnav +https://zj.com##.adnav2 +https://gaokao.com##.adout116 +https://bigear.cn##.adpicright +https://ifeng.com##.adpubpic +https://doc88.com##.adpx250 +https://gamme.com.tw##.adread +https://appinn.com##.ads-m +https://360.cn##.ads-pic +https://shejidaren.com##.ads-post-foot +https://weishangshijie.com##.ads228_1_r +https://5icool.org##.ads300_show +https://eeyy.cc##.ads650 +https://52solution.com##.ads97090 +https://disp.cc##.ads_bot_block +https://chinamedevice.cn##.ads_img +https://chinamedevice.cn##.ads_img1 +https://xianliao.me##.ads_popup_small_ads_container +https://199it.com,wholehk.com##.adsbygoogle +https://m.kuaidi100.com##.adsbygoogle + a +https://aibing.cc,htcui.com,uho.com.tw##.adsense +https://lenovo.com.cn##.adsense-wrap +https://qinbing.cn##.adspic_mid2 +https://av.movie##.adss-160x600 +https://emule.org.cn##.adtabletr1 +https://chinaz.com,ofweek.com,yawin.cn##.adtext +https://gdmm.com##.adtop > .module +https://wed114.cn##.adtwo +https://114la.com,78dm.net,fh21.com.cn,qzwb.com,silver.org.cn,solidot.org,ylmf.com##.adv +https://xiazaiba.com##.adv-110 +https://xmfish.com##.adv-760 +https://xmfish.com##.adv-960 +https://xinhuanet.com##.adv-column2 +https://wdzj.com##.adv-img +https://yxdm.tv##.adv0 +https://shouji56.com##.adv01 + a +https://kdhome.net,yxdm.tv##.adv2 +https://kdhome.net,xinhuanet.com,yxdm.tv##.adv3 +https://myhack58.com##.adv32 +https://it165.net##.adv728a +https://it165.net##.adv728b +https://sohu.com##.adv_960 +https://rs05.com##.adv_bottom +https://8btc.com##.adv_element +https://eeskill.com,le.com,letv.com##.adv_img +https://jjckb.cn##.adv_ment +https://kaifu.com##.adv_slide +https://autohome.com.cn,gdzjdaily.com.cn,loveshang.com##.advbox +https://jyacht.com##.adve_3 +https://jyacht.com##.adve_4 +https://anjuke.com##.adver-content +https://znjj.tv##.adver1 +https://360che.com##.adver1000_60 +https://360che.com##.adver1000_65 +https://360che.com##.adver250_250 +https://360che.com##.adver300_150 +https://360che.com##.adver300_250 +https://360che.com##.adver600_80 +https://wyh.tv##.adverall +https://cpnn.com.cn##.adverd-top +https://jiaonan.net##.adverframe +https://ce.cn,chinabidding.com.cn,eastmoney.com,expreview.com,ieforex.com,laod.cn,xywy.com,zhujiceping.com##.advert +https://csdn.net##.advert-bg +https://sspai.com##.advert-card +https://xmfish.com##.advert-entry-list +https://liba.com##.advert-l +https://liba.com##.advert-r +https://qudong.com##.advert_bottom +https://hao123.com,sohu.com,tieba.baidu.com##.advertise +https://bitauto.com##.advertise-nav-down +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.advertise_right_index +https://aicoin.net.cn,hkepc.com,iviewui.com##.advertisement +https://3d66.com##.advertisement-carousel +https://chinacar.com.cn,elecfans.com##.advertising +https://10086.cn##.advertisingOther_img +https://speedtest.cn##.advertisingSpace +https://ifeng.com##.advmark +https://hexun.com,hexun.com.tw##.advp +https://it165.net##.advyello +https://itavcn.com##.advzone +https://123.sogou.com##.adword > a +https://meizhou.com##.adwords + div +https://gamme.com.tw##.adwrpt +https://baidu.com##.afd-item +https://mgtv.com##.album-gg +https://frdic.com##.alert +https://wigcw.cn##.alert-block +https://wdzj.com##.alert-box-pop +https://jszbug.com,siku11.com##.alert-danger +https://9vip.top##.alert-dismissible +https://ckck.vip,eetop.cn##.alert_windows +https://ali213.net##.ali-photo-carousel-pic > li > a[href*=".fhyx."] +https://phpvar.com##.aliPic +https://sm.cn##.ali_row[ad_aid] +https://caibaojian.com##.aliyun-inner +https://cnfol.com##.allAd +https://bkill.com##.alliance-ad +https://gufengmh.com##.animated +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.app_forum_top_nav_tab +https://fanyi.baidu.com##.appbanner +https://keywin.org##.appdownload +https://hao.360.cn##.applist > .app:nth-last-child(n+2) +https://tiantianzhibo.com##.apprecomm +https://gamefy.cn,sitv.com.cn##.area > div[style="float:left"] > a +https://wenku.baidu.com##.area[href*="/adclick?aid="] +https://zhlzw.com##.area_ad +https://gfan.com##.art-ad +https://bkjia.com##.art_rightad1 +https://jj59.com##.art_tong +https://yzmg.com##.article-bottom-ads +https://woshipm.com##.article-bottomAd +https://landiannews.com##.article-content > div[class]:first-child +https://cnbeta.com##.article-global +https://m.cnbeta.com##.article-hd + div[style="text-align:center"] +https://cyzone.cn##.article-middle-guanggao +https://sina.cn##.article-sax +https://yzmg.com##.article-top-ads +https://cnbeta.com##.article-topic +https://sm.cn##.article.ali_row + #sc ~ .article.ali_row +https://haha.mx##.article.mt-20 +https://xvna.com##.articleAD +https://xuite.net##.articleExtAd +https://toutiao.com##.article_link[data-tag="ad"] +https://24en.com##.article_part_top +https://carrotchou.blog,chongdiantou.com,hanypan.com,wangqianfang.cn,wuzuowei.net##.asb +https://fulishequ.com##.asb-index-01 +https://lrshare.com##.asb-post +https://iviewui.com##.asd +https://btyingshi.com##.aside > .card:last-child +https://78dm.net##.aside-add +https://focus.cn##.aside-banners +https://baidu.com##.aside-inner > div[style*="height:"] +https://jingyan.baidu.com##.aside-pro-container +https://fx678.com##.aside-store +https://oschina.net##.aside-topjj +https://anquan.org##.aside_profile_activity > div:first-child +https://showtv.com.tw##.ask18 +https://ilvruan.com##.asst +https://vx666.com##.async[href^="http"] +https://163.com##.at_item +https://so.com##.atom-adv +https://gamefy.cn,sitv.com.cn##.att-bar +https://chexun.com##.attr-outside-ad +https://u17.com##.auto_ad +https://liba.com##.avdert1190 +https://yam.com##.axdBox +https://read01.com##.axslot +https://newsmth.net##.b-content > #sogou_banner:nth-child(3) +https://360kan.com##.b-ifradjx +https://gamer.com.tw##.b-list_ad +https://bing.com##.b_ad +https://bing.com##.b_adBottom +https://pinshan.com##.b_adv +https://pinshan.com##.b_adv2 +https://120ask.com##.b_right > div[style] +https://168gamer.com,168gamer.net##.b_tad +https://pinshan.com##.b_taobao +https://secretmine.net##.background-cover +https://china.com##.baidu +https://hao.rising.cn##.baidu-banner +https://17k.com##.baiduBox +https://flyzy2005.com##.baidu_ad +https://mydrivers.com##.baidu_box +https://ucbug.com##.baidu_fx +https://qqcyl123.com##.baiduadc +https://brushes8.com##.baidugg580 +https://hc360.com##.baidutuiguang +https://xizi.com##.baner1 +https://uschinapress.com##.baner_pictur +https://82tu.cc##.banner + a +https://csdn.net##.banner-ad-box +https://cnool.net##.banner-ad001 +https://iwan.baidu.com##.banner-container +https://baidu.com##.banner-cover +https://cgown.com##.banner-gg +https://acfun.cn##.banner-href[href^="http"]:not([href*=".acfun."]) +https://crsky.com##.banner-leader +https://wenku.baidu.com##.banner-more-title +https://fuli.us,zhumengwl.com##.banner-post +https://smzdm.com##.banner-stuff +https://big-cup.tv,g-cup.tv##.banner-table-block +https://5118.com##.banner-top +https://firefoxchina.cn##.banner-words +https://fanyi.baidu.com,longzhu.com##.banner-wrap +https://news.cn2che.com##.banner01 +https://html5china.com,sojson.com,wbzol.com,xizi.com##.banner1 +https://jinhua.com.cn##.banner1200 +https://jinse.com##.banner1200_new +https://beihaiting.com,guitarchina.com,hao123.com,sojson.com,wbzol.com##.banner2 +https://ting89.com,tingshuge.com##.banner250 +https://jinhua.com.cn##.banner260 +https://jinhua.com.cn##.banner465 +https://ting89.com,tingshuge.com##.banner688_1 +https://ting89.com,tingshuge.com##.banner688_2 +https://aguitar.cn##.banner7 +https://jinhua.com.cn##.banner935 +https://yaolan.com##.banner960 +https://niutuku.com,sina.cn##.bannerAD +https://afzhan.com##.bannerAdv +https://aipai.com##.banner_90 +https://900.la##.banner_ad1 +https://xilu.com##.banner_bg +https://foodmate.net,ksbbs.com,kshot.com,oschina.net##.banner_box +https://sinami.com##.banner_centerLeft +https://sinami.com##.banner_centerRight +https://baidu.com##.banner_center_adv2 +https://vod1769.com##.banner_img +https://fanyi.baidu.com##.banner_img_container +https://chinaiiss.com##.banner_middle +https://sznews.com##.banner_new2 +https://sinami.com##.banner_rightBottom +https://zhaogepu.com##.banner_top +https://591hx.com##.banner_w +https://baidu.com##.bannerdown +https://javlibrary.com##.bannerqq +https://xici.net##.banners-slide +https://efu.com.cn##.banners-top-b +https://efu.com.cn##.banners-top-x2 +https://fang.com##.bannger_inbox +https://mscbsc.com##.bao1 +https://hao123.com##.bar-text +https://dianyingbar.com##.barrageContainer +https://jnnc.com##.basehr + div +https://news.lzep.cn##.basehr + div:nth-child(3) +https://gd163.cn##.bbs_ad +https://hualongxiang.com##.bbs_box_gg +https://nick18.com##.bbs_entry_wrapper > table[width="100%"] +https://pediy.com##.bbs_footer_advertising_column +https://xilu.com##.bbs_topad +https://bcquan.me##.bcqad +https://hao.rising.cn##.bd-lmhot +https://jrj.com.cn##.bd.pa10.bgn +https://newxue.com##.bd500 +https://33am.cn##.bd_980_90 +https://52tian.net,starbaby.cn##.bdad +https://newnet.cc##.bdad1 +https://cnscore.com##.bdbanner +https://818today.com##.bdg +https://1010jiajiao.com##.bdgg +https://e23.cn##.bdggtb +https://baidu.com##.bds-list-ads +https://pinshan.com##.bea_adv2 +https://eastday.com##.beforegg +https://smzdm.com##.beiwo +https://javhd.com##.benefits-list-holder +https://muchong.com##.bg > .wrapper:nth-child(14) > .forum_Post_index +https://uc123.com##.bg-wrapper +https://jrj.com.cn##.bg2424 +https://duba.com##.bgOpen +https://265g.com##.bg_ban +https://asus.com##.bg_block +https://40407.com##.bg_l +https://40407.com##.bg_r +https://265g.com##.bgban +https://douyu.com##.bglink +https://gdzjdaily.com.cn##.big_news + div +https://sgcn.com##.bigaimg +https://114la.com,ylmf.com##.bighd-top-bar +https://haote.com##.bigmainIn +https://rkanr.com##.bill +https://gywb.cn##.bill-vertical +https://sogou.com##.bizr_rb +https://chinairn.com##.bizrpt +https://baby-kingdom.com##.bk_list_right_ads +https://fanjian.net##.bkgd-top +https://fanjian.net##.bkgd-topapps +https://erji.com,erji.net##.black.y-style +https://hkcna.hk##.blank17 + .fd > a[href^="http"]:not([href^="http://www.hkcna."]) +https://pconline.com.cn##.blk-img[href^="http://best.pconline."] +https://pconline.com.cn##.block-jcz +https://ifeng.com##.blockR.ipad_none:nth-last-child(2) +https://boo.tw##.blockUI +https://oschina.net##.blog-left-ad +https://codexiu.cn##.blog-twitter:first-child +https://xianzhenyuan.cn##.bm.a_c +https://tropica.cn##.bm.a_c1 +https://ydss.cn##.bm.bml.pbn > table > tbody > tr > td:nth-child(-n+2) +https://ft.com,ftchinese.com##.bn-ph +https://yeeyi.com##.boardnav > #ct > .sd +https://xmfish.com##.bobing-theme +https://ifeng.com##.bomBox +https://tvsou.com##.border-btn[style^="height:"] +https://creaders.net##.border_b > tbody > tr > td[height^="2"] +https://biz.zjol.com.cn##.bot +https://gter.net##.bottom +https://hao123.com,muzhi.baidu.com##.bottom-banner +https://dianping.com##.bottom-contrainer +https://qizuang.com##.bottom-fadan-box +https://liba.com##.bottom-pic +https://histock.tw##.bottom-right +https://zhongkao.com,zuowen.com##.bottomImg +https://lenovo.com.cn##.bottom_ad_ban_bg +https://lenovo.com.cn##.bottom_ad_fla +https://freehao123.com##.box +https://cb.com.cn##.box > a[href^="http"]:not([href*=".cb."]) +https://enread.com##.box > ul[style="width:100%;overflow:hidden;"] +https://114la.com,ylmf.com##.box-hot +https://pconline.com.cn##.box-jcz +https://dl.pconline.com.cn##.box-push +https://zol.com.cn##.box-top-ad +https://sportsv.net##.box.ad +https://csdn.net##.box.hot +https://0772fang.com##.box0 +https://lolshipin.com##.box2 +https://mobanwang.com##.box960x90 +https://henan100.com##.boxB +https://ifeng.com##.box_list_pic > a[href^="http://dol.deliver."] +https://duba.com##.box_shopping +https://fx678.com##.box_video +https://nxing.cn##.boxclose +https://uzzf.com##.boxl +https://wanqu.co##.brand-ad +https://kehuan.net.cn##.bread_728x90 +https://cgown.com##.breadcrumb-gg +https://7junshi.com##.breaknovel-ave +https://le.com,letv.com##.broadcast-adv +https://hao123.com##.browsertip +https://anywlan.com##.bscekvofc_o +https://bt.cn,lotour.com##.btad +https://163.com##.btm-ad +https://onlinedown.net##.btmAD +https://ifeng.com##.btm_tg +https://aizhan.com##.btn +https://zdfans.com##.btn + .btn +https://firefox.com.cn,firefoxchina.cn##.btn-email-show + p +https://cssmoban.com##.btn-host +https://subku.net##.btn-success +https://mydrivers.com##.btnNext + div:last-child +https://gusuwang.com,news.hexun.com##.business +https://brtn.cn,btime.com##.business-box +https://brtn.cn,btime.com##.business-item +https://zhaolianmeng.com##.buttonBar +https://zealer.com##.buy_container +https://ithome.com##.bx-recom2 +https://hao.lenovo.com.cn,hi.lenovo.com.cn##.bxslider-wrap +https://mgtv.com##.c-95060-top +https://baidu.com##.c-container.ec-container +https://3987.com##.c-gg +https://baidu.com##.c-result[data-tpl="adv_wenku_fc"] +https://suning.com##.c2c-recommend +https://myexception.cn##.c_a_3 +https://aohua.com.au##.c_ad +https://cnblogs.com##.c_ad_block +https://kdnet.net##.c_spread +https://360.cn##.cangbao_redbags +https://qihoo.com##.car-ercode +https://duba.com##.car_ads +https://btring.com##.card[target="_blank"] +https://16888.com##.cardataclass +https://htcui.com##.carousel +https://cnbeta.com##.cb-help +https://baidu.com##.cbg-Ads +https://cnbeta.com##.cbhelp +https://m.cnbeta.com##.cbimage-fixed +https://mpyit.com##.cboxElement + center[style=" padding-top:10px; "] +https://cnbeta.com##.cbv810 +https://cnbeta.com##.cbv:not(#cb_share) +https://meizhou.com##.cc_z1 +https://11luba.com,niluba.cc##.center > div:last-child +https://sina.com.cn##.center-pdps +https://sina.com.cn##.center-pdps-02 +https://huarenjie.com,huarenjie.net##.cfad +https://hao.rising.cn##.channel-adimg +https://eeskill.com##.channel-featured-adv +https://enread.com##.channel-nav > .back +https://douban.com##.channel_promo +https://xianliao.me##.chat-content__ads +https://longzhu.com##.chatroom-ap +https://2345.com,hao774.com##.chc-dzoem +https://china.com.cn##.chinaJZG +https://firefoxchina.cn##.chip-banners +https://52ch.net##.chn_pb +https://baidu.com##.chunwan-wrapper +https://zhujiboke.com##.cjtz-border +https://dm5.com,dm5.hk##.cl760 +https://dm5.com,dm5.hk##.cl970 +https://fpdisplay.com##.class_adv1 +https://36dm.club,36dm.com,acgsou.com##.clear.text_center +https://360doc.com##.clear360doc[style^="padding-top:"] +https://sina.com.cn##.clearAd +https://caikuu.com##.clearfix + .recommend +https://mgtv.com##.click-s-r1 +https://mgtv.com##.click-t +https://tieba.baidu.com##.client_ad_banner +https://tieba.baidu.com##.client_ad_topBanner +https://tieba.baidu.com##.client_ad_topBanner + .statistics_img_view + li[class] +https://tieba.baidu.com##.client_ad_topBanner_all +https://hboav.com##.close_box +https://hboav.com##.close_box0 +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.close_btn[src*="/adsense/"] + div:last-child +https://chaomi.cc##.cm-ads +https://so.com##.cmclk +https://image.so.com##.cmitem +https://2345.com##.cmoe-nxh-dx +https://bbs.xmfish.com##.cmp_v +https://hao123.com##.cn_banner +https://hao123.com##.cn_tips +https://cnbeta.com##.cnbeta-side-sponsor +https://2345.com##.cnxh_box +https://huanqiu.com##.co360Box +https://hlgnet.com##.co_ad +https://hlgnet.com##.co_ad3 +https://vjmedia.com.hk##.code-block +https://rj.baidu.com##.code-wp +https://2345.com##.coem-dzhcn +https://www.wenxuecity.com##.col > ul:not([id]) > li > a[href^="http://"]:not([href*=".wenxuecity."]) +https://zhangxinxu.com##.col-aside +https://big-cup.tv,g-cup.tv##.col-md-12.text-center[style="margin-top: 3px;"] +https://ezprice.com.tw##.col-md-3 +https://gamefy.cn,sitv.com.cn##.col-vlist-l > span +https://dospy.com##.com-adm +https://jiakaobaodian.com##.com-side-car-sales-rank +https://www.kafan.cn##.comeing_show_box[style="padding:10px;"] +https://image.so.com##.commerce +https://wenku.baidu.com##.commerce-flow +https://image.so.com##.commerce_txt +https://so.com##.commercialCell +https://iciba.com##.common-top-nav-item:not([href*=".iciba."]) +https://qingdaonews.com##.commonrightad +https://cnbeta.com##.commt-r +https://meituan.com##.component-downtip +https://gamefy.cn,sitv.com.cn##.con + div[style="float:right; width:326px;"] +https://gamefy.cn,sitv.com.cn##.con > a:last-child +https://qiuw.com##.con > a:nth-child(n+2) +https://maolihui.com##.con-ad +https://ithome.com##.con-recom +https://joy.cn##.con2-3 +https://ifeng.com##.conRgg +https://aihami.com##.conText > div[style*="width:"] +https://360che.com##.con_banner +https://40407.com##.con_tj +https://firefox.com.cn,firefoxchina.cn##.cont-promote +https://ifeng.com##.cont_bottom_Yy +https://ifeng.com##.cont_bottom_YySmall +https://u-car.com.tw##.contad +https://u-car.com.tw##.contad_text +https://rijutv.com##.container > div[style="height: 128px;"] +https://it1352.com##.container-fluid > .hidden-sm:nth-child(-n+2) +https://www.wangjing.cn##.content > div[style*="980px;"] +https://cnbeta.com##.content > p:last-child > a[href] +https://sspai.com##.content hr:nth-last-child(-n+4) ~ p +https://w3cschool.cn##.content-abox +https://baidu.com##.content-adv +https://fullyu.com##.content-top-ads +https://ptbus.com##.content14 +https://p9.com.tw##.contentRightAd +https://educity.cn##.content_relate:nth-child(5) +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.content_top +https://aihami.com##.context_ad +https://hao123.cn##.cool > tbody > tr > td[align="center"]:last-child +https://duba.com##.cool_textlink +https://jiegeng.com##.coolsite-recommend-linked +https://cnbeta.com##.cooperation +https://weike87.com##.copy +https://114la.com##.corner +https://51.com,wnacg.org##.couplet +https://51wangdai.com##.couplet_gg +https://51wangdai.com##.couplet_gg02 +https://tigtag.com##.couplet_l +https://zuowen.com##.couplet_left +https://tigtag.com##.couplet_r +https://zuowen.com##.couplet_right +https://caixin.com##.course_box +https://meishij.net##.cp_body_right +https://makepolo.com##.cpc_tgs +https://zuoye.baidu.com,zybang.com##.cpro +https://docin.com##.cpro_mod +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.cps_wrap +https://51credit.com##.credit-box +https://bkill.com##.cross-ad +https://timedg.com##.crossAdvertise +https://timedg.com##.crossAdvertise2 +https://sm.cn##.crumb-link + .other +https://iplaysoft.com##.crumb_ad +https://csdn.net##.csdn-tracking-statistics[style="height:250px;"] +https://cnbeta.com##.ctcloud +https://tigtag.com##.custom-box02 +https://51wangdai.com##.cx_ad +https://51wangdai.com##.cx_xx_lis_c01_right_lis_c_ad +https://vuetifyjs.com##.d-inline-block +https://iplaysoft.com##.d250 +https://iplaysoft.com##.d250x90 +https://hackhw.com##.d336 +https://hackhw.com##.d336x2 +https://xgrb.cn##.d_2016_ggw +https://ihref.com##.d_banner +https://xingkbjm.com##.d_postlist > ul > li:nth-child(-n+2) +https://51.la##.da-item +https://qingdaonews.com##.da30050 +https://qingdaonews.com##.da66050 +https://zhangxinxu.com##.da_bottom +https://lenovo.com.cn##.daily-hotwords +https://map.baidu.com##.damoce-search-item +https://acfun.cn##.danmu-activity +https://soufun.com##.danmu_inbox +https://bbs.it168.com##.daoh2 + .bor8 +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.dasense +https://newxue.com##.dashuggtop +https://newxue.com##.dashuggtop1 +https://ggcj.com##.dbxf +https://8ziyuan.com##.deanadsside +https://pan.baidu.com##.decrease-active +https://xianshuabao.com##.demand-dialog +https://xianshuabao.com##.demand-fixed +https://17qingsong.com##.detail-gads +https://toocle.com##.detail_top_ad +https://faxingw.cn##.detailadv +https://faxingw.cn##.detailgc +https://zcool.com.cn##.details-advertisement +https://xiadele.com##.details-small-carousel +https://discuz.com##.df_money +https://yicai.com##.dfb-ad +https://sina.cn##.dfz_sd_news > a[href*=".10086.cn"] +https://7654.com##.dh2_bottom_wrap +https://wenku.baidu.com##.dialog-ad-hd +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.diamond-mall-aside +https://bcbay.com##.discuss + table +https://gs.chinanews.com.cn##.div1000_2 + .div980 +https://131458.com##.divGuanggao +https://0597ok.com##.div_ad +https://pc0359.cn##.dl-down +https://pc0359.cn##.dl-ico:nth-child(-n+7) +https://dl.pconline.com.cn##.dlTips +https://gfan.com##.dl_AD +https://silver.org.cn##.dl_lt +https://letv.com##.dl_mobile +https://itavcn.com##.dlggw-g +https://moe-acg.cc##.dmengslide-wrapper +https://360doc.com##.doc360article_content > div[class]:first-child +https://xici.net##.doc_tl +https://pctowap.com##.dowap_ads +https://3d66.com##.down-adver +https://zol.com.cn##.down-jisu +https://xiaopi.com##.down-list +https://mianbao99.com##.downApp +https://fx110.com##.down_Hx +https://52pk.com##.down_adv +https://gz0668.com##.down_fixed +https://xiazaizhijia.com##.down_list +https://yesky.com##.down_referer +https://yesky.com##.down_referrer +https://downza.cn##.down_top +https://downza.cn##.downbtn +https://portablesoft.org##.downcenter +https://yxzoo.com##.downgg +https://onlinedown.net##.downgs +https://188soft.com##.download +https://duote.com##.download-box:first-child +https://downg.com##.download-list:first-child +https://wmzhe.com##.downloader +https://pc0359.cn,pc6.com##.downnow +https://123.sogou.com##.dropBox_list > li > a > span[style="color:red"] +https://jxcn.cn##.dsp_yxxf +https://jinbaozy.com##.dtk-fixed-ads +https://51ztzj.com##.dtmwrap[style="height:75px;background:#fff"] +https://81.cn,chaomi.cc,cnstock.com,cpnn.com.cn,cs.com.cn,dyhjw.com,hnr.cn,kkj.cn,my0538.com,mydrivers.com,ofweek.com,silver.org.cn,ttzmz.vip,wendu.cn##.duilian +https://hnr.cn##.duilian_close +https://cpnn.com.cn##.duilians +https://cncrk.com##.dxzq +https://2345.com##.dzc-hn-cmoe +https://so.com##.e-buss +https://acg17.com,secretmine.net##.e3lan +https://m.so.com##.e_idea_list +https://so.com##.e_idea_wenda_detail_spread +https://so.com##.e_idea_wenda_spread +https://solidot.org##.e_reply > .fr +https://easou.com##.easou_banner +https://baidu.com##.ec-ad +https://sm.cn##.ec-goods-list +https://baidu.com##.ec-oad +https://baidu.com##.ec_ad +https://m.baidu.com##.ec_adv +https://baidu.com##.ec_im_container +https://ettoday.net##.ec_menu +https://baidu.com##.ec_sma_im +https://baidu.com##.ec_wise_ad +https://easou.com##.ecom-adTop +https://news.baidu.com##.ecom_pingzhuan +https://baidu.com##.ecomad-banner-loading +https://19lou.com##.editor-ad +https://wenku.baidu.com##.edu_class_pop_dialog +https://playno1.com##.eis_adv +https://playno1.com##.eis_adv + .eis_mtm +https://playno1.com##.eis_adv2 +https://www.playno1.com##.eis_box_s +https://ncno1.playno1.com##.eis_box_s > div:first-child +https://fuyang.net##.eis_fbox_260:nth-child(n+3) +https://fuyang.net##.eis_fbox_980 +https://playno1.com##.eis_mtm[style="border-top:1px dashed #CDCDCD;padding-top:10px; padding-bottom:15px"] +https://backchina.com##.eis_subnav_area +https://winning11cn.com##.eis_topad +https://dilidili.wang##.elmnt-one > .shade > a[href^="http"]:not([href*=".dilidili."]) +https://eprice.com.tw##.emome-ad +https://firefoxchina.cn##.engine-jokes +https://zreading.cn##.enhanced-text-widget:nth-child(2) +https://1point3acres.com##.enhanced_header +https://hao123.com##.enter1 +https://rj.baidu.com##.entrance +https://hackhw.com##.entry-banner +https://fuliba.net##.entry-content > div[style^="float:right"] +https://hexieshe.com,hexieshe.xyz,xxshe.info##.entry-header + p + p[style="text-align: center;"] +https://hexieshe.com,hexieshe.xyz,xxshe.info##.entry-title > p +https://niotv.com##.epg_ad3 +https://niotv.com##.epg_ad_list +https://epinv.com##.epgg ~ .huadong +https://epinv.com##.epinv_b +https://epinv.com##.epinv_f +https://shulink.com##.er_g +https://sinolub.com##.erjlogo > .fl + .fl +https://2345.com,hao774.com##.event1-hasList +https://58.com##.ewmAdNew +https://8264.com##.ewmbox +https://huaban.com,start.firefoxchina.cn##.extra +https://fanyi.baidu.com##.extra-banners +https://douyu.com##.f-sign-cont +https://xiaobaipan.com##.f_ad +https://5gw.cc##.f_b_c_d +https://m.sohu.com##.f_rec[href^="//m.sohu.com/promotion?"][href*="/f/"] +https://infoq.com##.f_sponsorbox_top_2 +https://sgcn.com,wangjing.cn##.fad +https://mobile01.com##.fast-ad +https://duba.com,uu114.cn##.fav_box +https://baidu.com##.fc-ad-line +https://baidu.com##.fc-wenku-ad +https://hkcna.hk##.fd + .fdr > a[href^="http"]:not([href^="http://www.hkcna."]) +https://jq22.com##.fdad +https://maxthon.cn##.feast-gift-search +https://focus.cn##.feed-item[node-type="ad-item"] +https://focus.cn##.feed-list-item[data-ad-type] +https://smzdm.com##.feed-stuff +https://ytbbs.com##.fend_ad +https://home.ifeng.com##.fengjc02 +https://360.cn##.festival_snatch +https://nicotv.me##.ff-ads +https://fh21.com.cn##.fh-ad-iask-pic +https://cngold.org##.fiexdAdvsClosed +https://halihali.me##.filmDes + .mod +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.firework-wrap +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.firework_sender_wrap +https://etnet.com.cn##.firstAD +https://zybang.com##.firstBanner +https://html5china.com##.firstnews +https://douyu.com##.fishop-anchor-recommands-box +https://hepan.com##.fivead +https://elecfans.com##.fix-btmad +https://12306.cn##.fix-yh +https://silver.org.cn##.fix_bottom_position +https://silver.org.cn##.fixbottom_wrap_small +https://jjmmw.com##.fixed-ad +https://gitee.com##.fixed-notice-messages +https://lenovo.com.cn##.fixedLeftAd +https://163.com##.fixed_foot_ad +https://gucheng.com##.fixed_img +https://aimazu.com,gongkong.com##.fixediv +https://lyreader.com##.fixnewUser +https://icoc.bz##.fk-siteAdBoxCB +https://bbs.actoys.net##.fl[style$="float:right;"] +https://haote.com##.flashbox +https://youthwant.com.tw##.flex-container +https://vhiphop.com##.flexslider +https://qunar.com##.flight_ad +https://19lou.com,cqmmgo.com,ihome99.com##.float-ad-wrap +https://9dog.pw##.float-adv +https://taoyizhu.com##.float-banner +https://csdn.net##.float-left > div[id^="dmp_ad_"] +https://3boys2girls.com##.float320 +https://ledinside.cn##.floatAD +https://oschina.net##.float_adbox +https://admin5.com##.float_both_index +https://zmz2019.com##.float_middel_ad_bk +https://pic.sogou.com##.floating +https://107cine.com##.flow-other +https://107cine.com##.flow_right > div[style="margin-top:20px;"] +https://sojson.com##.fly-hezuo +https://newcger.com##.focus + .block934 +https://1fzw.com##.focus-bots +https://cnblogs.com##.focus-gg +https://zhongkao.com##.focusBox +https://yinyuetai.com##.focus_bottom_banner +https://haodou.com##.focus_img +https://900.la##.font-ad +https://se8u.cc##.footAdv +https://jisilu.cn##.foot_ad +https://880sy.com##.foot_gg +https://yipee.cc##.footer-sidebar-container +https://iciba.com##.footer_baidu +https://yaolan.com##.footer_float_box +https://image.baidu.com##.ford-tag +https://chineseinla.com##.forum_banner_ads +https://pcbeta.com##.forum_top ~ div[class] +https://vvshu.com##.forviewda +https://880sy.com##.fot_btom +https://v2ex.com##.fr > a[href^="https://www.digitalocean.com/"] +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.frs_act_repost_wrapper_outter +https://tieba.baidu.com##.frs_pb_leadapp_pop_show +https://ytbbs.com##.ftop_ad +https://ytbbs.com##.ftop_ad_2016 +https://duowan.com##.full-banner +https://ainuody.com##.full-width +https://guancha.cn##.full_nav1 +https://gamme.com.tw##.fullad_ad +https://962.net##.g-962-ad +https://quanmin.tv##.g-gg +https://hiapk.com##.g2.mt20 +https://hiapk.com##.g2_img_l +https://hiapk.com##.g2_img_r +https://hiapk.com##.g2_right +https://mobanwang.com##.g960 +https://126.com,163.com##.gWel-promt +https://smzdm.com##.g_g +https://233.com##.gads +https://233.com##.gads2 +https://lenovo.com.cn##.game +https://zhanqi.tv##.game-banner +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.game-head-game-info-wrapper +https://tvhome.com##.game_Ad +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.game_banner +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.game_banner_common_wapper +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.game_content +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.game_list_and_rank +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.game_spread_thread +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.game_tab +https://sina.com.cn##.gamead1 +https://timeon.cn##.gameads +https://qidian.com##.games-op-wrap +https://so.com##.garllery_ad +https://115.com##.gb-advs +https://1kkk.com,40407.com,5068.com,88148.com,chazidian.com,china.com,cnwnews.com,dhzw.org,elecfans.com,ghjie.com,iask.ca,ifeng.com,iqilu.com,jj59.com,juqingba.cn,qzwb.com,sina.com.cn,tianya.cn,zsnews.cn##.gg +https://elecfans.com##.gg-01 +https://morningpost.com.cn##.gg-2 +https://baidu.com##.gg-content +https://bilibili.com##.gg-floor-module +https://morningpost.com.cn##.gg-stl +https://to8to.com##.gg-wei-link +https://5068.com,ifeng.com##.gg01 +https://5068.com,hgitv.com##.gg02 +https://hgitv.com##.gg09 +https://antpedia.com,chinamedevice.cn,lcxw.cn,msdn.hk,xinhuanet.com##.gg1 +https://chinamedevice.cn,hgitv.com##.gg12 +https://skinme.cc,ts.cn,xinhuanet.com##.gg2 +https://angelweb.cn##.gg250x250 +https://ifeng.com##.gg298 +https://iqilu.com##.gg300250dbl +https://lcxw.cn,ts.cn##.gg4 +https://xiaoz.me##.gg5 +https://xizi.com##.gg500 +https://iqilu.com##.gg580140 +https://xiaoz.me##.gg6 +https://5184.com##.gg600 +https://zt5.com##.gg_1 +https://5173.com##.gg_130 +https://5ifxw.com##.gg_300250 +https://ruian.com##.gg_780 +https://ruian.com##.gg_960_t +https://163disk.com##.gg_990_65 +https://163disk.com##.gg_990_90 +https://515fa.com##.gg_ad01 +https://515fa.com##.gg_ad02 +https://wo256.com##.gg_area +https://codejie.net##.gg_banner +https://eeyy.com##.gg_bg +https://js0573.com##.gg_bnr +https://xiaopi.com##.gg_box +https://zt5.com##.gg_bt +https://comicat.org,kisssub.org##.gg_canvas +https://sinolub.com##.gg_cen +https://eastday.com##.gg_channel_r_b +https://55188.com,g138.com##.gg_head_l +https://55188.com,g138.com##.gg_head_m +https://55188.com,g138.com##.gg_head_r +https://acglala.com##.gg_img +https://china.cn##.gg_li +https://324324.cn##.gg_sidebar +https://doub.io##.gg_slider_comad +https://eeyy.com##.gg_top +https://cww.net.cn##.ggbar +https://baidu.com##.ggbtm-vip-close +https://55188.com##.ggdistich +https://chazidian.com##.ggin +https://eastday.com##.gglist +https://rising.cn##.ggqh +https://weather.com.cn##.ggt +https://taian.com##.ggtp +https://360doc.com##.ggwz +https://9dcj.com##.gif_left +https://douyu.com,douyutv.com##.giftbox +https://zhumengwl.com##.git_banner +https://anquan.org##.gj_download +https://witcp.com##.global_ifmobile_mask +https://tw.news.yahoo.com##.gn_sub_blue +https://news.sohu.com##.god-first +https://sohu.com##.god-main +https://sohu.com##.godR +https://taiwandaily.net##.gofollow[data-track] > img +https://eastday.com##.golden_adv_1 +https://eastday.com##.golden_adv_2 +https://awaker.cn##.good-price +https://mail.pchome.com.tw##.good_ad +https://techbang.com##.google-dfp +https://i-part.com.tw##.googleAD160x600 +https://cmhello.com##.gpost-above +https://iyaxin.com##.gr-ggtag +https://owyb1688.com##.gray-show +https://bioon.com##.grid_6 +https://ddooo.com##.gsbtn +https://yxdown.com##.gsdown +https://33lc.com##.gsdt +https://yxdown.com##.gsxz_ydw +https://putclub.com##.gtest +https://58.com##.guaguabox +https://97aa1.com,niu20.com##.guang4 +https://runningmanzx.com##.guangao +https://doub.io##.guangg +https://adreep.cn,baoliny.com,gasaq.com,hgitv.com,ifooday.cn,nen.com.cn,rznews.cn##.guanggao +https://cnlinfo.net##.guanggao-left +https://cnlinfo.net##.guanggao-right +https://hkwb.net##.guanggao2 +https://gasaq.com##.guanggao_ime_big +https://cnmo.com##.guanggao_type +https://shm.com.cn##.guanggaowei2 +https://shm.com.cn##.guanggaowei3 +https://downhot.com##.guans +https://guokr.com##.guokr-layer-beforelogin +https://halihali.me##.guolewan +https://eweiqi.com##.guoqing +https://codejie.net##.h--banner +https://codejie.net##.h-ad-banner +https://21cn.com##.h-gg +https://ting56.com##.h1000 +https://ting56.com##.h336 +https://hebei.com.cn##.h50px +https://mumayi.com##.h80 +https://jjwxc.net##.h8px + div[align="center"] +https://cnblogs.com##.h_ads +https://kekenet.com##.h_news_c +https://bkill.com##.half-ads +https://typecho.wiki##.haliluya +https://cam4.tw##.hbanner +https://mp4ba.la##.hd + table +https://ck101.com##.hd-bgimg +https://sogou.com##.hd-slider > .slider-container +https://1fzw.com##.hd-tops +https://youth.cn##.hd_pic +https://pinggu.org##.hdbanner +https://winning11cn.com##.hdc > div > div[align="center"] +https://ali213.net##.head-left +https://hkepc.com##.headBanner +https://weishangshijie.com##.head_0905 +https://jmw.com.cn##.head_1b +https://jmw.com.cn##.head_3 +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.head_middle > div[class]:first-child +https://zhiding.cn##.headads +https://biz.ifeng.com##.header +https://ieforex.com##.header > .left +https://i.maxthon.cn##.header-hotkeys +https://animewld.club##.header-img +https://8btc.com##.header-prices +https://uc123.com##.header-push-container +https://youivr.com##.header-widget-region +https://dragon-guide.net##.header6 +https://jiegeng.com##.header__item--fr +https://seehd.so##.header_wrap + .tac + table[align="center"] +https://aguitar.cn,guitarchina.com##.headerbanner +https://aguitar.cn##.headerbanner2 +https://ks.js.cn##.height200 +https://ks.js.cn##.height60 +https://ks.js.cn##.height70 +https://ks.js.cn##.height80 +https://hackhw.com,qqjia.com##.hengfuad +https://jpwind.com##.hf_tupian_gg +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.hgame_mod_theme1 +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.hgame_mod_theme2 +https://doupapa.com,dpp2019.com##.hidden-xs[class*="_"] +https://mahua.com##.hidden_ab +https://orsoon.com##.high-downs +https://douyu.com##.his-sign-cont +https://zp365.com##.hitADclass +https://jia360.com##.hjadv +https://hkgolden.com##.hkg-ad +https://4gamers.com.tw##.home-carousel-container +https://baike789.com,wuhaozhan.net##.home-list +https://baike789.com,wuhaozhan.net##.home-list-1987 +https://www.infoq.com##.home_banner +https://orsoon.com##.hongbao +https://wuhaozhan.net##.hongbao_hb +https://tieba.baidu.com##.hongbao_page_pop_common +https://duba.com##.hot-bottom +https://fanyi.baidu.com##.hot-link-middle +https://douyu.com,douyutv.com##.hot-sign-1 +https://douyu.com,douyutv.com##.hot-sign-2 +https://piaoliang.com##.hot990 +https://lenovo.com.cn##.hotAd +https://cnqiang.com##.hotBox +https://duba.com,uu114.cn##.hotTitle +https://itheat.com##.hot_ad +https://itavcn.com##.hot_dealerxin +https://duba.com##.hot_push > .hot_movie +https://jyacht.com##.hot_reoc_adve +https://bkjia.com,zol.com.cn##.hot_tj +https://703804.com##.hotad +https://sogou.com##.hotel-pic +https://sogou.com##.hotel_tit +https://sogou.com##.hotel_tj +https://ganji.com##.house-ads-img +https://bbs.hupu.com##.hp-ad250-250 +https://hupu.com##.hp-header-banner +https://tw.mall.yahoo.com##.hpad-wrapper +https://flyzy2005.com##.ht-notification-wrap +https://chinasmartgrid.com.cn##.ht60ad +https://epinv.com##.huadong > a +https://iyaxin.com##.huand3 +https://skinme.cc##.huodong +https://hupu.com##.hupu-shihuo-hot +https://hupu.com##.hupushihuo +https://warting.com##.hz2 +https://52pk.com##.hz_adv +https://99.com.cn##.hzh_botleft +https://xitongcheng.com##.hzj_adv +https://haodou.com##.i-ad +https://haodou.com##.i-adv250 +https://zjk169.net##.iContentLeft +https://zjk169.net##.iContentRight +https://tieba.baidu.com,wapp.baidu.com##.iSlider-wrapper-container-hot-thread +https://i.ifeng.com##.i_con[href^="http://dol.deliver.ifeng.com/"] +https://678cn.com##.ibtad +https://hao.360.cn##.icon-text-nav +https://easylife.tw,ettoday.net##.idleAd +https://haodou.com##.idx_ad_box +https://163.com##.idx_textlink_ad +https://163.com##.idx_tonglan_ad +https://163.com##.idx_top_ad +https://ifeng.com##.ifgBoxAdLis +https://gamer.com.tw##.iframe:last-child +https://xinhuanet.com##.iframeSrc + a[href^="http"]:not([href*=".xinhuanet."]) +https://aiyuke.com##.igamead +https://ifeng.com##.iggLine +https://outofmemory.cn##.iloveoutofmemory660 +https://ilxdh.com##.ilxdh-item +https://im286.net##.im286-t +https://masturbation22.com,playallvideos.com,pron.co,ratedxbiz.com,taporn.com##.ima +https://m.cnbeta.com##.image-container +https://douyu.com##.imageItem-wrap[href*=".cr-nielsen.com/"] +https://douyu.com##.imageItem-wrap[style="width: 1200px; height: 120px;"] +https://douyu.com##.imageItem-wrap[style="width: 287px; height: 559px;"] +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.images_game_container +https://5555op.com##.img +https://baidu.com##.img-adv-swap1 +https://zxdy777.com##.imgBox +https://fx678.com##.img_tips +https://znjj.tv##.imgadH +https://image.baidu.com##.imglist > .fcImgli +https://zzbaike.com##.imglistbg-ad +https://zzbaike.com##.imglistbg_ad +https://alexa.cn##.importantList +https://alexa.cn##.importantTop +https://admaimai.com##.in16_w01 > div[class*="_ad0"] +https://cngold.org##.in_content_left_advs +https://news18a.com,tom.com##.ina_ad_class +https://news18a.com##.ina_ad_left +https://hoteastday.com##.incentive +https://caixin.com##.incubator +https://qqyy.com##.ind_ad +https://faxingw.cn##.indadv1 +https://cndesign.com##.index-add +https://16fan.com,jianshen8.com##.index-banner +https://cyzone.cn##.index-content-ad +https://1avlang.com,avlang.com,avlang13.info##.index-info > .tac +https://kpd122.com,ssp28.pw##.index-owl-carousel +https://bilibili.com##.index-promote +https://pinggu.org##.index-somelinks +https://keke.la##.index-top-ad +https://keke.la##.index-wz-ad +https://zahuishi.com##.index950x90 +https://zahuishi.com##.index960x90 +https://ydss.cn##.indexAd +https://rfidworld.com.cn##.indexBanner +https://ithome.com##.indexV2 > div > a +https://hacpai.com##.index__ad +https://hqdoor.com##.index_ad2 +https://mitbbs.ca,mitbbs.com##.index_add +https://76xh.com##.index_advertising +https://76xh.com##.index_advertising02 +https://cqsq.com,jisuxz.com,jmnews.com.cn##.index_banner +https://shfq.com##.index_banner_ad +https://juxia.com##.index_bttg +https://hgitv.com,wo256.com##.index_gg +https://hgitv.com##.index_gg01 +https://cqsq.com##.index_main_gg +https://hgitv.com##.index_main_top_zhong_02 +https://hqdoor.com##.index_newad +https://jianshen114.com##.index_temp +https://163.com##.index_top_ad +https://ijia360.com##.indexad_1 +https://daohangtx.com,jojf.cn##.indexgg +https://chinairn.com##.industry +https://babyhome.com.tw##.info-span-03 +https://itjsb.com##.info_ad +https://wasu.cn##.info_ads +https://ylfx.com##.info_logrt +https://82tu.cc##.infoad +https://chinabidding.com.cn##.innovate + .layer +https://baidu.com##.intro-adv +https://people.com.cn##.ipc_none +https://iqshw.com##.iqshwad-comm +https://henan100.com##.itad +https://carrotchou.blog##.item > a[href^="http"]:not([href*=".carrotchou."]) +https://baike789.com,dysfz.tv,dysfz.vip,wuhaozhan.net##.item-fifth-dl +https://haxiu.com##.item-inner-graph +https://zol.com.cn##.item-sale +https://gansudaily.com.cn##.itemFloat +https://cnbeta.com##.items_area .time +https://pconline.com.cn##.ivy > .ivy-wrap +https://pconline.com.cn##.ivy > a +https://pcauto.com.cn##.ivy-250 +https://sina.cn##.j_article_cutpic +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_banner_post +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_click_stats[href*="adn.baidu.com"] +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_couplet +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_df_card +https://tieba.baidu.com##.j_feed_li[fid="3665221"] +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_l_post:not([data-field]) +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_l_post[data-field*="\"user_name\":\"\\u4e3f\\u5929\\u4e36\\u4e4b\\u6b87\""]:not([data-field*="\"user_id\":1180601200,"]) +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_listLiveTvCnt +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_listLiveTvCnt + .listBtnCnt + #listTalkCnt +https://tieba.baidu.com##.j_post_list_item[data-info^="\7b \"un\":\"\\u623f\\u4ea7\\u5c0f\\u7ad9\\u957f\""] +https://tieba.baidu.com##.j_post_list_item[data-info^="\7b \"un\":\"\\u623f\\u4ea7\\u5feb\\u8baf\\u5927\\u7ba1\\u5bb6\""] +https://tieba.baidu.com##.j_post_list_item[data-info^="\7b \"un\":\"\\u623f\\u4ea7\\u901f\\u8baf\""] +https://tieba.baidu.com##.j_post_list_item[data-info^="\7b \"un\":\"\\u8d34\\u5427\\u89e6\\u70b9\\u63a8\\u5e7f\""] +https://huya.com##.j_posterItem[href^="http"]:not([href*=".huya."]) +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_thread_list[data-field^="\7b \"id\":4419048726,"] +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_thread_list[data-field^="\7b \"id\":4756933479,"] +https://jstv.com##.jadv +https://jbtalks.cc,jbtalks.com##.jbt-ad-region +https://ifeng.com##.jcsp +https://jin10.com##.jin-declaration[class*="_b"] +https://jin10.com##.jin-declaration[class*="_h"] +https://jin10.com##.jin-jgg +https://jin10.com##.jin-jgg_d +https://jin10.com##.jin-jgg_j +https://jin10.com##.jin-showbox +https://jin10.com##.jin-wdgg +https://jin10.com##.jin-wdgg + .jin-timeline +https://jin10.com##.jin-wdgg_h +https://oschina.net##.jj +https://eastmoney.com##.jjph_important +https://soyunpan.com##.jmwb +https://haha.mx##.joke-list-anecdote +https://ifeng.com##.jp_list +https://juqingba.cn##.jqright1 +https://jrj.com.cn##.jrj-ad +https://zhanqi.tv##.js-activity-show +https://sogou.com##.js-ad-item +https://hqew.com##.js-ad-tips +https://cs.com.cn##.js-ad1 +https://360kan.com##.js-playicon[href*="wan.360.cn/"] +https://so.com##.js-show-data +https://netbardh.com##.js-static[data-position="3.3"] +https://yahoo.com##.js-stream-content > div > div > div > h3 > a[href^="https://hk.promotions."] +https://hk.yahoo.com##.js-stream-content[style="background-color:#fafaff;"] +https://ifeng.com##.js_url[href^="http://dol.deliver."] +https://jxedt.com##.jxpl +https://fx168.com##.jy_fx168_gjs_content_Right_advise +https://fx168.com##.jy_fx168_zixun_right_ad2 +https://csai.cn##.keifu +https://iqilu.com##.kejie_ad +https://v.ifeng.com##.keyword +https://99tianji.com##.kf1 +https://1kkk.com##.kk2.cc +https://0597kk.com##.kk_ad +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.kn_nine_wrap +https://fznews.com.cn##.kuang100_right +https://lanyes.org##.kuanpin +https://chinaz.com##.kwLink +https://baidu.com##.l-header-ad +https://jin10.com##.l-main > div > .jin-timeline +https://jin10.com##.l-main > div > div[class^="jin-"] > .jin-timeline > div[class^="jin-1"] +https://jin10.com##.l-main_body > .jin-timeline > div[class*=" "] +https://www.jin10.com##.l-main_body > div[class]:not(.jin-timeline) +https://jin10.com##.l-main_body ~ .jin-timeline +https://www.jin10.com##.l-main_info > div[class]:not(.jin-declaration):not(.jin-qq-cooperation) +https://jin10.com##.l-main_wrap > .jin-timeline > div:not(.jin-declaration):not(.jin-qq-cooperation) +https://9vip.top,ahtv.cn,bzfl1.cc,sexbarss.net##.l1 +https://ltaaa.com##.lAds +https://chinatimes.com##.l_ad +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.l_banner +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.l_post + div[class]:not(.l_post) +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.l_post[data-field^="\7b \"author\":\7b \"user_id\":1224761005,"] +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.l_post[data-field^="\7b \"author\":\7b \"user_id\":1480174042,"] +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.l_post[data-field^="\7b \"author\":\7b \"user_id\":1480194257,"] +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.l_post[data-field^="\7b \"author\":\7b \"user_id\":1990070693,"] +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.l_post[data-field^="\7b \"author\":\7b \"user_id\":50012654,"] +https://flight.qunar.com##.l_rside > .b_fly_ban_b:nth-child(2) +https://3jy.com,maolihui.com##.lad +https://1kkk.com##.lanrenzhijia +https://ithome.com##.lapin +https://bh.sb##.large +https://le.com##.lay_body[style^="width:490px;height:320px;"] +https://le.com##.lay_body[style^="width:980px;height:100px;"] +https://le.com##.lay_body[style^="width:980px;height:90px;"] +https://le.com##.lay_title[style^="width:490px;height:60px;"] +https://firefoxchina.cn##.layout > .banner +https://52solution.com##.layout-top-ads +https://szonline.net##.layout_ad +https://gkstk.com##.layui-layer +https://gkstk.com##.layui-layer-shade +https://hz66.com##.lb_gg +https://finance.ifeng.com##.lccs +https://p4yy.com##.leaveNavInfo +https://txtbook.com.cn##.ledu-advWrap +https://pqworld.com##.left-float +https://pqworld.com##.left-float-tx +https://wanqu.co##.left-nav-panel:first-child +https://eastday.com##.left-suspension +https://bejson.com##.left.validate + div +https://cnbeta.com##.left300 +https://newxue.com##.left336280 +https://haxiu.com##.left_a2_04 +https://e2mv.com##.left_advert +https://yxlady.com##.left_bottom_gg3 +https://lz13.cn##.left_box3 +https://lz13.cn##.left_box4 +https://lz13.cn##.left_box5 +https://chinacar.com.cn##.left_pouple_box +https://boniu.xyz,boniu666.co##.left_side +https://duba.com##.left_slidebar_con +https://bt.cn##.left_wrap:nth-child(3) +https://hkwb.net##.leftadv2 +https://hao123.com##.leftbanner +https://muzhi.baidu.com##.leftnest +https://ifeng.com##.leftpopad +https://zimuku.cn##.li[style^="width:8"] +https://5118.com##.lianmeng-home-header +https://china.cn##.lianmeng_div +https://lywww.com##.lianmengclass +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.life_helper +https://lenovo.com.cn##.link-ad +https://xiaoyun.com##.link-ads +https://baidu.com##.link-banner +https://guahao.com##.link-modal +https://huanqiu.com##.link[href^="https://kdt.im/"] +https://dl.pconline.com.cn##.links > p:not([class]) +https://duote.com##.links-banner +https://linux.cn##.linuxcnad +https://igxe.cn##.lion-flexd +https://ddooo.com##.list > li:nth-child(-n+5) +https://iciba.com##.list-item > a[href^="http"]:not([href*=".iciba."]) +https://iciba.com##.list-item > a[href^="http"]:not([href*=".iciba."]) + .list-title +https://news.ifeng.com##.list022 +https://niutuku.com##.listAD +https://eol.cn##.listAd +https://hljtv.com##.listAd1 +https://cheers.com.tw##.listTxt.news +https://nick18.com,niko18.com##.list_ads +https://en8848.com.cn##.list_adv +https://rsdown.cn##.list_lg +https://qunar.com##.list_promotion_bar +https://uimaker.com##.listads +https://58.com##.listpage_detail +https://huaren.tv##.live-client_left +https://huaren.tv##.live-client_right +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.live_show_aside +https://ifeng.com##.ljPop +https://hao123.cn##.llc +https://china.cn##.lm_div +https://tianya.cn##.load_m_top +https://9ifz.cc##.logbtad +https://ypppt.com##.login_panel +https://uc123.com##.logo > a +https://wdzj.com##.logo-banner +https://fashionguide.com.tw##.logo_ad +https://jjxw.cn##.logo_ad_r +https://chinamedevice.cn##.logo_ads +https://silver.org.cn##.logo_dsaas +https://qinbing.cn##.logo_right +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.lot_wrap +https://sohu.com##.lottery-box +https://kekenet.com##.lp_r_bar:first-child +https://jrj.com.cn##.ls_all_fc +https://ytbbs.com##.lt_ad +https://ltesting.net##.ltad_1170 +https://ltesting.net##.ltad_580 +https://luanren.com##.luanren_dbhfad +https://luanren.com##.luanren_dbhfad2 +https://zhainanfulishe.com##.lunboceng +https://rising.cn##.lvmama +https://0597kk.com##.lyhux_mu +https://123.sogou.com##.m-12[pbflag="guess"] +https://pconline.com.cn##.m-JCZ-scrollBlock +https://jx3pve.com##.m-banner-tool +https://moe123.net##.m-inner2[style="height: 160px;"] +https://uc123.com##.m-link +https://sina.com.cn##.m-p1-lb1-ad +https://sina.com.cn##.m-p3-ad +https://finance.sina.com.cn##.m-s-tab + div +https://foodmate.net##.m[style="height:40px;"] +https://myexception.cn##.m_a +https://lgn.yy.com##.m_left +https://163.com##.m_papa +https://hupu.com##.m_text_ad +https://8bo.com##.mad +https://zhicheng.com##.mad_bt +https://zhicheng.com##.mad_top +https://163disk.com##.mads +https://hupu.com##.maibghref +https://th7.cn##.main > .mb5 +https://firefox.com.cn,firefoxchina.cn##.main-huo +https://firefox.com.cn,firefoxchina.cn##.main-promote-sites +https://firefoxchina.cn##.main-promote-tmall +https://news.hf365.com##.main-r > div:first-child +https://51credit.com##.main-r-ka +https://expreview.com##.main-side-tao +https://vuejs.org##.main-sponsor +https://nxing.cn##.main:nth-child(-n+6) +https://businessweekly.com.tw##.mainR_content:nth-child(5) +https://greatwuyi.com##.main_9788 +https://greatwuyi.com##.main_ad2 +https://tvmost.com.hk##.main_ad_b +https://hongfen.org##.main_adser +https://cnbeta.com##.main_content_left > .mt5[style="text-align:center;"] +https://m.07073.com##.main_content_tit + div +https://tianya.cn##.main_xiangguan2 +https://qqjia.com##.mainad +https://2345.com##.mainbg +https://2345.com##.mainbg1 +https://bbs.fobshanghai.com##.maintable > div:nth-child(7) +https://iguang.tw##.mall +https://baidu.com##.manual-spread +https://zhainanba.org##.marauto > p[style="text-align: left;"] +https://fun48.com##.margin-big-bottom +https://fx110.com##.matrix-banner +https://oschina.net##.mayun-jj +https://itavcn.com##.mb_right > .mt8:nth-child(3) +https://265g.com##.mban +https://sciencenet.cn##.mbanner +https://hao.360.cn,hao.360.com##.mbar-bd +https://douguo.com##.mbs +https://2345.com##.mco-ex-ndxh +https://zhaiiker.com##.media-content[style*="0x"] +https://cnool.net##.meilai_box +https://zimuzu.tv##.menu-box > .w > li > a[style="color:red;"] +https://cnbeta.com##.meta > .fr +https://cangku.in,galacg.me,llss.li,usnewsexpress.com##.metaslider +https://hexieshe.com,hexieshe.xyz,xxshe.info##.mh-sidebar img +https://hexieshe.com,hexieshe.xyz,xxshe.info,xxshe.xyz##.mh-widget > .textwidget > p > a[href^="http"]:not([href*="she."]):first-child:last-child +https://baby-kingdom.com##.mian + .foot > .foot-top:first-child +https://midifan.com##.mid-aaa +https://rj.baidu.com##.mid-recommend +https://360-bo.com##.middiv > div[style="text-align:center;"] +https://letv.com##.middle-advert +https://timedg.com##.middleCrossAdvertise +https://jmbbs.com##.middle_guanggao +https://fenghuo.in##.mimi +https://6.cn##.min-ad-box +https://cnr.cn,jxcn.cn##.min-news-box +https://nowcoder.com##.mini-banner +https://goldlegend.com##.mjad +https://hmog.me##.ml_ad_widget +https://cnforex.com##.mleft > a +https://china.com##.mm +https://6789.com##.mm-force +https://fqlook.com##.mmver +https://playno1.com##.mn > div[style="margin-bottom:10px;"] +https://mail.pchome.com.tw##.mnav +https://mnw.cn##.mnw_685 +https://mnw.cn##.mnw_960 +https://mnw.cn##.mnw_top_ads +https://sogou.com##.mobad +https://1905.com##.mobile_ad_promote +https://www.sina.com.cn##.mod-01 +https://image.baidu.com##.mod-promo +https://sdo.com##.mod-public-ads +https://17173.com##.mod-tg1 +https://2345.com,hao774.com##.mod-txtred +https://pptv.com##.mod_960x90 +https://163.com##.mod_ad_r +https://163.com##.mod_ad_toutu +https://pianyuan.net,qixingquan.com##.modal-backdrop +https://xunyingwang.com##.modal-body +https://firefoxchina.cn##.module-banner +https://i.maxthon.cn##.module.tools-main[data-s-n="bottom"] +https://html-js.com##.module[style="padding:0;"] +https://moonbt.com##.money_all +https://autohome.com.cn##.monkey_box +https://autohome.com.cn##.monkey_box_big +https://autohome.com.cn##.monkeyicon-br +https://xbooks.to##.movie-in-ad +https://hao123.com##.mp-app-ad +https://jmw.com.cn##.mr_1 +https://firefoxchina.cn##.mrec-banner +https://xici.net##.msgl_ad +https://66rd.cn##.mst_lamu_main +https://9669.cn##.mt10[style="height:260px;"] +https://dnwx.com##.mt5_23 +https://newcger.com##.mtb17.h90 +https://meltoday.com,sydneytoday.com##.mtgad +https://90oo.com##.mtswp_scbar_ad +https://stockstar.com##.much_ad +https://techug.com##.mug +https://pixiv.net##.multi-ads-area +https://cqsq.com##.mumucms_index_tlad +https://china.com##.mxm +https://cngold.com.cn##.myGuangGao +https://cnblogs.com##.my_money +https://cosxcos.xyz##.myakbz +https://acglover.me##.myas +https://myday.com.tw##.myday_ad_950 +https://myday.com.tw##.myday_ad_left +https://myday.com.tw##.myday_ad_right +https://sydneytoday.com##.mygad +https://abcsee.net##.myset +https://ifooday.cn##.myzs +https://2345.com,hao774.com##.mzdh_bottom +https://hepuwang.com##.n5_dbhfad > .wapper +https://123cha.com##.n_ads_box +https://123cha.com##.n_ads_box + .box > .tbl > tbody > tr:last-child > td[bgcolor="#eeeeee"][width="350"]:last-child +https://moyu16.com##.nav-banner +https://maplestage.com##.nav-left-module__info-wrapper___35CLR +https://youxiduo.com##.navAd +https://lenovo.com.cn##.nav_ad1 +https://lenovo.com.cn##.nav_ad2 +https://baidu.com##.nav_ads +https://cctime.com##.nav_banner +https://e10000.cn##.navigate_sty + div +https://hao123.com##.navrecommend-hjw +https://hao123.com##.navrecommend-top +https://tpy888.cn##.nead +https://guidaye.com##.neirongs +https://rising.cn##.new-1111 +https://zhanqi.tv##.new-advertising-area +https://yes-news.com##.new-index-ad300 +https://yes-news.com##.new-index-main-728 +https://yes-news.com##.new-index-main-ysm +https://yes-news.com##.new-sidebar-today-300ad +https://i-part.com.tw##.newAd +https://ifeng.com##.newAdImg +https://steelcn.cn##.new_fixed +https://halidown.com##.new_head_ad +https://doub.io##.new_zixun +https://zhicheng.com,zt5.com##.newa +https://zhicheng.com##.newa2 +https://uimaker.com##.newbaidu +https://ali213.net##.newright +https://sydneytoday.com##.news-list > .row > .col-xs-12 +https://eastday.com##.news-promote +https://kaifu.com##.news-t-adv +https://2345.com##.newsArea +https://chinaz.com##.newsMainBox-textad +https://afzhan.com##.newsRightAdv +https://ifeng.com##.news_ADbox +https://m.baidu.com##.news_ad +https://weishangshijie.com##.news_ads1200 +https://weishangshijie.com##.news_ads_1028 +https://jia360.com##.news_adv:nth-child(3) +https://aguitar.cn##.news_b +https://zhcw.com##.news_blanck +https://auto-online.com.tw##.news_content > div[style="width:728px;margin:10px auto"] +https://oschina.net##.news_detai_above_ad +https://mydrivers.com##.news_left > div[style*="height:"] +https://07073.com##.news_list1_tu +https://chinamedevice.cn##.news_ylqx +https://chinamedevice.cn##.news_ylqx3 +https://qihoo.com##.newsitem[data-rawurl*=".youcai8888.com/"] +https://mitbbs.ca,mitbbs.com##.newskuang2 +https://gamersky.com##.ngg_down +https://chongdiantou.com##.nice-sales +https://weishangshijie.com##.nleft_ads +https://dyhjw.com##.nn_link +https://wallstreetcn.com##.node-main-ad +https://admin5.com##.notice +https://yes-news.com##.notification +https://haoxxoo.com##.nrad1 +https://haoxxoo.com##.nrad2 +https://szhk.com##.ny_ad1 +https://wallstreetcn.com##.omg-container +https://10jqka.com.cn,hepan.com##.onead +https://duba.com##.oneone-search +https://bilibili.com##.online + .adpos +https://pgzhibo.com##.onlineqq +https://pgzhibo.com##.onlineqq_left +https://udn.com##.only_web > .DisplayVideo +https://ifeng.com##.opcPop_tit_zz +https://wdzj.com##.opentb +https://read.qidian.com##.operation-wrap +https://baidu.com##.optimus +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.order_repost_wrap +https://jdwx.info,motobuy.com.tw##.other +https://6parknews.com##.other_list_ad +https://cnbeta.com##.other_news +https://wenxuecity.com##.otherposts +https://jjxw.cn##.ou_banner +https://bbs.my0511.com##.outertxt > tbody > tr > td[height="80"][align="right"] +https://dilidili.wang##.overflow-box > ul > li > a[href^="http"]:not([href*=".dilidili."]) +https://avsuggest.com##.overlay +https://udn.com##.overlay-container +https://lalulalu.com##.overture_banner +https://allhabit.com##.overture_forumlist +https://allhabit.com##.overture_threadlist +https://allhabit.com##.overture_threadlist_single +https://allhabit.com##.overture_top_banner +https://appledaily.com.tw##.owl-lazy[tcode^="AD:"] +https://sgcn.com##.oyad2.cl +https://quanmin.tv##.p-room_ad +https://quanmin.tv##.p-room_chatad +https://quanmin.tv##.p-star_adWrap +https://opticsky.cn##.p83_gridC > .cc +https://webkaka.com##.pNavigateAd +https://webkaka.com##.pTopTextAd +https://jj59.com##.p_ad +https://25xz.com##.p_ads +https://actoys.net##.p_new_ad +https://sina.cn##.p_newsmore +https://actoys.net##.p_top_ad +https://baidu.com,cssmoban.com##.page-banner +https://contents.internet.apps.samsung.com##.page-bar +https://xizi.com##.pageAD1 +https://cngold.org##.pageAdv +https://baidu.com##.pageLeftFixedAD +https://ifeng.com##.pao_ad_02 +https://ifeng.com##.pao_ad_03 +https://ifeng.com##.pao_mid +https://ifeng.com##.pao_mid_02 +https://xinhuanet.com##.part-ad1 +https://www.sina.com.cn##.part-l +https://bbs.52life.cc##.part1 +https://cpnn.com.cn##.part3-adverd +https://sina.com##.parta_l_ads +https://javdove.com,javdove2.club##.partialViewSlider-outerwrapper +https://heiguang.com##.pbAddPic +https://kikinote.net##.pc_ad +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.per_list.j_per_list.per_list_frs +https://52solution.com##.pf-outbox +https://265g.com##.phone_bgban +https://sodao.com##.photo-see > div[style="text-align: center; margin-bottom: 10px;"] +https://caikuu.com##.photo_abv +https://jrj.com.cn##.piboxtwo +https://tv.52pili.com##.pic-box +https://ifeng.com##.pic1000 +https://ifeng.com##.pic280 +https://ifeng.com##.pic300 +https://ifeng.com##.pic950 +https://down.ali213.net,patch.ali213.net##.picBg +https://ifeng.com##.picNews +https://dealmoon.com,weibo.com##.pic_ad +https://ctrip.com##.pic_banner +https://gmw.cn##.pic_list_bd750 +https://chinaiiss.com##.pic_text +https://moxing.net##.pic_txt_list +https://baidu.com##.picad +https://16sucai.com##.pindao_ad2 +https://keywin.org##.pindaolist +https://creaders.net##.pinglun > .btmlist-title +https://chinaz.com##.plate-layout +https://baofeng.com##.play-ads +https://news.ifeng.com##.play_center +https://kaifu.com##.play_fmt +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.play_list_panel +https://ifeng.com##.playad +https://gimy.tv##.playadbox +https://league-funny.com##.player_bb +https://sgamer.com##.plc > div > a[href*=".vgcool.com"] +https://moonbbs.com##.plc.plm > div > div > a[href*=".dealmoon.com"] +https://firefox.com.cn,firefoxchina.cn##.pm-crack +https://www.17173.com##.pn-tg +https://19lou.com##.pop-ad +https://hqew.com##.pop-banner +https://pconline.com.cn##.pop-huodong +https://sogou.com##.pop-tuiguang +https://av.movie##.pop-up-a +https://chengdu.cn##.pop_box +https://zhan.com##.pop_shousuo +https://ifeng.com##.popoxiu_topic +https://dzwww.com##.popular +https://qiuziti.com##.popularize +https://eol.cn,hao123.com##.popup +https://easylife.tw,ez3c.tw##.popup_bottom_block +https://camerabay.tv##.popupad +https://pzzc.net##.portal_block_summary +https://tgfcer.com##.portalbox +https://ilxdh.com##.pos-nav +https://netbardh.com##.pos-navbar-ad +https://jobbole.com##.post > .textwidget +https://vmovier.com##.post-ad-bottom +https://jobbole.com##.post-adds + .textwidget +https://css88.com##.post-bottom +https://sanv.org##.post-left +https://vmovier.com##.post-right-item + a[target="_blank"] +https://ihacksoft.com##.post-top-gg +https://163.com##.post_adtop_main +https://gamme.com.tw##.post_adwrpt +https://tieba.baidu.com##.post_client_down +https://phpvar.com##.post_content_linkad +https://163.com##.post_recommend_ad +https://blog.163.com##.postadlayer +https://baixing.com##.poster-info-container + .side-block +https://bbs.51cto.com##.postinfo06a +https://zhujiboke.com##.posts-top-cjtz +https://ifxtx.com##.ppsy_content758 +https://7hcn.com##.pr > a[href^="http"]:not([href^="http://www.7hcn."]) +https://javdove.com,javdove2.club##.preroll-adv-popup-overlay +https://pcstore.com.tw##.priority +https://pcstore.com.tw##.priority1 +https://pcstore.com.tw##.priority_ad +https://duba.com##.pro_r_t +https://meltoday.com,sydneytoday.com##.promo +https://brtn.cn,btime.com##.promo-item > a[href^="http"]:not([href*=".b"]) +https://huaban.com##.promotion +https://anquan.org##.pub_side_ad +https://fwxgx.com##.public-link > a[href^="http"]:not([href*=".fwxgx."]) +https://doudoudm.com##.public_ad +https://ifeng.com##.pullClient +https://cnplugins.com##.pushbox1 +https://sogou.com##.pz-widget-flash-container +https://baidu.com##.qb-other-answer-wmad +https://baobao.baidu.com##.qb-relate-box +https://qidian.com##.qd-game +https://or123.top##.qfe_wrapper > div > a[href^="http"]:not([href*="or123."]) +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.qipai_thread +https://seqing.world,singlove.com,whichav.com,whichav.net,wokao.co##.qq +https://zixuekaoshi.net##.qq_nr_lad +https://htcui.com##.qqanimate +https://baidu.com##.quality-elinks +https://ifeng.com##.qudaoTg +https://muzhi.baidu.com##.quick-ask-2 + .android + div +https://hualongxiang.com##.quick_reply_ad +https://im286.net##.qybj +https://ouyaoxiazai.com##.qzhengfu +https://ali213.net##.qztf +https://9vip.top,ahtv.cn,bzfl1.cc,sexbarss.net##.r1 +https://biz.zjol.com.cn##.rBlok1[style=" margin-bottom:10px;"] +https://7hcn.com##.rCont +https://xitongcheng.com##.r_adv +https://douni.com##.rad_1 +https://mydigit.cn##.radi +https://ananvod.com##.rbPicAll +https://sciencenet.cn##.rbanner +https://818today.com##.rbdyg +https://yuqingcn.cn##.rboxad +https://msn.cn##.rc > a[href^="https://sp.booking.com/"] +https://xvna.com##.rctad +https://xmfish.com##.readCon_right +https://wenku.baidu.com##.reader-to-cashier-vip > .rights-wrap +https://sina.com.cn##.real-time-window__ad +https://finance.ifeng.com##.rec +https://baidu.com##.rec-feeditem +https://douban.com##.rec_topics_name[href^="https://erebor.douban."] +https://image.baidu.com##.recom +https://ilxdh.com,image.baidu.com,xizi.com##.recommend +https://csdn.net##.recommend-ad-box +https://0597kk.com##.recommend-container +https://tvsou.com##.recommend-img +https://csdn.net##.recommend-item-box[data-track-click*="http"]:not([data-track-click*=".csdn."]) +https://iciba.com##.recommend-item:not([href*=".iciba."]) +https://hao123.com##.recommend-link +https://le.com##.recommend-part-right +https://china.cn##.recommend_RightShow +https://china.cn##.recommend_box +https://china.cn##.recommend_video +https://72g.com##.recommended +https://passiontimes.hk##.rectAd680 +https://chinaz.com##.red[href*=".wsisp.net/"] +https://guba.eastmoney.com##.redian +https://gg-led.com##.regg +https://e-learn.cn##.region-sidebar-second > .block:nth-child(2) +https://w3cplus.com##.region-sidebar-second > :nth-last-child(n+3) +https://xueqiu.com##.regist-guide-container +https://mop.com##.rel-item-gg +https://pconline.com.cn##.rela-best +https://mbd.baidu.com##.related-news > section:first-child + div +https://ithome.com##.related_buy +https://tiexue.net##.reloadCont > div:first-child +https://hoteastday.com##.reloadMedia1 +https://tbtdg.com##.reveal-modal-bg +https://rfidworld.com.cn##.rfidADClass +https://fuliba.net##.right-banner +https://image.baidu.com##.right-banner-area +https://to8to.com##.right-float-ad +https://csdn.net##.right-item[data-track-click*="http"]:not([data-track-click*=".csdn."]) +https://123.chinaso.com##.right-list6 +https://qidian.com##.right-op-wrap +https://eastday.com##.right-suspension +https://news.ifeng.com##.right1 +https://baby-kingdom.com##.right5 +https://baidu.com##.rightAd-skin +https://fullyu.com##.rightSide-top-ads +https://hao123.com##.rightTip +https://niotv.com##.right_ad1 +https://eastday.com##.right_adv_1 +https://eastday.com##.right_adv_2 +https://eastday.com##.right_adv_3 +https://cztv.com##.right_box +https://qqyy.com##.right_dcotor_tab +https://sznews.com##.right_flash +https://ifeng.com##.right_gg +https://mtrend.cn##.right_hongbao_xuanfu +https://gucheng.com##.right_info +https://lahoo.ca##.right_multi_banner +https://163.com##.right_originalcolumn_ad +https://china.cn##.right_shop_box +https://boniu.xyz,boniu666.co##.right_side +https://dilidili.wang##.right_top_ad +https://hkwb.net##.rightadv2 +https://mail.sina.com.cn##.rightbottom +https://tingvoa.com##.rightgood +https://muzhi.baidu.com##.rightnest +https://portablesoft.org##.rightside > :nth-child(n+2) +https://biz.ifeng.com##.riodel +https://ithome.com##.rm-modal-bg +https://ithome.com##.rm-modal-body +https://playallvideos.com,pron.co##.rmedia +https://allyingshi.com,zimuzu.tv##.room +https://douyu.com,douyutv.com##.row-4.theatre +https://jia360.com##.row-ad01 +https://douyu.com,douyutv.com##.row.row-3 +https://howfile.com##.row1_right +https://dalao.ru##.row:nth-child(11) +https://honglingjin.co.uk##.rsads +https://ld0766.com##.rsf_pull_screen_adv +https://zj.com##.rt-banner +https://jjxw.cn##.ru_banner +https://codejie.net##.s-ad-tit-box +https://uc123.com##.s-left +https://baidu.com##.s-news-special[data-url^="http://vip.baidu.com/"] +https://uc123.com##.s-right +https://2345.com##.s11-fixNav +https://2345.com##.s11-logowall +https://2345.com##.s11-side +https://duba.com##.s11_store_box +https://duba.com##.s11_zb +https://114la.com##.s11bg +https://tbtdg.com##.s11text +https://2345.com##.s12-fullNav +https://wenda.tianya.cn##.s1Tit + .sideBox +https://cnstock.com##.sBox-left +https://cnstock.com##.sBox-right +https://finance.ifeng.com##.sConRbox +https://laozuo.org##.s_ad125 +https://baidu.com##.sam_iebrowser_banner +https://image.baidu.com##.sample0 +https://image.baidu.com##.sample1 +https://image.baidu.com##.sample2 +https://ithome.com##.sb_list > .bx +https://1010jiajiao.com##.sbox +https://image.so.com##.sc-similarcm +https://hao123.com##.sc-tips +https://mail.pchome.com.tw##.sceng +https://wps.cn##.school +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.score_ecr_wrapper +https://epinv.com##.scrollep +https://firefox.com.cn,firefoxchina.cn##.sd-promote +https://playno1.com##.sd.pph +https://yeeyi.com##.sd.pph > .mbm.hm +https://xianzhenyuan.cn##.sd_ad:not(#xztba) +https://pediy.com##.search +https://baidu.com##.search-aside-adWrap +https://map.baidu.com##.search-item[data-stat-code="poisearch.damoce.item"] +https://rising.cn##.search-news1 +https://hao.rising.cn##.search-right +https://dict.cn##.search-right-ad5 +https://dict.cn##.search-right-ad7 +https://duba.com,timeon.cn##.search_promotion +https://ijia360.com##.search_radlist +https://qiuziti.com##.search_wordimg +https://cnool.net##.second-banner +https://www.sina.com.cn##.secondtj-wrapper +https://coolinet.com##.section-banner +https://tiboo.cn##.sectionAd +https://romzj.com##.sectionThree +https://brtn.cn,btime.com##.seed-item +https://oxxvideos.xyz##.self-gg +https://zealer.com##.series_app +https://wenku.baidu.com##.service-entry +https://jq-school.com##.setfarme:nth-child(7) +https://4399.com##.setlide a[href^="http"]:not([href*=".4399."]) +https://baidu.com##.sf-wrap > .c-back + div[id]:last-child +https://zhicheng.com##.sf_1 +https://baidu.com##.sfc-image-content-adrootnew +https://baidu.com##.sfc-image-content-adtext +https://baidu.com##.sfc-image-content-waterfall-item > div:not([class]) > .sfc-image-content-cell +https://wbzol.com##.sg +https://ottawazine.com##.sgpb-popup-overlay +https://pcsoft.com.cn##.shang11-top +https://m.mydrivers.com##.share +https://xilu.com##.shehuibanner +https://hao.rising.cn##.shop-site +https://teepr.com##.shop-widget +https://china.cn##.shop_box +https://gq.com.tw##.shopslide +https://qiushibaike.com##.shopwindow +https://neonan.com##.shouhuan_ad +https://miercn.com##.show-img-box +https://200sht.info,sehuatang.org##.show-text +https://zahuishi.com##.show2960x90 +https://cnxz.cn##.showad +https://3987.com##.showdown > .mt20:first-child +https://91lai.com##.showimgs +https://uwants.com##.showpx1 +https://pcsoft.com.cn##.shuang11 +https://duanwenxue.com##.shuang11_gg +https://duanwenxue.com##.shuang11_mb +https://aohua.com.au##.sidBoxNoborder +https://showtv.com.tw##.side-AD +https://laifudao.com##.side-adinner +https://guokr.com##.side-adv +https://ruten.com.tw##.side-advertise +https://iwan.baidu.com##.side-banner +https://rs05.com##.side-bar-first +https://uc123.com##.side-hot +https://wallstreetcn.com##.side-money +https://firefox.com.cn,firefoxchina.cn##.side-notice +https://firefoxchina.cn##.side-promote +https://firefoxchina.cn##.side-recommend +https://smzdm.com##.side-stuff +https://firefoxchina.cn##.side-tool-outer > div[class]:first-child +https://firefoxchina.cn##.side-tpth +https://niutuku.com##.sideAD +https://youthwant.com.tw##.side_adbox +https://shuowan.com##.side_flash +https://duba.com##.side_game +https://duba.com##.side_other > .img +https://duba.com##.side_taobao +https://uu114.cn##.side_top_banner +https://hmog.me##.side_widget:last-child +https://cjn.cn##.sidebar +https://zol.com.cn##.sidebar > .n1-pad-entrance-wrap +https://pupudy.com##.sidebar > .widget-textasst:nth-child(n+3) +https://wn789.com##.sidebar > .widget:not(:first-child):not(.widget_ui_posts) +https://jianshen8.com##.sidebar > a +https://fulibus.net##.sidebar > div:first-child +https://xiaoz.me,xingkbjm.com##.sidebar a > img +https://superlife.ca##.sidebar-ad-zone +https://cyhour.com##.sidebar-all +https://juejin.im##.sidebar-bd-entry +https://portablesoft.org##.sidebar-box +https://cnblogs.com##.sidebar-image +https://mywpku.com##.sidebar-recommended +https://daweijita.com##.sidebar-right > .widget-box:first-child +https://cangku.in,galacg.me##.sidebar-top +https://52tian.net##.sidebar960 +https://steachs.com##.sidebar:first-child +https://bestcbooks.com##.sidebar:last-child +https://kocpc.com.tw##.sidebar:nth-child(2) +https://kocpc.com.tw##.sidebar:nth-child(3) +https://pic.sogou.com##.sidebar_box.shut +https://v2ex.com##.sidebar_compliance +https://v2ex.com##.sidebar_units +https://fsdpp.cn##.sidebox > a > img +https://uraban.me##.sider > a +https://docin.com##.sider_gg +https://youtaoqi.com##.sidetg +https://mopxing.com##.sideul1 +https://sina.com.cn##.sinaads +https://uuu9.com##.sindex_ad1 +https://2000fun.com##.single-box +https://fujieace.com##.single-goods +https://kocpc.com.tw##.single_ads +https://i.maxthon.cn##.site-ad-container +https://stockstar.com##.siteAd_l +https://stockstar.com##.siteAd_r +https://icoc.cc,icoc.in##.siteAdvertisement_box +https://hdchina.org##.sitead +https://uimaker.com##.siteads +https://findprice.com.tw##.sitemajiad +https://hao123.com##.siye +https://iask.sina.com.cn##.sj_300x250 +https://iask.sina.com.cn##.sj_680x250 +https://fuli.us##.slick +https://baidu.com##.slide-bner-adv-ret +https://ksbbs.com,kshot.com##.slideAdvert +https://e0838.com##.slideInner +https://cnbeta.com##.slide_area a[href^="http"]:not([href^="http://www.cnbeta."]) +https://ifeng.com##.slide_popo_modal +https://duba.com##.slidebar +https://duba.com##.slidebar + .extend +https://talkfx.com##.slidebox +https://hupu.com##.slider-pic > .list > li > a[href^="http://goto.hupu."] +https://uc.cn##.slider__sdk__wrapper +https://1688.com##.sm-offer-item[p4p*=".1688."] +https://codepub.com##.small-banner +https://hao.360.cn##.small-obj +https://pdflibr.com##.sms-content-ad +https://ant.design##.snd-ad +https://hao123.com##.soft-ad-banner +https://huacolor.com##.soft-downUrl-list.underline +https://oschina.net##.soft_detai_above_ad +https://sohu.com##.sogouService +https://5nd.com##.songAds +https://jq.131458.com##.soso_02 +https://firefoxchina.cn##.sp-content +https://zww.me##.sp-top-img +https://missyuan.com##.spaceborder +https://baidu.com##.spage-couplet-container +https://ithome.com.tw##.span4:nth-child(5) +https://ithome.com.tw##.span4:nth-child(8) +https://css88.com##.spark-rm +https://shmet.com##.spb-biz-cont +https://fhm.com.tw##.special_ad_bottom_sticky +https://fhm.com.tw##.special_ad_cover +https://geekpark.net##.sponsor +https://northnews.cn##.sponsor02 +https://sogou.com,soso.com##.sponsored +https://so.com##.spread +https://baidu.com##.spread-wrap +https://2345.com##.spreadHotWords +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.spreadad +https://stockstar.com##.ss-ad-icon2 +https://xuebuyuan.com##.ss_gateway +https://duba.com##.ss_sider_list[href*=".wan.liebao.cn"] +https://3g.cn##.statistic[href^="https://jumpluna.58.com/"] +https://sonimei.cn##.style01 +https://sonimei.cn##.style03 +https://guofs.com##.style2 +https://cnbeta.com##.sub-title +https://07073.com##.subarea_ad +https://cam4.tw##.subfoot-section +https://etest8.com##.subtop2right +https://17house.com##.suiping +https://qingdaonews.com##.surround +https://ifeng.com##.swiper-bottom +https://vdianying.cc##.swiper-container +https://1kkk.com,dm5.com##.swiper-container[style*="760px;"] +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.switch_radios + div[class] +https://chinaxinge.com##.sy05 +https://chinaxinge.com##.sy07 +https://heiguang.com##.syAdTopTxt +https://17jiaoyu.com##.sy_ad +https://114la.com##.sy_ad4 +https://5g0a.com##.sy_tj +https://yahoo.com##.sys_dict_native_ads +https://zhifang.com##.sytl +https://bcbay.com,creaders.net##.syzx +https://suizhoushi.com##.sznew_ad_top +https://17ok.com##.t-bann +https://17yy.com##.t2_3 +https://17yy.com##.t2r_3 +https://suopao.org##.t5[style^="margin-top:8px;"] +https://gou19.com##.t[style="margin-top:8px"] +https://bbs.fobshanghai.com##.t_infoline +https://douyu.com,douyutv.com##.tab-content.promote +https://chinatimes.com##.tab_4_box +https://265g.com##.tab_imgtop +https://tw.yahoo.com##.tabads +https://ghoffice.com##.tac > a > img[src*=".gif?"] +https://mgbbs.cn##.tac.mb10 +https://076299.com,77bike.com,actoys.net,gpsuu.com,homefei.me,ksbbs.com,mgbbs.cn,oigps.com,opticsky.cn##.tac.mb5 +https://77bike.com,ghoffice.com##.tac[style="border-top:1px dotted #ddd;line-height:1;"] +https://txzqw.me##.tac[style="margin-bottom:5px;"] +https://hlgnet.com,sina.com##.tad +https://weibo.com##.tag_showTopicL[href^="https://shop.sc.weibo.com/"] +https://cqnews.net##.taobao +https://duba.com##.taobao_search +https://chinaiiss.com##.taobaopic +https://83133.com##.tb-tanx +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.tb_poster_info.poster_success +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.tb_poster_placeholder +https://jxedt.com##.tbad +https://gkpass.com##.tbanner +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.tbui_aside_float_bar + .clearfix +https://9u8u.com##.tc-box +https://baidu.com##.tc-card[tpl="fc_before_fixads"] +https://srzc.com##.tcck1 +https://srzc.com##.tcck2 +https://52pk.com##.tcgg +https://nobugin.com##.td-a-rec +https://newmobilelife.com##.td-a-rec-id-content_inline +https://zeekmagazine.com##.td-all-devices +https://8boniu.com,boniu.xyz,boniu666.co##.td_item +https://mobanwang.com##.teagg +https://duba.com##.tempAd +https://affyun.com##.text +https://affyun.com##.text ~ a +https://baidu.com##.text-advertise +https://dalao.ru##.text-gray:nth-child(10) +https://baidu.com##.text-link-ads +https://yorkbbs.ca##.textNewsBorder +https://auto-online.com.tw##.text_links_h +https://eyy5.cn##.textadlist +https://maomaomom.com##.textwidget > table[width="1050"] +https://acgbuster.moe##.tg-inner +https://526bt.com,eroacg.com,laod.cn,xiaohutuwb.com,zhujiceping.com##.tg-site +https://outofmemory.cn##.tgBar +https://sogou.com##.tgad-box +https://www.sogou.com##.tgad-box + div +https://sogou.com##.tgad-title +https://uuu9.com##.tgbox +https://putclub.com##.the_ad +https://wanghualang.com##.theiaStickySidebar +https://firefoxchina.cn##.theme-618 .theme-side-bg .mod +https://firefoxchina.cn##.theme-side-bar-couplet +https://firefox.com.cn,firefoxchina.cn##.theme-side-bar-priority +https://firefox.com.cn,firefoxchina.cn##.theme-side-bar[trace-key="ad_theme_skin_link"] +https://cnool.net##.third-banner +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.thread_dir_ad +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.thread_local_58 +https://jbtalks.cc##.threadad +https://css88.com##.thumb-leftsidebar-image02 +https://css88.com##.thumb-rightsidebar-image01 +https://163.com##.tie-ad-bar +https://2345.com,hao774.com##.tip_stopXP +https://zhujiwiki.com##.tips +https://3gsc.com.cn##.tipsA +https://so.131458.com##.tishi:first-child +https://gamefy.cn,sitv.com.cn##.tit > span[style="float:right; width:285px;"] +https://asp300.com,asp300.net##.tit01 > a +https://asp300.com,asp300.net##.tit02 > a +https://landiannews.com##.title > .more +https://bilibili.com##.title > span > a[href^="http"]:not([href*=".bilibili."]) +https://gucheng.com##.title_ad_time +https://gucheng.com##.title_down_ad +https://chinaz.com##.titright +https://www.duba.com##.tiyan_a +https://youth.cn##.tj2_pic +https://image.baidu.com##.tjImgli +https://image.baidu.com##.tjad +https://cnbeta.com##.tks +https://tieba.baidu.com##.tl_spread +https://manmanw.net##.tlads +https://esnai.com##.tlgg +https://maxthon.cn##.tmall-nav-v2 +https://duba.com,uu114.cn##.tmall_bg15 +https://sxrom.com##.tmk +https://muchong.com##.todayhot +https://weather.com.cn##.tong +https://gamefy.cn##.tonglan +https://qilindao.com##.tonglanAd +https://chinanews.com##.tonglan_advert +https://3dmgame.com##.tonglona_1 +https://3dmgame.com##.tonglona_2 +https://3dmgame.com##.tonglona_3 +https://3dmgame.com##.tonglona_4 +https://fuliba.net##.tool_news1 +https://loldk.com##.tools-recommend +https://golangtc.com,html-js.com##.top +https://meizhou.com##.top + .w1000 +https://2345.com,hao774.com##.top > .fred +https://midifan.com##.top-aaa +https://10jqka.com.cn##.top-ad-box +https://baidu.com##.top-ad-cont +https://vansky.com##.top-ad-link +https://leiphone.com,sina.com.cn##.top-banner +https://baidu.com##.top-banner-ad-wrap +https://10jqka.com.cn##.top-bar-fl > .top-hot +https://infoq.com##.top-bar-promo +https://99danji.com,eeyy.com##.top-bg +https://zimuzu.tv##.top-box > div[style="text-align:center; margin:0 0 15px 0;"] +https://zimuzu.tv##.top-box > div[style="text-align:center; margin:10px 0 15px 0;"] +https://163.com##.top-gg-area +https://taihainet.com##.top-info +https://2345.com##.top-lvy +https://eelly.com##.top-picture +https://css88.com##.top-post-link +https://rj.baidu.com##.top-recommend +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.top-sec + .middle-sec +https://hao123.com##.top-test +https://ifeng.com##.top-tg +https://52wubi.com##.top960 +https://ktkkt.com##.top980 +https://ktkkt.com##.top980a +https://ifeng.com,nen.com.cn,sina.com,sina.com.tw,weibo.com##.topAd +https://ifeng.com##.topAdBox +https://ltaaa.com##.topAds2 +https://sxclub.net##.topAdv +https://baidu.com,cntour2.com##.topBanner +https://howbuy.com##.topBigAd +https://timedg.com##.topCrossAd +https://hupu.com##.topPub +https://afzhan.com##.topRightAdv +https://hao123.cn##.top_2_2 +https://51wangdai.com##.top_AD +https://pjtime.com##.top_R +https://duba.com##.top_ad_ban +https://duba.com##.top_ad_tmall +https://40407.com,86wan.com,qudong.com,xitong8.com,xt700.com##.top_banner +https://cngold.org##.top_bigad +https://0772fang.com##.top_blft +https://ifeng.com##.top_carousel +https://duba.com,uu114.cn##.top_func_ad +https://0579.cn,xizi.com##.top_gg +https://2345.com##.top_news +https://jmw.com.cn##.top_pic +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.top_toutu_admarks + .tbui_slideshow_list +https://163.com,changsha.cn,jrj.com.cn,kekenet.com,neotv.com.cn,sina.cn,sina.com.cn##.topad +https://qz828.com##.topadv +https://itavcn.com##.topadvzone +https://dayanzai.me##.topban +https://kocpc.com.tw##.topbarad +https://chromecj.com##.topblock +https://artzd.cn##.topbox > table[style="text-align: center; width: 100%;"] +https://srzc.com##.topgg +https://srzc.com##.topgg1 +https://bilibili.com##.topic-preview > li > a[href^="http"]:not([href*=".bilibili."]) +https://makaidong.com##.topimg +https://hy5.com.cn##.toplogoad +https://163.com##.topnews_ad +https://hy5.com.cn##.toppicad +https://1fzw.com##.tops +https://meizhou.cn##.toptonglan +https://hy5.com.cn##.toptxtad +https://jurong.cn,ld0766.com##.totalad +https://wapwenku.baidu.com,wk.baidu.com##.tout +https://demaxiya.com##.tp_box +https://suopao.org##.tr3.t_one[onmouseout] +https://ifeng.com##.trade +https://chinabidding.com.cn##.train +https://dict.baidu.com##.tran-download-ad +https://fanyi.baidu.com##.trans-side-ad-wrap +https://tw.yahoo.com##.travelads +https://hao123.com##.treasure-game +https://hao123.com##.treasure-item +https://megatime.com.tw,pchome.com.tw##.tripplead +https://ts.cn##.tsggding +https://tvhome.com##.ttt +https://52pili.com,7060.la,halihali.me##.tuiguang +https://m.hao123.com##.tuizhan +https://meizhou.cn##.tuwengg +https://tvhome.com##.tvAd +https://xinhuanet.com##.txt > ul > li > a[href^="http"]:not([href*=".xinhuanet."]) +https://chinaz.com##.txtAdBox +https://mydigit.cn##.txtMes +https://cntour2.com##.txtPicAd +https://ltaaa.com##.txtads +https://500.com##.tz_pai +https://cyzone.cn##.tzkd_bottom +https://cyzone.cn##.tzkd_top +https://163.com##.u-index-ad +https://sogou.com##.u-page-gg +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.u9_aside +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.u9_head +https://libaclub.com##.ui-adsame +https://duowan.com##.ui-business +https://xigua110.com##.ui-detail + .ui-detail-info +https://m.nownews.com##.ui-footer-fixed +https://ofweek.com##.ui-slider +https://hlyy.cc##.ui-sponsor +https://ispot.news##.ui_adblock +https://hackhome.com##.ul_ad +https://131458.com##.ulfooter_top +https://autohome.com.cn##.union-ad-placeholder +https://rijutv.com##.union-list-item +https://baidu.com##.union-tg +https://baidu.com##.v-s-tuiguang-wrap +https://0598yu.com##.v1100_ad +https://ifeng.com##.vAdImg +https://ifeng.com##.vAdbox +https://ifeng.com##.v_adbox +https://2345.com##.v_picConBox.height214 +https://bejson.com##.validateButtons.clear a +https://douyu.com,douyutv.com##.vcode9-sign +https://lenovo.com.cn##.video +https://av.movie##.video-banner +https://eastday.com##.video-mask +https://ck101.com##.videoADImg +https://ck101.com##.videoFocus +https://yinyuetai.com##.video_abl +https://yinyuetai.com##.video_abr +https://aipai.com##.video_gg +https://7junshi.com##.videoads +https://mydigit.cn##.view-hover[channelid="aitao"] +https://mydigit.cn##.view-hover[channelid="smzdm"] +https://263y.com##.view_abc +https://lahoo.ca##.view_page_ads +https://muchong.com##.viewad +https://ck101.com##.viewthread-leftfloatbox +https://2345.com##.vipTopBanner +https://cztv.com##.vivo +https://autohome.com.cn##.vocalcon-btn +https://ktkkt.com##.vod980 +https://hupu.com##.voice-ad300-250 +https://hupu.com##.voteIndex +https://dianping.com##.votelist + .aside-box +https://quanmin.tv##.w-newhot_slot-wrapper +https://baidu.com##.w-question-list[data-sign] +https://shm.com.cn##.w1000.surround +https://pc841.com##.w1050 +https://516qq.cn##.w1100 +https://meili.cn,pc841.com,ting56.com##.w300 +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.wanle_tab_tip +https://baidu.com##.wapAd +https://hoteastday.com##.watermarh_ul +https://10jqka.com.cn##.wbanner +https://codeforge.cn##.webnotice-right +https://ptbus.com##.weixin_ad +https://52zpi.com##.wenziad +https://baidu.com##.wgt-ads +https://muzhi.baidu.com##.wgt-best-answer + script + div +https://baidu.com##.wgt-bottom-ask +https://baidu.com##.wgt-bottom-union +https://muzhi.baidu.com##.wgt-container +https://baidu.com##.wgt-union +https://whnews.cn##.whnews_a_dv +https://cnfol.com##.wid325AdBox +https://cnfol.com##.wid390AdBox +https://cnfol.com##.wid595AdBox +https://cnfol.com##.wid600Ad +https://cbmay.com##.widget +https://ilvruan.com##.widget-asst +https://eefocus.com##.widget-bom2buy +https://hao123.com##.widget-hlbar > span +https://hanjutvn.com##.widget-topadding +https://hao123.com##.widget-topbanner +https://hanjutvn.com,taijuwang.com##.widget-unpadding +https://didispace.com##.widget-wrap > p[style="text-align: left;padding-bottom: 20px;line-height: 30px;"] +https://hanjutvn.com##.widget-xlxba +https://web20share.com##.widget:nth-of-type(5) +https://doub.io##.widgetRoller +https://iplaysoft.com##.widget[style] +https://fulibl.com##.widget_banner +https://hackhw.com##.widget_content_b +https://landiannews.com##.widget_custom_html +https://fuliba.net##.widget_custom_html:first-child +https://bzfl1.cc##.widget_cy_ad +https://zhujiboke.com##.widget_image_ad +https://zhaiiker.com##.widget_index_add +https://flyzy2005.com##.widget_kratos_ad +https://carrotchou.blog,daqianduan.com,landiannews.com,xingkbjm.com##.widget_media_image +https://landiannews.com##.widget_metaslider_widget +https://codeceo.com,fuli8.net##.widget_text:first-child +https://fulibl.cc##.widget_text:last-child +https://py91.net##.widget_textads +https://aeink.com##.widget_ui_adsf +https://daqianduan.com,koyi.pub,wuzuowei.net##.widget_ui_asb +https://aeink.com##.widget_ui_textads +https://daqianduan.com,hanfan.cc,wuzuowei.net,yeyulingfeng.com##.widget_ui_textasb +https://subhd.com##.win_content +https://subhd.com##.win_win +https://so.com##.windisplayCell +https://163.com##.with-bot-ad > .arrow_down +https://hao123.com##.wm +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.worldcup_info_banner_dialog +https://gpshk.cc##.wp > div:last-child > p[align="center"] +https://141hongkong.com##.wp.at +https://tropica.cn##.wp1.a_t +https://cangjige.net,cangjige.win##.wp[style="height:36px;padding-top:15px;"] +https://tui18.com##.wp[style^="width:"] +https://bbs.gfan.com##.wpp +https://start.firefoxchina.cn##.wrap > div[style]:last-child +https://99a21.com##.wrap-head-spots +https://duote.com##.wrap-right-B > div[style="margin:10px 0;"] +https://bbs.feng.com##.wrap.fl_row +https://paipai.fm##.wrapbg +https://50yxw.com##.wrapper > [style^="text-align:"] +https://iviewui.com##.wrapper-aside +https://image.baidu.com##.wrapper_dot_box.dot_black +https://wallstreetcn.com##.wscn-ad +https://wallstreetcn.com##.wscn-page-ad +https://wenku.baidu.com##.wubai-wrap +https://52pk.com##.wxbox +https://taoguba.com.cn##.wz_ad +https://sohu.com##.x-adv-band-panel +https://sohu.com##.x-adv-flogo-panel +https://sohu.com##.x-adv-linear-panel +https://sohu.com##.x-adv-pause-nonlinear-panel +https://liaoxuefeng.com##.x-sponsor +https://sina.cn##.xc_da +https://autofan.com.cn##.xf_ad +https://familydoctor.com.cn##.xg +https://xinhuanet.com##.xhdf_moreAdv +https://tj.xinhuanet.com##.xhdf_num1_col3 +https://xinhuanet.com##.xhdf_row_adv +https://bkill.com##.xiangguan-ad +https://12580sky.com##.xiaogao +https://12580sky.com##.xiaogao2 +https://cr173.com##.xiazaiqi +https://vdianying.cc##.xintheme-ad +https://hgitv.com##.xinwen_right_gg01 +https://xilu.com##.xlad +https://xilu.com##.xladAdvList +https://xilinjie.com##.xlj-sponsors +https://dianyingbar.com,hanjutvn.com,taijuwang.com##.xlxba +https://muchong.com##.xmc_Logo + .xmc_fr +https://muchong.com##.xmc_green + a[href^="creditshow."] +https://muchong.com##.xmc_viewthread_ad +https://banyungong.org##.xnf +https://21cn.com##.xuantu +https://xkb.com.cn##.xwAd +https://my0832.com##.xx_div +https://pc0359.cn##.xx_yd +https://pc0359.cn##.xx_yd2 +https://wanyx.com##.xz_down +https://xixiwg.com##.xz_left > ul:nth-last-child(3) +https://05sun.com##.xzq +https://moviesunusaaa.org##.yahooinner +https://techweb.com.cn##.yaowen > ul > a[style="display:block;position:relative;"] +https://chinayk.com##.yb_banner +https://1kkk.com,dm5.com##.yddiv +https://acg17.com##.yhq +https://fdc.com.cn##.yifangbanner +https://pc0359.cn##.yinsu_yd +https://ifeng.com##.yiyuan +https://hk.news.yahoo.com##.yog-col div.classickick[data-beacon-fired] +https://zol.com##.youxuan-shop +https://uuu9.com##.yoyofc +https://ysxs8.com##.ysxs8_w960_1 +https://52ghai.com##.yttl_x_g +https://geilwx.com##.yueduads +https://xiadele.com##.yun-advertisement +https://cnlmjx.com##.yw_ad +https://fx168.com##.yy_guangao +https://ifeng.com##.yy_right_bottom +https://ali213.net##.zadmainholder +https://qizuang.com##.zb_footer_box1 +https://qizuang.com##.zb_footer_box_little +https://qixingquan.com##.zdm +https://ifeng.com##.zhenxuan +https://sina.com.cn##.zhitou-wrap +https://wenku.baidu.com##.zhixin-ads +https://wenku.baidu.com##.zhixin-right +https://sina.com.cn##.zhongce +https://lookae.com##.zhongjian +https://qingdaonews.com##.zhqd +https://brushes8.com##.zjianad +https://qinbing.cn##.zjlmad +https://jqzb.com.cn##.zk_xf +https://91danji.com##.zlVideTowNav +https://silver.org.cn##.zl_login +https://biz.zjol.com.cn##.zsFooterBox + .close +https://efu.com.cn##.zs_banner_a +https://srzc.com##.zt_tonglang1 +https://zuanke8.com##.zuanpw +https://meili.cn##.zw_300_ad +https://19lou.com##.zx-link +https://17house.com##.zx_xrhb +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com#?#.p_postlist > :-abp-properties(width: 739px;) +https://2345.com#?#.pic:-abp-has(a[href^="http://g.wan."]) +https://3g.baidu.com,m.baidu.com,m5.baidu.com,www.baidu.com#?#div:-abp-has(>.openBox-container) +https://3g.baidu.com,m.baidu.com,m5.baidu.com,www.baidu.com#?#div:-abp-has(>div[id$="_1"]+div[id$="_5"]) +https://sina.com.cn##:not(.BigPic) > a[href*="sax.sina.com.cn/click?"] +https://www.wpdaxue.com##:not(.post-thumbnail) > a[target="_blank"] > img +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##:not(.tbui_slideshow_slide) > div[data-daid] +https://programmer-club.com.tw##A[href*="/ADRedirect."] +https://24en.com##A[href*="/ClickAd?"] +https://gmgard.com,hggard.com##A[onclick*="Advertisement"] +https://cnxz.cn##[class*="-ad"] +https://jmw.com.cn##[class^="advertising"] +https://gamme.com.tw##[class^="sidead_"] +https://sina.cn##[data-href*="://sax"] +https://sina.cn##[data-href*="://sax"] + aside +https://sina.cn##[data-href*="://sax"] + aside + blockquote +https://sina.com.cn##[data-info^="ad_"] +https://sina.cn##[data-videojc*="://sax"] +https://sina.cn##[href*="://sax"] +https://39.net##[id^="ac_im"] +https://jjwxc.net##[id^="adp_"] +https://ghoffice.com,ksbbs.com,kshot.com##[id^="ads_"] +https://ifeng.com##[id^="cl"] +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##[id^="spreadad_"] +https://sinolub.com##[id^="xker"] +https://lyreader.com##[onclick^="loadDownloadAPP"] +https://kisssub.org##a > img[src*=".0o0.ooo/"] +https://5dm.tv##a > img[src*=".sinaimg."] +https://ruanyifeng.com##a > img[src*="wangbase.com/blogimg/asset/"] +https://acgnx.se##a > img[src^="/images/"] +https://ainuody.com##a > img[src^="http://wx"] +https://doub.io##a > img[src^="https://img.doub.pw/thumbs/"] +https://tieba.baidu.com,wapp.baidu.com##a.fixed_bar +https://maiche.com##a.some-img +https://chexun.com##a[attr-outside-ad] +https://wenku.baidu.com##a[class*="tiger-"][class*="-dialog"] +https://hao123.com##a[class^="gameyixing-link-"] +https://csai.cn##a[class^="gg"] +https://ditu.so.com##a[class^="index-bcItem-"] +https://focus.cn##a[data-ad-pos-id] +https://caibaojian.com##a[data-href*="aliyun"] +https://oschina.net##a[data-traceid$="_ad"] +https://oschina.net##a[data-traceid*="_detail_above_text_link_"] +https://oschina.net##a[data-traceid="explore_right_bar_70"] +https://oschina.net##a[data-traceid^="questionbanner"] +https://oschina.net##a[data-tracepid^="index_banner_"] +https://feed.baidu.com##a[data-type="ec_ad"] +https://bilibili.com##a[href$="_suning.html"] +https://acg12.com##a[href*="%2F"] +https://17173.com##a[href*="&ad_code="] +https://neatstudio.com##a[href*="&cps_key="] +https://ruanyifeng.com##a[href*=".100offer.com"] +https://dilidili.wang,~h5.dilidili.wang##a[href*=".11h5."] img +https://cctv.com##a[href*=".17fengyou.com"] +https://quanmin.tv##a[href*=".2144.cn/"] +https://backchina.com##a[href*=".21usdeal.com"] +https://qu.la##a[href*=".350.com"] +https://halihali.me##a[href*=".9game.cn/"] +https://163.com,bilibili.com,longzhu.com##a[href*=".admaster."] +https://ip.cn##a[href*=".ali"] +https://techweb.com.cn##a[href*=".aliyun.com"] +https://zhanqi.tv##a[href*=".bfun.cn/ad."]:not([href*=".zhanqi."]) +https://backchina.com##a[href*=".cardbenefit.com/"] +https://cnbeta.com##a[href*=".ctyun."] +https://idanmu.at##a[href*=".datealive.com.cn"] +https://bilibili.com##a[href*=".doubleclick."] +https://wigcw.cn##a[href*=".gwents.com"] +https://ctfile.com##a[href*=".henghost.com"] +https://hanjutv.com##a[href*=".hujiang.com"] +https://cctv.com##a[href*=".jaeapp.com"] +https://chinanews.com##a[href*=".jiuxianfeng.com"] +https://tiexue.net##a[href*=".junp"] +https://doudoudm.com##a[href*=".kxyike.com/"] +https://apprcn.com,yeyulingfeng.com##a[href*=".lizhi."] +https://ifkjx.com##a[href*=".lolbaicai.com"] +https://mumujita.com##a[href*=".makeding.com/"] +https://sina.cn##a[href*=".maozhuar.com"] +https://ifkdy.com##a[href*=".me/aff/"] +https://zimuzu.tv##a[href*=".paojiao.com/"] +https://zhibo8.cc##a[href*=".rd-game."] +https://makepolo.com##a[href*=".rong360.com"] +https://ccav5.com##a[href*=".sinaimg."] +https://ifeng.com##a[href*=".sm.cn"] +https://chdbits.co,hdcmct.org##a[href*=".taobao"] +https://cnbeta.com,sojson.com##a[href*=".upyun."] +https://zhibo8.cc##a[href*=".wanjiashe."] +https://dm5.com,dm5.hk##a[href*=".wannaplay.cn"] +https://tiexue.net##a[href*=".wx359.cn/"] +https://cnzol.com##a[href*=".youa.net"] +https://108.62.192.122,23.81.209.214,plus28.com##a[href*="/?Extend="] +https://ctanet.cn##a[href*="/GoTo.asp?ID="] > img +https://instrument.com.cn##a[href*="/ad/"] +https://fanjian.net##a[href*="/ad_click?"] +https://xitek.com##a[href*="/adclick"] +https://webkaka.com##a[href*="/click/a_d_"] +https://cangku.in,cangku.moe,galacg.me##a[href*="/game"] +https://ccav1.com##a[href*="/go"] +https://cgown.com##a[href*="/go.php?"] +https://dy2018.com,xiaopian.com##a[href*="/htmlcode/"] +https://cableabc.com##a[href*="/img1/"] +https://tucao.one##a[href*="/index.php?m=poster&"] +https://ithome.com##a[href*="/lapin."] +https://6park.com##a[href*="/link.php?key="] +https://tingvoa.com##a[href*="?adid="] +https://haxiu.com##a[href*="?aid="] +https://ruanyifeng.com##a[href*="?utm_source="] +https://dilidili.wang##a[href*="Game"] +https://eworldship.com##a[href*="ad_click&"] +https://xitek.com##a[href*="adclick"] + .info +https://159i.com##a[href*="ai69"] +https://bejson.com,fastadmin.net##a[href*="aliyun"] +https://r3sub.com##a[href*="bit.ly"] +https://cnbeta.com,ruyo.net##a[href*="cloud.tencent."] +https://china.com.cn##a[href*="dwz.cn"] +https://tiexue.net##a[href*="game.tiexue."] +https://i-part.com.tw##a[href*="goo.gl%2FW9SXr1&"] +https://v.sogou.com##a[href*="iwan.sogou.com/"] +https://bejson.com##a[href*="layui.com"] +https://m.baidu.com##a[href*="m.lecai.com"] +https://ccav1.com##a[href*="meidebi."] +https://kafan.cn##a[href*="nameidi."] +https://6park.com##a[href*="out.php?"] +https://ifeng.com##a[href*="popoxiu.com"] +https://ifeng.com##a[href*="popoxiu.com"] + h3 +https://ifeng.com##a[href*="popoxiu.com"] + h3 + p +https://6park.com##a[href*="qq.php?"] +https://cgown.com##a[href*="tb.am"] +https://fastadmin.net##a[href*="tencent"] +https://58.com##a[href*="to8to.com"] +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##a[href*="www.clinique."] +https://csdn.net##a[href="//gitbook.cn/new/gitchat/activity?utm_source=csdnblog1"] +https://kukudm.com##a[href="/exit/exit.htm"] > img[src="/images/d.gif"] +https://ithome.com##a[href="/html/363216.htm"] +https://ziqiangxuetang.com##a[href="/j/coding/"] +https://ziqiangxuetang.com##a[href="/j/coding/"] + .w-text-red +https://bejson.com##a[href="/tolayui.php"] +https://bilibili.com##a[href="/video/av8587236/?tg"] +https://ip.cn##a[href="hb.php"] +https://moyu16.com##a[href="http://71979.com"] +https://cari.com.my##a[href="http://banner.cari.com.my/daybanner/?page=promotion"] +https://ccav1.com##a[href="http://duan.es/1v"] +https://muchong.com##a[href="http://muchong.com/bbs/purchase.php?f=index&w=top"] +https://xinmin.cn##a[href="http://sbiz.xinmin.cn/new/"] +https://ck180.net##a[href="http://www.L7da.com"] +https://6park.com##a[href="http://www.b2ship.com"] +https://bejson.com##a[href="http://www.bejson.com/ui/tuchuang/"] ~ a[style] +https://iidvd.com##a[href="http://www.crc6789.com/iidvd.htm"] +https://playtv.com.cn##a[href="http://www.sdhanrui.cn/"] +https://wikdy.cn##a[href="http://www.tbb168.com"] +https://ainuody.com##a[href="http://www.zhuzhuquan.com.cn"] +https://wandhi.com##a[href="http://www1.huizhek.com"] +https://autohome.com.cn##a[href="https://m.autohome.com.cn/activity/special/autohome29.html"] +https://2dway.com##a[href="https://www.2dway.com/5244/"] +https://jandan.net##a[href^="//api.jandan.net/money.php?"] +https://bigear.cn##a[href^="/?module=dantian&"] +https://sdgundam.cn##a[href^="/aclk/"] +https://liuli.pw##a[href^="/gg2/"] +https://96weixin.com##a[href^="/show/ads/"] +https://fx112.com##a[href^="/union."] +https://muchong.com##a[href^="adlog."] > img[height="90"] +https://muchong.com##a[href^="adlog.php?adid="] +https://muchong.com##a[href^="alog.php?id="] +https://8boniu.com##a[href^="http"] > img[src*="/bn_"] +https://yigujin.cn##a[href^="http"]:not([href$=".html"]) > img[src*="/abc/"] +https://chapaofan.com##a[href^="http"]:not([href*=".chapaofan."]) > img[src*=".sinaimg."] +https://css88.com##a[href^="http"]:not([href*=".css88.com"]) > img +https://jrzj.com##a[href^="http"]:not([href*=".jrzj."]) > img[src^="https://img."] +https://peizimenhu.com##a[href^="http"]:not([href*=".peizimenhu."]) > img[src^="data/attachment/portal/"] +https://qqhzg.com##a[href^="http"]:not([href*=".qqhzg."]) > img[src^="/upload/1/"] +https://wn789.com##a[href^="http"]:not([href*="://www.wn789."]) > img +https://it1352.com##a[href^="http"]:not([href*="it1352."]) > img +https://xiaoheizy.com##a[href^="http"]:not([href*="xiaoheizy.com"]) > img +https://107cine.com##a[href^="http://107cine.com/ads/"] +https://hepuwang.com##a[href^="http://ad."] +https://m.nownews.com##a[href^="http://ad1.nownews.com"] +https://wenxuecity.com##a[href^="http://bbs.wenxuecity.com/bbs/advpost/"] +https://big5.china.com.cn##a[href^="http://big5.china.com.cn/gate/big5/"]:not([href*="/science."]) +https://chinaz.com,cnbeta.com,oschina.net##a[href^="http://click.aliyun.com/"] +https://52che.com##a[href^="http://count.52che.com/goto.html?"] +https://ithome.com##a[href^="http://e.cn.miaozhen."] +https://hc360.com##a[href^="http://e.cn.miaozhen.com/"] +https://news.163.com##a[href^="http://g.163.com/"] +https://moe-acg.cc##a[href^="http://game.moehuan.com/"] > img +https://zhuhai.gd.cn##a[href^="http://hd.zhuhai.gd.cn/ad/"] > img +https://nicotv.me##a[href^="http://img.kingsnug.cn/gamecenter/"] +https://pconline.com.cn##a[href^="http://ivy.pconline."] +https://sm.cn##a[href^="http://m.sm.cn/adclick?"] +https://wangqianfang.cn##a[href^="http://mai.qnfuli.com/"] +https://muchong.com##a[href^="http://muchong.com/bbs/a"] > img +https://cnbeta.com##a[href^="http://note.youdao.com/"] +https://wenxuecity.com##a[href^="http://oascentral.wenxuecity.com/"] +https://163.com##a[href^="http://popme.163.com/"] +https://pctowap.com##a[href^="http://ptw.la/"] +https://ruanyifeng.com,techug.com,vaikan.com,webhek.com##a[href^="http://t.cn/"] +https://mtrend.cn##a[href^="http://tao.mtrend.cn/"] +https://zhlzw.com##a[href^="http://u.ctrip.com/"] +https://9tour.cn##a[href^="http://union.zhuna.cn/"] +https://yeyulingfeng.com##a[href^="http://woaigouwu.top"] +https://zhanqi.tv##a[href^="http://www.2133."] +https://allyingshi.com,zimuzu.tv##a[href^="http://www.6.cn/coop/"] +https://v.baidu.com##a[href^="http://www.602.com/"] +https://jcrb.com##a[href^="http://www.abchina.com/"] +https://cgown.com##a[href^="http://www.aec4d.com/"] +https://wapwenku.baidu.com,wk.baidu.com##a[href^="http://www.baidu.com/cpro.php?"] +https://beephone.com.tw##a[href^="http://www.beephone.com.tw/adlink.php?id="] +https://cnbeta.com##a[href^="http://www.dangbei.com/"] +https://win007.com##a[href^="http://www.edewin.com/"] +https://loldk.com##a[href^="http://www.esportsclub.cn/home/"] +https://hmog.me##a[href^="http://www.masadora.net/"] +https://6park.com##a[href^="http://www.vava8.com"] +https://dy2018.com,xiaopian.com##a[href^="http://www.xiacai.com/"] +https://muchong.com##a[href^="http://www.zhuanyejun.com/"] +https://ifeng.com##a[href^="http://yemei.tv/"] +https://hexieshe.cn##a[href^="http://zd.zhiketong.cn/"] +https://cnbeta.com##a[href^="https://915.im/"] +https://yahoo.com##a[href^="https://beap.gemini.yahoo.com/"] + .NoTextDecoration +https://oschina.net##a[href^="https://citiccard.wjx.cn/"] +https://acfun.cn##a[href^="https://click.dsp.com/"] +https://chongbuluo.com##a[href^="https://cn.udacity.com/"] +https://gitee.io##a[href^="https://coding.net/?"] +https://nownews.com##a[href^="https://goo.gl/"] +https://linux.cn##a[href^="https://linux.cn/go/"] +https://cjjjs.com,fastadmin.net,itboth.com,itkeyword.com##a[href^="https://promotion.aliyun.com/"] +https://shufazidian.com##a[href^="https://weidian.com/"] +https://weebly.com##a[href^="https://www.ebay.com"] +https://fastadmin.net##a[href^="https://www.fastadmin.net/go/"] +https://fastadmin.net##a[href^="https://www.fastadmin.net/go/"][style="color:#fff"] +https://howbuy.com##a[href^="https://www.howbuy.com/advertisement/"] +https://sojson.com##a[href^="https://www.sojson.com/ad/"] +https://zhiboba.org##a[href^="igg."] +https://5118.com##a[id][href^="http"]:not([href*=".5118.com"]) > img +https://5118.com##a[id^="default-"] +https://5118.com##a[id^="home-"] +https://360-bo.com##a[name="thegg"] +https://frdic.com,godic.net##a[onclick*="/ads/"] +https://xiazaiba.com##a[onclick*="GSDown"] +https://pcsoft.com.cn##a[onclick*="_ad"] +https://caibaojian.com##a[onclick*="aliyun"] +https://5g0a.com##a[onclick*="banner"] +https://tvapk.net##a[onclick*="thread_banner"] +https://house365.com##a[style*="1200px;"] +https://gamersky.com##a[style*="display:inline-block;"][style*="z-index:1;"] +https://hdzone.org##a[style*="fixed"] +https://huaren.tv##a[style*="height:"] +https://36dm.club,36dm.com,acgsou.com##a[style="color:red;"][href^="show-"] +https://70bt.cn,qmaile.com,wandhi.com##a[style="display: inline-block;position: relative"] +https://hanjutv.com##a[style="width: 1120px;height: 70px;overflow: hidden;display: block;"] +https://houdao.com##a[style^="background:url"] +https://html-js.com##a[style^="margin-top:20px;"] +https://dybee.tv##a[style^="position: fixed;bottom:"] +https://aishoujizy.com,xd0.com##a[target="_blank"] > img[src^="/upload/1/"] +https://18board.com,18p2p.com##a[target="_blank"] > img[width="330"] +https://18board.com,18p2p.com##a[target="_blank"] > img[width="728"] +https://muchong.com##a[target="_blank"][style="display: inherit!important;"] +https://doub.io##a[title*="Toyo"] +https://creaders.net##a[title^="www.136888.com/"] +https://duba.com##a[w="topad"] +https://amazon.cn#?#.s-result-item:-abp-has(> .s-item-container > h5 .s-sponsored-info-icon) +https://cn.bing.com#?##b_results > li:-abp-has(.b_adProvider) +https://baidu.com#?#.ec_wise_ad +https://api.so.lianmeng.360.cn,pos.baidu.com##body +https://qzwb.com##body > .area[style^="height:60px;"] +https://bkill.com##body > a:first-child +https://tiexue.net##body > div[onclick] +https://m.mydrivers.com##body > div[style="padding:0px 0px 0px 0px;text-align:center;"] +https://hdwan.net##body > div[style] +https://wendu.cn##body > div[style^="width:1000px;"] +https://18h.avmimi.com##body > p[align="center"]:first-child +https://ahtv.cn##body > table[style^="text-align:center; width:960px;"] +https://18h.avmimi.com##body > table[width="100%"]:nth-child(2) +https://62422.cn##body > table[width="778"][align="center"] +https://cnbeta.com#?#.cnbeta-swiper-container-285x360 .swiper-slide:-abp-has(a[href^="http"]:not([href^="http://www.cnbeta."])) +https://cnbeta.com#?#.item:-abp-has(> dL > a[href^="https://ad.doubleclick.net/"]) +https://dilidili.wang#?#article:first-child +https://ip.cn##div > img +https://bitauto.com##div > ins[data-type="ad_play"] +https://324324.cn##div > script ~ a +https://win0168.com##div.item +https://weibo.com##div[ad-data] +https://toutiao.com##div[ad_name] +https://tw.stock.yahoo.com##div[align="center"][style="height:90px"] +https://zongheng.com##div[alog-group="index_04_game"] +https://anjuke.com##div[class$="-ad"] +https://elecinfo.com##div[class$="-advert"] +https://baidu.com##div[class$="-ecom-ads"] +https://eprice.com.tw##div[class$="-popup-g"] +https://anjuke.com##div[class$="-poster"] +https://oschina.net##div[class$="Content"] > p[style="margin:0 0 10px 0;"] +https://qqread.com##div[class$="ad"] +https://19lou.com##div[class$="ad-cycle"] +https://pixnet.net##div[class*="-Ad-"] +https://pixnet.net##div[class*="-ad-"] +https://ganji.com##div[class*="-recommend"] +https://ifeng.com##div[class*="SlideAd"] +https://ganpapa.com##div[class*="_9cb0d"] +https://makepolo.com##div[class*="_ad"] +https://silver.org.cn##div[class*="_gg"] +https://vpser.net##div[class*="_textlink"] +https://2345.com,hao774.com##div[class*="act-navspec"] +https://2345.com##div[class*="act-open"] > :not(.close):not([class*="mask"]) +https://hupu.com##div[class*="ad200-200"] +https://hupu.com##div[class*="ad240-200"] +https://hupu.com##div[class*="ad728-90"] +https://hupu.com##div[class*="ad980-60"] +https://zhibo8.cc##div[class*="advert"] +https://efu.com.cn##div[class*="banner-"] +https://autohome.com.cn##div[class*="game"] +https://qinbing.cn##div[class*="gg"] +https://chinatimes.com##div[class*="googlead_"] +https://steamcn.com##div[class*="liz_"] +https://wenku.baidu.com##div[class*="tiger-"][class*="-dialog"] +https://ifeng.com##div[class="adbox02"] +https://moonbt.com##div[class="box mb"] > a +https://ithome.com.tw##div[class="span4"] +https://r3sub.com##div[class] > a[href^="show.php?id="] +https://bdimg.com,tieba.baidu.com,tieba.com##div[class][lgoinprompt="prompt"] +https://cyol.com##div[class^="AD"] +https://ix8.la##div[class^="ADTOPLB_"] > .bd +https://ali213.net##div[class^="GG"] +https://mbd.baidu.com##div[class^="_"][style="visibility: visible;"] +https://chengdu.cn,oeeee.com##div[class^="ad-"] +https://yesky.com##div[class^="ad1"] +https://yesky.com##div[class^="ad2"] +https://yesky.com##div[class^="ad3"] +https://yesky.com##div[class^="ad6"] +https://yesky.com##div[class^="ad7"] +https://yesky.com##div[class^="ad9"] +https://ifeng.com##div[class^="adList"] +https://16668.biz,16668.cc,16668.com,16668.info,16668.net,16668.org,16668tu.com,alibuybuy.com,chewen.com,faloo.com,newhua.com,ph66.com,tv.cntv.cn##div[class^="ad_"] +https://uuu9.com##div[class^="ad_140"] +https://ifeng.com##div[class^="ad_box"] +https://megatime.com.tw,pchome.com.tw##div[class^="ad_ec"] +https://fang.com##div[class^="add2"] +https://weather.com.cn##div[class^="adpos"] +https://silver.org.cn##div[class^="ads_"] +https://xcar.com.cn##div[class^="adset"] +https://hybbs.com##div[class^="adtop"] +https://8684.cn,8684.com,kugou.com,solarzoom.com,yesky.com##div[class^="adv"] +https://ifeng.com##div[class^="adv0"] +https://ifeng.com##div[class^="adv1"] +https://whinfo.net.cn##div[class^="adw"] +https://kumi.cn##div[class^="adz"] +https://jj59.com##div[class^="art_a"] +https://265g.com##div[class^="ban"] +https://cztv.com##div[class^="banner_"] +https://elecfans.com##div[class^="banner_ad"] +https://ifeng.com##div[class^="container-"][content^="[object"] +https://78dm.net##div[class^="couple-"] +https://ifeng.com##div[class^="coupletBox"] +https://fx678.com##div[class^="dl_"] +https://orsoon.com##div[class^="down-sect"] +https://syd.com.cn##div[class^="eap"] +https://cbg.cn##div[class^="erweima"] +https://loveshang.com##div[class^="float-ad-"] +https://fx678.com##div[class^="fx_fa_"] +https://idanmu.at##div[class^="g "] +https://jjckb.cn##div[class^="g"] > a:first-child:last-child +https://hqew.com##div[class^="g-ad-"] +https://ifeng.com##div[class^="games_ad_"] +https://163.com,csai.cn,miercn.com##div[class^="gg"] +https://enorth.com.cn##div[class^="guanggao"] +https://fx678.com##div[class^="hc_ad_"] +https://ditu.so.com##div[class^="index-adflag-"] + a +https://5iyq.com##div[class^="index_ad"] +https://meiguoshenpo.com##div[class^="info_"] +https://jzhome.cn##div[class^="main_gg"] +https://ifeng.com##div[class^="middleAd"] +https://nba.hupu.com##div[class^="nba-ad"] +https://sun0769.com##div[class^="pagecenter sungg"] +https://wasu.cn##div[class^="play_ads"] +https://ifeng.com##div[class^="pplive"] +https://ifeng.com##div[class^="ppx_wrap-"] +https://infoq.com##div[class^="related_sponsors"] +https://ifeng.com##div[class^="rightContent-"] a[href^="//health.ifeng."] +https://7654.com##div[class^="sidebarimg"] +https://ifeng.com##div[class^="slideBannerBox"] +https://86wan.com##div[class^="tonglan"] +https://ifeng.com##div[class^="topAd-"] +https://21cn.com##div[class^="topAds"] +https://gpsuu.com##div[class^="top_96"] +https://gamme.com.tw##div[class^="topad_"] +https://narutom.com##div[class^="wrap2 vtg"] +https://msn.com##div[data--adqjyluqt] +https://yahoo.com##div[data-ad-feedback-beacon] +https://baidu.com##div[data-ad] +https://sina.cn##div[data-adid] +https://cqmmgo.com##div[data-id*="_adv_"] +https://m.cnbeta.com##div[data-role="content"] > div[style^="text-align:"] +https://oschina.net##div[data-traceid*="_ad_"] +https://oschina.net##div[data-tracepid="question_detai_above"] +https://le.com##div[data-type="bottomLayerView"] +https://weibo.com##div[feedtype="ad"] +https://mail.126.com,mail.163.com##div[id$="_AdDiv"] +https://mail.126.com,mail.163.com##div[id$="_BannerDiv"] +https://mail.126.com,mail.163.com##div[id$="_FooterDiv"] +https://dmhy.org##div[id$="_ad"] +https://mail.126.com,mail.163.com##div[id$="_dvBlockInfo"] +https://58.com##div[id$="_gdbg"] +https://mail.126.com,mail.163.com##div[id$="_succAd"] +https://pixnet.net##div[id*="-AD-"] +https://pixnet.net##div[id*="-Ad-"] +https://pixnet.net##div[id*="-aD-"] +https://mcdulll.com,pixnet.net##div[id*="-ad-"] +https://baby-kingdom.com##div[id*="Banner Zone"] + script + a +https://baby-kingdom.com##div[id*="Banner Zone"] + script + iframe +https://baby-kingdom.com##div[id*="Banner Zone"] + script + object +https://lalilali.com##div[id*="_"] +https://feiwan.net,kcili.com##div[id*="_"][style] +https://moneyweekly.com.tw##div[id*="_ScupioHomeAD"] +https://sm.cn##div[id*="_Shopping_Etao_"] +https://8684.cn,8684.com##div[id*="adid"] +https://e23.cn##div[id*="adv"] +https://v.baidu.com,v.duba.com##div[id*="categoryPageColumn"] +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##div[id*="lottery"] +https://yaolan.com##div[id*="underHdAd"] +https://kuaidi100.com##div[id][style="width: 300px;float: right;"] +https://fengniao.com##div[id^="AD"] +https://house365.com##div[id^="AD-bottom"] +https://it168.com##div[id^="ADV"] +https://hc360.com##div[id^="Adv"] +https://tiexue.net##div[id^="Baidu_"] +https://www.zol.com.cn##div[id^="Bar"] +https://airav.cc##div[id^="Billing"] +https://16668.biz,16668.cc,16668.com,16668.info,16668.net,16668.org,16668tu.com##div[id^="Div"] +https://ganji.com##div[id^="GcnADId"] +https://tigtag.com##div[id^="Home942x70_"] +https://2345.com,hao774.com##div[id^="J_Topic"] +https://jin10.com##div[id^="J_wdgg_"] +https://tzfdc.com.cn##div[id^="LMT_"] +https://360che.com##div[id^="PAGE_AD_"] +https://0594.com##div[id^="PCMSAD_"] +https://tigtag.com##div[id^="Show300x"] +https://90bifen.com##div[id^="ShowTopAds_"] +https://dianyingbar.com##div[id^="Tmall"] +https://icpmp.com##div[id^="__"] +https://mail.126.com,mail.163.com##div[id^="_mail_popup_"] +https://vod1769.com##div[id^="a"] +https://ettoday.net##div[id^="abp"] +https://makepolo.com,mycar168.com,mysteel.com,pchome.net,qz828.com##div[id^="ad"] +https://58.com,pcpop.com##div[id^="ad_"] +https://lenovo.com.cn##div[id^="ad_bd_"] +https://lenovo.com.cn##div[id^="ad_bd_"] + .ad-mark +https://megatime.com.tw,pchome.com.tw##div[id^="ad_div_"] +https://cheshi.com##div[id^="ad_pos_"] +https://tgfcer.com##div[id^="ad_thread"] +https://yam.com##div[id^="adgshp"] +https://weather.com.cn##div[id^="adpos"] +https://cbmland.com##div[id^="ads_"] +https://actoys.net,hualongxiang.com##div[id^="ads_d_"] +https://eyuyan.com##div[id^="ads_r_"] +https://xiancn.com##div[id^="adv"] +https://v.baidu.com##div[id^="adv_asp_"] +https://ali213.net##div[id^="ali-ad-js-"] +https://qbiao.com##div[id^="aup"] +https://qianzhan.com##div[id^="baidu_ad_"] +https://shm.com.cn##div[id^="baidu_clb_slot_"] +https://ncnews.com.cn##div[id^="ban"] +https://recruit.com.hk##div[id^="banner"] +https://2345.com##div[id^="bd-search-ad"] +https://yaolan.com##div[id^="bot_ad"] +https://sinolub.com##div[id^="bs_"] +https://chajiaotong.com##div[id^="cjtad_"] +https://kankan.com##div[id^="cm"].banner +https://66rd.cn##div[id^="comiis_xizi_gg"] +https://nanrenwo.net##div[id^="content"] +https://ifeng.com##div[id^="couplet3_"] +https://jmnews.com.cn##div[id^="couplet_"] +https://banma.com##div[id^="disapper"] +https://gohome.com.hk##div[id^="div-gpt-ad"][style] +https://zyue.com##div[id^="divad_"] +https://chinafix.com##div[id^="diy_vk_ad_"] +https://fx678.com##div[id^="dl_"] +https://lysq.com##div[id^="followDiv_"] +https://512ms.com,gusuwang.com##div[id^="fy_"] +https://tiexue.net##div[id^="g_d_"] +https://doyo.cn,keleyi.com,lgmi.com##div[id^="gg"] +https://51240.com##div[id^="ggwz"] +https://fx110.com##div[id^="ghz"] +https://so.com##div[id^="guang-"] +https://hinews.cn##div[id^="hi_gg_"] +https://fx678.com##div[id^="hta_"] +https://wenku.baidu.com##div[id^="html-reader-AD-"] +https://wenku.baidu.com##div[id^="html-reader-banner-"] +https://fjlyfdc.com.cn##div[id^="hxhad"] +https://4c.cn##div[id^="mid_ad"] +https://pcauto.com.cn##div[id^="middle_ad_"] +https://ksbbs.com##div[id^="mimi_"] +https://hk.yahoo.com##div[id^="my-ads"] +https://elecfans.com##div[id^="new-listAd"] +https://ifeng.com##div[id^="padhide_"] +https://muchong.com##div[id^="paper"] +https://ksbbs.com,kshot.com##div[id^="read_ad_"] +https://kshot.com##div[id^="read_m_yytf"] +https://image.baidu.com##div[id^="relecom"] +https://www.rkanr.com##div[id^="rkrCp"] +https://eol.cn##div[id^="s1_"] +https://secretmine.net##div[id^="secre-"] +https://159i.com##div[id^="sidebar"] > :not(form) +https://douyu.com,douyutv.com##div[id^="sign_p_"] +https://suizhoushi.com##div[id^="sznew_ad"] +https://ottawazine.com##div[id^="text-"] +https://e0575.cn##div[id^="tid_"] +https://4c.cn##div[id^="top_ad"] +https://my0511.com##div[id^="topad"] +https://u17.com##div[id^="u17-advert"] +https://lnd.com.cn##div[id^="wflash"] +https://eyuyao.com##div[id^="x_ad_"] +https://oschina.net##div[name="detail_show_footer"] +https://oschina.net##div[name="floatAdbox"] +https://oschina.net##div[name="index_banner_bigger"] +https://muchong.com##div[onclick^="location.href='http://muchong.com/bbs/a"] +https://sydneytoday.com##div[style$="-144px;top: 115px;"] +https://cbber.com##div[style$=":0px;top:200px;z-index:9999;"] +https://tuwan.com##div[style$="height:90px;"] +https://baike.com##div[style$="text-align:center; width: 1000px;"] +https://avonline.org##div[style$="width:570px;margin-left:50px;"] +https://mpyit.com##div[style*=".sinaimg."] +https://mydrivers.com##div[style*="/ad/"] +https://ilxdh.com##div[style*="1000px"] +https://25xz.com##div[style*="1002px;"] +https://da-fan-shu.cn##div[style*="468"][style*="60"] +https://25xz.com##div[style*="724px;"] +https://pchome.com.tw##div[style*="982"][style*="85"] +https://blog.sina.com.cn##div[style*="WiDTH: 200px;"][style$="HeiGHT: 300px"] +https://m.halihali.me##div[style*="fixed"] +https://bilibili.com##div[style*="height:"][data-loc-id] +https://taiwan.cn##div[style*="height:250px;padding:5px 17px 5px 18px;"] +https://dfpan.com##div[style*="img.com/"] +https://ilxdh.com,ruanyifeng.com##div[style*="important"] +https://esu.moe,esu.wiki##div[style*="position: relative; max-height: 400px;"] +https://1010jiajiao.com##div[style*="position:fixed;"][style*="bottom:1px;"] +https://huarenjie.net##div[style*="top: 50px;"] +https://kkj.cn,mydrivers.com##div[style*="width:1"][style*="height:90px;"] +https://iplaysoft.com##div[style*="width:3"][style*="height:2"] +https://divcss5.com,iplaypy.com##div[style*="width:336px;height:280px;"] +https://iplaysoft.com##div[style*="width:6"][style*="height:1"] +https://dmzj.com##div[style*="width:9"][style*="height:60px;"] +https://gamersky.com##div[style*="width:970px;height:90px;"] +https://lawtv.com.cn##div[style=" width:664px; height:260px; margin-top:10px;"] +https://aohua.com.au##div[style="WIDTH: 960px; HEIGHT: 60px"] +https://nowscore.com##div[style="background-color:#F0F0F0;line-height:25px;height:25px;text-align:center"] +https://chinaz.com##div[style="background:#C91521;height:90px;"] +https://xilu.com##div[style="border-right:1px solid red; width:629px;height:300px; margin-top:10px;overflow:hidden;"] +https://housefindeasy.com##div[style="display:inline-block; vertical-align:top; font-size:12px; margin-top:2px"] +https://housefindeasy.com##div[style="display:inline-block; vertical-align:top; font-size:12px; margin-top:2px"] + div[style="display:inline-block"] +https://sinolub.com##div[style="float:left; padding-right:20px;"] +https://gamefy.cn,sitv.com.cn##div[style="float:left; width:220px; padding-top:15px;"] +https://sinoca.com##div[style="float:right;height:280px;width:336px;clear:left;background:#FFF;margin:15px 15px 15px 15px;"] +https://qixingquan.com##div[style="float:right;margin-bottom:6px;"] +https://ckdzb.com##div[style="float:right;margin:10px 10px;clear:right;height:310px;width:336px;"] +https://m.wallstreetcn.com##div[style="height: 130px;"] +https://jijidown.com##div[style="height: 462px;"] +https://beianbeian.com##div[style="height: 62px;margin-bottom: 20px;"] + .layui-table +https://360doc.com##div[style="height: 90px; padding-top: 13px;"] +https://huabian.com##div[style="height:250px;"] +https://ipcfun.com##div[style="height:280px;width:336px;margin:-10px auto 20px auto"] +https://housefindeasy.com##div[style="height:90px"] +https://pythontab.com##div[style="margin-bottom: 4px;"] +https://bbs.my0511.com##div[style="margin-left:auto;margin-right:auto;text-align:center;margin-top:5px;"] +https://yn-dove.cn##div[style="margin-top: 10px; padding: 10px; "] +https://108.62.192.122,23.81.209.214,plus28.com##div[style="margin: auto;width: 960px;margin-bottom: 10px;"] +https://iplaysoft.com##div[style="margin:-10px 0 0 0;overflow:hidden"] +https://lanyes.org##div[style="margin:0 auto 10px;height:76px;overflow:hidden"] +https://xcmh.cc##div[style="margin:0 auto 12px; adding:0;width:980px;height:250px;overflow:hidden;"] +https://gpsuu.com##div[style="margin:0 auto; padding-bottom:10px;width:960px;height:60px;"] +https://gamersky.com##div[style="margin:0 auto;width:620px;height:75px;overflow:hidden;position:relative;"] +https://dzwww.com##div[style="margin:0;padding:0;width:620px;height:345px;overflow:hidden;background-color:#fff;"] +https://morningpost.com.cn##div[style="margin:0;padding:0;width:648px;height:345px;overflow:hidden;background-color:#fff;"] +https://html-js.com##div[style="margin:10px auto;width:1000px;"] +https://kaifu.tw##div[style="margin:15px; padding:2px;width:304px; height:254px; clear:both; margin:5px auto 20px;"] +https://tucao.one##div[style="margin:auto;margin-top:0px;width:964px;height:105px;"] +https://gamer.com.tw##div[style="min-height:250px;margin-bottom:10px;"] +https://ref.so##div[style="overflow:hidden; height:auto; width:1002px; margin:0 auto; "] +https://eworldship.com##div[style="padding: 0px;position: fixed;left: 7px; top: 150px;"] +https://baidu.com##div[style="padding: 20px 9px 20px 10px;widget:250px;height:250px;"] +https://zuanke8.com##div[style="padding:0px 0 10px 0;background-color:#F1F1F1;"] +https://muchong.com##div[style="padding:15px 0;border:1px solid #648EB2;width:760px;text-align:center;"] +https://win007.com##div[style="padding:6px 0; width:950px; height:45px"] +https://muchong.com##div[style="padding:8px 10px;font-size:14px; background: #fff; border: 1px solid #648EB2;"] > table > tbody > tr > td:first-child +https://7junshi.com##div[style="position: fixed; right: 0px; bottom: 0;z-index:999;width: 300px;height: 250px;"] +https://jijidown.com##div[style="position: fixed;right: 0;bottom: 0;"] +https://ys168.com##div[style="position:fixed; width:200px; top: 330px;right:10px;font-size:9pt;text-align:left;"] +https://1ting.com##div[style="position:fixed;bottom:0;z-index:999"] +https://up01.cc##div[style="position:fixed;width:468px;left: 50%;transform:translate(-50%,0);height:60px;background:#fff;bottom:0px;text-align:center;z-index:9"] +https://lanzou.com##div[style="text-align: center;border: 1px solid #eee;"] +https://subhd.com##div[style="text-align:center;height:270px;padding:10px 0;"] +https://buzzhand.com##div[style="text-align:left;margin-top:0px;height:600px;"] +https://halihali.me##div[style="width: 100%;height: 90px;position: relative;"] +https://rfidworld.com.cn##div[style="width: 100%;position: fixed;top: 0;margin:0;"] +https://v2ex.com##div[style="width: 240px; margin: 0px auto 0px auto; text-align: left;"] +https://eastmoney.com##div[style="width: 300px; height: 250px; margin-top: 10px;"] +https://jijidown.com##div[style="width: 500px;"]:last-child +https://jijidown.com##div[style="width: 525px;"]:last-child +https://pixnet.net##div[style="width: 620px; height: 250px; padding-bottom: 10px;"] +https://0573ren.com##div[style="width:1000px; margin:10px auto; background:#F8F8F8"] +https://jq-school.com##div[style="width:1060px; height:auto; margin:0 auto;overflow:hidden;"] +https://108.62.192.122,23.81.209.214,plus28.com##div[style="width:270px; height:180px;"] +https://liaoxuefeng.com##div[style="width:336px;height:280px;float:left;"] +https://auto-online.com.tw##div[style="width:336px;height:280px;margin:0;background:#000000"] +https://isanxia.com##div[style="width:340px;height:284px;float:left;"] +https://yantuchina.com##div[style="width:618px;height:150px;margin: 0 auto; display:block;"] +https://auto-online.com.tw##div[style="width:728px;height:130px;margin:0;background:#000000"] +https://xbooks.to##div[style="width:900px; height:250px; margin: -15px auto 15px auto;"] +https://isanxia.com##div[style="width:958px;height:90px;overflow:hidden;"] +https://cqnews.net##div[style="width:960px; height:90px; overflow:hidden; padding:0 20px; background:#fafafa; margin-bottom:15px"] +https://0597kk.com##div[style="width:960px; overflow:hidden; margin:2px auto; "] +https://chinacbe.com##div[style="width:960px; padding:0px; margin:4px 0; border:0px solid #CCC;"] +https://stnn.cc##div[style="width:960px;height:90px;float:left;"] +https://gfan.com##div[style="width:960px;height:90px;margin-top:10px;"] +https://youth.cn##div[style="width:960px;height:90px;margin:0 auto;"] +https://108.62.192.122,23.81.209.214,plus28.com##div[style="width:960px;margin: auto;"] +https://se533.com##div[style="width:960px;margin:0 auto;text-align:center;"] +https://cool3c.com##div[style="width:98%;border:1px solid #ddd;padding:5px;margin-top:5px;"] +https://duowan.com##div[style="width:980px;height:60px;margin:0 auto 10px;"] +https://pc360.net##div[style^="border:none;height:90px;width:728px;"] +https://123cha.com##div[style^="float:left;margin:8px 0;width:790px;border:1px dashed #ccc;"] +https://eefocus.com##div[style^="float:left;width:300px;height:250px;"] +https://gaoqing.fm##div[style^="height:258px;background-image:"] +https://jisilu.cn##div[style^="height:60px; width:960px;"] +https://ttzmz.vip##div[style^="margin-top:2"] +https://52ch.net##div[style^="margin-top:5px; height:60px;"] +https://zimuku.cn##div[style^="position:fixed; text-align:"] +https://mydrivers.com##div[style^="position:fixed;left:50%;bottom:200px;"] +https://v.163.com##div[style^="width: 140px; height: 199px;"] +https://ieche.com##div[style^="width: 298px;height:250px;"] +https://elecfans.com##div[style^="width: 960px;height: 40px;"] +https://zddream.com##div[style^="width:100%;height:100%;border:2px"] +https://pcsoft.com.cn##div[style^="width:100px;height:300px;position:fixed;"] +https://house365.com##div[style^="width:1200px;height:"] +https://backchina.com##div[style^="width:300px; min-height: 250px;"] +https://pc0359.cn##div[style^="width:301px;height:250px;"] +https://avonline.org##div[style^="width:613px; height:"] +https://mydrivers.com##div[style^="width:728px; height:90px;"] +https://jpwind.com##div[style^="width:730px; height:90px;"] +https://zimuku.cn##div[style^="width:8"] +https://memexie.com##div[style^="width:9"][style$="#C8E4F0"] +https://21yq.com##div[style^="width:980px;height:80px;"] +https://zuoye.baidu.com##dl[class="card related"] +https://douban.com#?#.rec_topics:-abp-has(>.rec_topics_name[href^="https://erebor.douban."]) +https://dysfz.tv,dysfz.vip#?#li:-abp-has(> h2 > a:-abp-contains(红包)) +https://dysfz.tv,dysfz.vip#?#li:-abp-has(> h2 > a[href*="t.cn"]) +https://bbs.my0511.com##embed[width="970"][height="70"] +https://hiapk.com##font.jammer +https://ifeng.com#?#.box_list:-abp-has(.tuig) +https://sina.cn##iframe[id^="sinaadtk_"] +https://image.so.com#?#.imgcell:-abp-has(.txt:-abp-contains(广告)) +https://50yxw.com##img[height="50"] +https://eworldship.com##img[height="70"] +https://moyu16.com##img[height="85px"] +https://wishdown.com##img[href*=".41gw.com/"] +https://szhk.com##img[id^="adp"] +https://nicemoe.com##img[src*=".sinaimg."][style="width:100%;margin-top:0px;"] +https://moyu16.com##img[style="width:1238px;height:100px"] +https://scsn.cn##img[style^="height:70px;width:"] +https://cnstock.com,hall123.com,hc360.com,hi.people.com.cn,xizi.com##img[width="1000"] +https://jmbbs.com##img[width="1100"] +https://5eplay.com##img[width="1240"] +https://54new.com##img[width="1280"][height="100"] +https://javjunkies.com##img[width="160"][height="600"] +https://chysg.com##img[width="232"][height="90"] +https://36dm.club,36dm.com,acgsou.com##img[width="250"][height="250"] +https://uschinapress.com##img[width="290"] +https://5eplay.com##img[width="290"][height="360"] +https://2chcn.com##img[width="300"] +https://guitarchina.com##img[width="420"][height="60"] +https://aguitar.cn##img[width="470"][height="60"] +https://china.com.cn##img[width="665"] +https://36dm.club,36dm.com,acgsou.com##img[width="700"][height="60"] +https://gpshk.cc##img[width="770"] +https://cnjxol.com,pt80.net##img[width="960"] +https://biz.zjol.com.cn,cgown.com##img[width="980"] +https://chyangwa.net,motorfans.com.cn##img[width^="1200"] +https://0597kk.com##img[width^="37"][height="30"] +https://apk.tw##ins.adsbygoogle +https://bitauto.com##ins[type="ad_play"] +https://ithome.com#?#.placeholder:-abp-has(> a > .plc-con > .plc-footer > .tip-gray) +https://ithome.com#?#li:-abp-has(>.block a[href*="/lapin."]) +https://jianshu.com#?#div[id]:-abp-has(> .ad-badge) +https://jin10.com#?#.jin-timeline:-abp-has(.jin-tag) +https://hk.yahoo.com##li[class="js-stream-content Cf Pos-r RevealNested "][data-uuid]:not([data-uuid*="-"]) +https://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##li[data-daid] +https://0573ren.com##li[data-sort] > a[href^="http://app-api.0573ren.com/store-view/store/detail/id/"] +https://m.thepaper.cn#?#.t_news:-abp-has(img[alt="广告"]) +https://muchong.com#?#.forum_Post_index:-abp-has(nobr:-abp-contains(18)) +https://muchong.com#?#A[target="_blank"][style="display: inherit!important;"] +https://news.baidu.com#?#.index-list-item:-abp-has(.tip-time:-abp-contains(广告)) +https://news.sohu.com,www.sohu.com#?#.list16 > ul > li:-abp-contains(广告) +https://china.com##object[width="360"][height="300"] +https://sina.com.cn##p + .article-video +https://bbs.6park.com##p > font[color="E6E6DD"] +https://muchong.com##p[onclick="view_ok();"] +https://aeink.com##p[style*=".alicdn.com/"] +https://aeink.com##p[style*="82px;background:"] +https://itkeyword.com##p[style="line-height:1.4; margin-top:8px; margin-bottom:10px;"] +https://samsung.com#?#.template-item:-abp-has(> .wrap-sub-title > div > .ad) +https://dilidili.name,gdot.me,sc115.com##script + a +https://logo160.com##script + a[href="/"] +https://xingkbjm.com##script + div + .excerpt +https://xingkbjm.com##script + div + .excerpt + .excerpt +https://news.lyd.com.cn##script + table[width="300"] > tbody > tr:first-child > td > table[width="300"] +https://vs.cm##section[id^="ad_"] +https://r3sub.com##source + img +https://bbs.my0511.com##span.smalltxt +https://163.com##span[class^="gg"] +https://gamebase.com.tw##span[id^="aid_"] +https://hkgolden.com##span[id^="lineImage"] +https://bilibili.com##span[style*="height:"][data-loc-id] +https://typecho.wiki##span[style="height: 17px;margin-left: 10px;background: #000;border: 1px solid #000;"] +https://yivian.com##span[style^="color: #ff0000;"] +https://hanzify.org##span[style^="float:right;"] +https://power.baidu.com,zhidao.baidu.com##style[id^="s-m"] + div[id^="m"] +https://cnjxol.com##table[background$="/searchbg.gif"] ~ table[height="5"] +https://udn.com##table[bgcolor="#FFFFFF"][width="298"][height="375"] +https://my0511.com##table[bordercolor="#C0C0C0"][border="1"] +https://pt80.net##table[cellpadding="2"][bordercolor="#DFC5A4"] +https://bbs.fobshanghai.com##table[cellpadding="4"][style="background: #D6E0EF"] +https://jpfans.com,jpseek.com##table[cellspacing="1"][cellpadding="6"] +https://news.lyd.com.cn##table[cellspacing="5"]:nth-child(3) +https://jdbbs.com##table[cellspacing="5"][bordercolor="#9dbedd"] +https://angelweb.cn##table[height="250"] +https://guidaye.com##table[height="280"] +https://sdzbcg.com##table[height="41"]:last-child +https://bcbay.com##table[id] + table[style="margin:3px auto;"] +https://playtv.com.cn##table[id] > tbody > tr > td[colspan="2"][width^="32"] +https://win007.com,win0168.com##table[id^="table_Ad"] +https://bbs-tw.com##table[ondragstart="window.event.returnValue=false"] +https://zhuji.net##table[style="border-bottom:1px solid #dfdfdf; border-left:1px solid #dfdfdf; border-right:1px solid #dfdfdf; "] ~ table +https://52life.cc##table[style="margin-top:0"] +https://28xl.com##table[style^="width:678px; height:280px;"] +https://jjwxc.net##table[style^="width:984px;"] +https://hcbbs.com##table[width="100%"][bordercolor="#CCCCCC"] +https://pt80.net##table[width="1150"] +https://net767.com##table[width="320"][height="252"] +https://lbx777.com,lbx777.net##table[width="325"][height="280"] +https://mitbbs.ca,mitbbs.com##table[width="336"][height="280"] +https://nick20.com##table[width="702"][bgcolor="#D1DDAA"] +https://cartonmad.com,cartoomad.com##table[width="728"][height="110"] +https://cartoonmad.com##table[width="737"] > tbody > tr > td[valign="top"][height="100"] +https://cartomad.com,cartoonmad.com##table[width="737"] > tbody > tr > td[valign="top"][height="118"] +https://pt80.net##table[width="760px"] +https://5156edu.com##table[width="770"][bordercolordark="#FFFFFF"] +https://cartoonmad.com##table[width="877"] > tbody > tr > td > a[href^="https://fun8.us/"] +https://6park.com##table[width="89%"][height="60"] +https://cartoonmad.com##table[width="890"] > tbody > tr > td > table[height="110"] +https://mitbbs.ca,mitbbs.com##table[width="915"] > tbody > tr:first-child > td[width] +https://cartoonmad.com##table[width="950"] > tbody > tr > td > table[width="210"] > tbody > tr > td > table[width="210"] +https://16sucai.com,bbxxbbs.net##table[width="960"] +https://esnai.com##table[width="960"] > tbody > tr > td[height="90"] +https://cnjxol.com##table[width="960"][bgcolor="#FFFFFF"] +https://fpdisplay.com##table[width="960"][height="110"] +https://gpcxw.com##table[width="960"][height="90"] +https://you85.cn##table[width="980"] +https://yxfdc.com##table[width="980"] > tbody > tr > td[height="70"] +https://zuanke8.com##tbody[id^="normalthread_"] + tbody > tr > td[colspan="5"] +https://51credit.com,ck101.com,hkepc.com##tbody[id^="normalthread_"] + tbody:not([id]) +https://xici.net##td.doc_sign +https://cartomad.com,cartonmad.com,cartoonmad.com,comicnad.com,conicsmad.com##td[align="center"][height="102"] +https://sinoca.com##td[align="center"][height="90"] +https://90bifen.com##td[bgcolor="#FFFEE0"][height="22"] +https://win007.com##td[height="18"][bgcolor="#FFFFE8"] +https://tianshui.com.cn##td[height="420"] +https://webkaka.com##td[id$="_SPONSOR"] +https://win007.com##td[id^="Ad"] +https://muchong.com##td[style="padding-right:15px;border-right:1px solid gray;"] + td[style="padding-left:15px;"] +https://muchong.com##td[style="padding:10px;font-size:14px;"] > div > [style="color:green;"]:first-child +https://muchong.com##td[style="padding:10px;font-size:14px;"] > div > a[href^="creditshow.php?action=view&logid="] +https://muchong.com##td[style="padding:5px 10px;"] + td + td[style="padding-left:10px;"]:last-child +https://findprice.com.tw##td[style="width: 342px; padding:0px 0px 0px 5px;border-left:1px solid #c9d7f1;"] > table > tbody > tr:nth-last-child(n+3) +https://ningmengzhibo.com##td[style="width: 50px;font-size: 12px;"] +https://hkgolden.com##td[style="width: 999px; vertical-align: top;"] > div[style="height:291px;"] +https://tvboxnow.com##td[style="width:15%;height:100%;"] +https://hkgolden.com##td[style^="background-color: #F3F2F1; height: 100px;"] +https://zhuji.net##td[valign="top"][height="66"] +https://zhuji.net##td[valign="top"][height="96"] +https://spbo1.com##td[width="100%"][height="18"][bgcolor="#ffffff"][align="center"][colspan="13"] +https://sdzbcg.com##td[width="297"] img +https://mp4ba.la##td[width="300"][height="300"] +https://enread.com##td[width="326"][height="250"] +https://sdzbcg.com##td[width="580"][height="279"] > table:nth-child(2n-1) +https://62422.cn##td[width="760"][height="75"] +https://cartoonmad.com##td[width="890"] > table > tbody > tr > td[valign="top"][height="118"] +https://verycd.gdajie.com##th[colspan="3"] +https://ningmengzhibo.com##th[style="width: 80px;"][colspan="3"] +https://toutiao.com#?#.J_ad +https://toutiao.com#?#.has_action:-abp-has(> .icon_ad) +https://cartoomad.com##tr:last-child > td[align="right"] > table[width="732"] +https://cartomad.com,cartoonmad.com##tr:nth-child(n+5) > td > table[width="732"] +https://17ce.com##tr[id^="tr"] > td > a[href^="http"] +https://firefoxchina.cn##ul[track-key="adv_links"] +https://yahoo.com#?#.js-stream-content:-abp-has(p:-abp-contains(熱門搜尋)) +https://yahoo.com#?#.js-stream-content:-abp-has(span:-abp-contains(即日熱搜)) +https://zhangxinxu.com#?#.top_da_out +https://game735.com#@##AdDiv +https://the-sun.on.cc#@##ContentAd1 +https://greedio.com#@##adBox +https://abbao.cn#@##adContent +https://gohome.com.hk,idv.st#@##adFrame +https://wangnba.com#@##adSet +https://two.game.tw#@##ad_02 +https://fx678.com#@##ad_8 +https://dpp.org.tw,shuaijiao.com#@##ad_big +https://zhibo8.cc#@##ad_box +https://chanet.com.cn#@##ad_content +https://dpp.org.tw#@##ad_small +https://timesdata.com#@##adbody +https://tt1069.com#@##adbrite +https://abbao.cn,tt1069.com,xietui.com#@##adcontent +https://cgvoo.com,hongrentao.cc,houhuayuan.pink,mcfuns.com.tw,mrmad.com.tw,myself-bbs.com,paltv.top,pbhz.com,sportsyeah.hk,ugediao.com,youneed.win,zhaoze.party,zhuihd.com#@##adsense +https://wenku8.net#@##adtop +https://union.58.com#@##advertise +https://nyaa.pt,pantsu.cat#@##banner_ad +https://biznetvigator.com#@##container_ad +https://szxx.com.cn#@##divAd +https://knowlet3389.blogspot.com,knowlet3389.blogspot.hk,knowlet3389.blogspot.jp,knowlet3389.blogspot.tw#@##gAds +https://game.macx.cn#@##google-ad +https://codejie.net,mo.babytoyhome.com#@##google-ads +https://apk.tw#@##google_ad +https://soft.macx.cn,tunesp.com#@##googlead +https://soft.macx.cn#@##googlead1 +https://52vfx.com#@##head_ad +https://29yyl.com#@##index_ad +https://xxt.cn#@##mainAd +https://www.zol.com.cn#@##search_ad +https://wangnba.com#@##showAd +https://u2mtv.com#@##slider-ad +https://buy.ccb.com#@##top_ad +https://520cc.cc,520cc.me,5278.cc#@#.a_cn +https://help.xunlei.com#@#.a_fr +https://520cc.me,sewangchao.com,sewangchao3.com#@#.a_mu +https://xinmin.cn#@#.a_p +https://haha.mx#@#.ad-1 +https://mobile01.com#@#.ad-a +https://diantai.ifeng.com#@#.ad-b +https://pptstore.net#@#.ad-big +https://baidu.com,comefromchina.com#@#.ad-block +https://pdflibr.com#@#.ad-center +https://liumingye.cn#@#.ad-column +https://digitalocean.com#@#.ad-content +https://pixiv.net#@#.ad-footer +https://juxiangyou.com,senao.com.tw#@#.ad-img +https://ntm.gov.tw#@#.ad-left +https://polyapt.com#@#.ad-one +https://pipi.cn#@#.ad-root +https://da-fan-shu.cn#@#.ad-s +https://beanfun.com#@#.ad-slider +https://senao.com.tw#@#.ad-wrap +https://mucanwenxue.com#@#.ad250 +https://apk.tw#@#.ad300 +https://2ujj.com#@#.ad350 +https://012.tw#@#.ad728 +https://520tingshu.com#@#.ad960 +https://cw.com.tw#@#.adActive +https://czbj.js.cn#@#.adArea +https://poedb.tw#@#.adBanner +https://cmbc.com.cn#@#.adBox +https://bbs-mychat.com#@#.adContent +https://huanqiu.com#@#.adHead +https://icbc.com.cn#@#.adLeft +https://icbc.com.cn#@#.adRight +https://10jqka.com.cn,faxingw.cn,gdmm.com#@#.ad_1 +https://dnwx.com#@#.ad_250 +https://psahz.com#@#.ad_960 +https://workercn.cn#@#.ad_content +https://mx-fm.com,ts.21cn.com#@#.ad_img +https://yxdown.com#@#.ad_l +https://workercn.cn#@#.ad_main +https://fxedu.com.cn#@#.ad_r +https://howbuy.com#@#.ad_wrapper +https://hibox.hinet.net#@#.adarea +https://en8848.com.cn#@#.adcenter +https://china.com#@#.adclass +https://hc360.com,qqread.com#@#.adcont +https://51cto.com#@#.addarea +https://ggdoc.com.cn#@#.addiv +https://poba.com.tw,poba.hk#@#.adlist +https://weather.com.cn,wed114.cn#@#.adpic +https://ltn.com.tw#@#.adright +https://money18.on.cc#@#.ads-bg +https://159i.com,techroomage.com,zhaopin.com#@#.adsBox +https://liumingye.cn#@#.adsTest +https://alotof.software,android-doc.com,apk.tw,battlecats-db.com,epinv.com,ff14angler.com,fxpan.com,haoweichi.com,moa.tw,playok.com,tingfm.com#@#.adsbygoogle +https://gdmm.com,gkstk.com,youquba.net#@#.adtop +https://bdp.cn#@#.adv-list +https://liumingye.cn#@#.advText +https://anjia365.com#@#.adv_bg +https://htmlsucai.com,sucai8.cn,ui.cn#@#.adv_img +https://zalora.com.hk#@#.advertisement-block +https://lm-us.com#@#.advertisement_above_footer +https://8maple.ru,bilibili.to,oldpig.org#@#.afs_ads +https://epubit.com#@#.article_share +https://dingdong.ganji.com#@#.banner +https://10.10.5.12#@#.banner_ad +https://ishangman.com#@#.bottom_ad +https://douban.com#@#.download-ad +https://typecho.wiki#@#.downloadad +https://petrochina.com.cn#@#.ggbox +https://btbttv.net#@#.google-ad +https://mo.babytoyhome.com#@#.google-ads +https://apk.tw#@#.google_ad +https://adbug.cn#@#.google_ads +https://mobile01.com#@#.googlead +https://58pic.com,v.baidu.com#@#.has-ad +https://wangzheli.com#@#.headad +https://popo.tw#@#.header_ad +https://hbee.edu.cn#@#.headerad +https://i-pass.com.tw#@#.homead +https://vmall.com#@#.iframeAd +https://sohu.com#@#.label-ad +https://jsbooks.com.cn#@#.left-ads +https://36.cn#@#.mainAd +https://fsjoy.com#@#.main_adv +https://gdrc.com#@#.midAd +https://hc360.com#@#.midad +https://ntust.edu.tw,sjsmitaa.org#@#.module-ads +https://mobile01.com#@#.navad +https://eprice.com.hk#@#.one-ad +https://weiyun.com#@#.page-ad +https://chinatimes.com#@#.page_ad +https://fjsen.com,nuomi.com#@#.right-ad +https://perfectmatch.tw#@#.right_ad +https://360-bo.com#@#.rightad +https://zdface.com#@#.top-ad +https://bee.coupons,blogspot.com,blogspot.hk,blogspot.jp,blogspot.tw,comic.tw,jasonblog.tw#@#.vertical-ads +https://i-cable.com#@#.video_ad +https://bitauto.com,yinyuetai.com#@#a[href^="http://ad.doubleclick.net/"] +https://brandsales.58.com#@#div[id^="ad_"] +https://gohome.com.hk#@#div[id^="div-gpt-ad"] +https://7255.com###J_search_bd > div:last-child +https://7255.com###right > div:first-child +https://7255.com##.act-search-tab +https://7255.com##.chc-dzoem +https://7255.com##.mod-txtred +https://7255.com##.mzdh_bottom +https://7255.com##div[id^="J_Topic"] +https://58.com###rightRetui +https://58.com##.S_table_ding_box +https://58.com##.topinfos +https://58.com##.zhiding-border +https://58.com#?#.ac_item:-abp-has(.jingpin) +https://58.com#?#.business_main:-abp-has(> .business_desc > .left > .ding_icon) +https://58.com#?#.zzinfo:-abp-has(.zhiding_icon) +https://58.com#?#LI[sortid]:-abp-has(.icon-jingxuan) +https://58.com#?#LI[sortid]:-abp-has(.icon-zhiding) +https://58.com#?#LI[sortid]:-abp-has(.jinico) +https://58.com#?#TR[logr]:-abp-has(> .t > .mt-p-tit > .jingpin) +https://58.com#?#tr[sortid]:-abp-has(> .t > .ico.accurate) +https://xin99r2.com##.dmcenter +https://xin99r2.com##.spots +https://ahri-dva.club,ahri-hentai.com,ahri.online,ahri8.online,ashe.site,xayah.top#@#.adsbox +https://ck101.com,gamer.com.tw,pili.com.tw#@#.pub_300x250 +https://ck101.com,gamer.com.tw,pili.com.tw#@#.pub_300x250m +https://ck101.com,gamer.com.tw,pili.com.tw#@#.pub_728x90 +https://ck101.com,gamer.com.tw,pili.com.tw#@#.text-ad +https://ck101.com,gamer.com.tw,pili.com.tw#@#.text-ad-links +https://ck101.com,gamer.com.tw,pili.com.tw#@#.text-ads +https://ck101.com,gamer.com.tw,pili.com.tw#@#.textAd +https://ck101.com,gamer.com.tw,pili.com.tw#@#.text_ad +https://ck101.com,gamer.com.tw,pili.com.tw#@#.text_ads +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com#?##content_left > [class]:-abp-has(span[data-tuiguang]) +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com#?##content_left > [style*="important"] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com#?#div[id$="_canvas"] +https://ipv6.baidu.com,xueshu.baidu.com,www.baidu.com,www1.baidu.com#?#.c-container:-abp-has(.t > a[data-landurl]) +https://ipv6.baidu.com,xueshu.baidu.com,www.baidu.com,www1.baidu.com#?#div:not([id]) > style[id^="s-"] + style + div + div[id] +https://ipv6.baidu.com,xueshu.baidu.com,www.baidu.com,www1.baidu.com#?#div:not([id]) > style[id^="s-"] + style + div[id] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > [class] > [id*="00"] > div +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > [class] > [id*="00"] > tbody +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > [class] > [id*="00"] > ul +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > [class] > a[href*="//e.baidu.com/?refer="] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > [id*="00"]:not(.result):not(.result-op) > div +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > [id*="00"]:not(.result):not(.result-op) > tbody +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > [id*="00"]:not(.result):not(.result-op) > ul +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > div:not([id]) > div[id][data-rendered="true"] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > div[class][style]:not([id]) +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > div[id*="00"]:not(.result):not(.result-op) + div[class]:not(.result):not(.result-op) +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > style[id^="s-"] + div[id]:nth-child(2) +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > style[id^="s-"] + style + div[id]:nth-child(3) +https://baidu.com###content_right > div > div[id^="m"] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_right > table > tbody > tr > td > div:not(#con-ar):not([class]) +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_right > table > tbody > tr > td > table +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###ecl-temai-category +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###ecl-temai-general +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###ecl-weigou-view-container +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###lm +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###op_wiseapp +https://ipv6.baidu.com,m.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###results > div[class]:not(.result):not(.result-op):not(.sp-rslt-bar):not(.s-group-result) +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.EC_newppim +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ec_bdtg +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ecl-car-powerful-container +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ecl-health-pagelist-wrapper +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ecl-health-poplist-wrapper +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ecl-loan-list-card +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ecl-tg-content +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ecl-wealth-list-card-container +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ecl-weigou-nav-buy +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ecom-result +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.op_tvplay_main +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.opr-xmas-game-container +https://baidu.com##.opr-zhaopin-ad-ctn +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.res_top_banner +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.result-op[data-click*="\"rsv_srcid\":\"10090\""] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.result-op[tpl="right_chris_prize_list"] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.result-op[tpl="right_timeliness2"] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.tools > .shouji +https://baidu.com##.wa-zp-exact-new-border +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ylbx_game_desc +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div:not([id]) > style[id^="s-"] + div[id] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div:not([id]) > style[id^="s-"] + style + div + div[id] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div:not([id]) > style[id^="s-"] + style + div[id] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[class^="EC_pla_"] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[class^="ecl"][class*="game"] > .c-border +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[class^="ecl-edu-"] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[class^="ecr"][class*="game"] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[data-click="\7b \"rsv_srcid\":49516\7d "] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[id$="2"] ~ #\31 [data-click^="\7b \"rsv_bdr\":\"0\",\"p5\":"] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[id$="_canvas"] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[id^="ecl-pc-game-"] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[srcid="13602"] > .c-border +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[tpl="app_normal"] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[tpl="b2b_straight"] > .c-border +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[tpl="houses_new"] > .c-border +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[tpl^="ecl_health"] > .c-border +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[tpl^="job"] > .c-border +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[tpl^="qunar_hotel"] > .c-border +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[tpl^="right_qunar_hotel"] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[tpl^="soft"] > .c-border +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##style[data-for] + style ~ #\31 [data-click^="\7b \"rsv_bdr\":\"0\",\"p5\":"] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##style[id^="s-"] + script + div[id] +https://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##style[id^="s-"] + script + script + div[id] +https://bingfeng.tw##.wow-ad-link +https://bingfeng.tw##div[style="position: fixed; left: 0px; top: 0px; width: 100%; height: 100%; z-index: 999;"] +https://btzhongzifuli.com,cililianbt.org,maomaobt.cc,sousoucili.com,zhainanzhongzi.cc##.photos +https://2c2.website,2p8.space,adultgao.com,caopop.com,caoporn.com,caouoo.com,caox.cc,h3e.pw,h3y.pw,k88.club,me88.pw,p5p.space,se88.space,t2p.space,tb001.xyz,te88.pw,vwan.xyz,xhao1.com##div[style="margin-top:5px;margin-bottom:5px;"]:first-child +https://cilimao.co,cilimao.one##div[class^="FixBanner"] +https://dlkoo.cc##ins[id^="tanxssp-outer-conmm_"] +https://dlkoo.com##ins[id^="tanxssp-outer-conmm_"] +https://ifun.tv##vg-pause-ads +https://dnvod.tv##[data-code] > :not([pluginspage="http://www.macromedia.com/go/getflashplayer"]) +https://dnvod.tv##[data-code] > :not(object) +https://dnvod.tv##[data-code] > [target="_blank"] +https://dnvod.tv#?#[data-code] > :not([pluginspage="http://www.macromedia.com/go/getflashplayer"]) +https://dnvod.tv#?#[data-code] > :not(object) +https://dnvod.tv#?#[data-code] > [target="_blank"] +https://dnvod.tv###box +https://dnvod.tv###msg_win +https://dnvod.tv###msg_winw +https://dnvod.tv###myaudient +https://dnvod.tv###myaudient2 +https://dnvod.tv##.bfq-r +https://dnvod.tv##.clickbg +https://dnvod.tv##.dnpub +https://dnvod.tv##.gg +https://dnvod.tv##.ggw-l +https://dnvod.tv##.r-gg +https://dnvod.tv##:not(#video) > div[data-code] +https://dnvod.tv##[style*="important"] +https://dnvod.tv##a[href^="http://yoyou."] +https://dnvod.tv##a[style="display:inline;visibility:visible"] > img +https://dnvod.tv##div[class][data-type="popup"] +https://dnvod.tv##div[data-code][data-img] +https://dnvod.tv##div[id][style*="top:"][style*="block"] +https://dnvod.tv#?#:not(#video) > div[data-code] +https://dnvod.tv#?#[style*="important"] +https://dnvod.tv,dnwyb.tv##vg-pause-ads +https://fuliba.net,uliba.net###focusslide +https://fuliba.net,uliba.net##.asb +https://fuliba.net,uliba.net##.widget_custom_html:nth-child(2) +https://fuliba.net,uliba.net##.widget_ui_textasb +https://hh010.com##.a_h1t_t +https://hh010.com##.a_h_h +https://hh010.com##.a_hongc_c +https://hpjav.tv##body > div[style^="position: fixed;"] +https://verystream.com#@#.adsbox +https://ifeng.com###golddigger_bottom +https://ifeng.com###linkrat_bottom +https://ifeng.com##.i_con + :not(.i_con):not([href="javascript:void(0);"]) +https://ifeng.com##.i_con[href*=".ifeng.com/go?"] +https://ifeng.com##.newbagicon +https://ifeng.com##[data-cl] +https://ifeng.com##[id^="dl"] +https://ifeng.com##[id^="mobile_gg"] +https://ifeng.com##[iscl] +https://ifeng.com##[style*="position"][style*="fixed"]:not([id]) +https://ifeng.com##a[href*=".deliver."][style*="block"] +https://ifeng.com,~imall.ifeng.com##a[href*="imall.ifeng."] +https://ifeng.com#?#.i_con + div:-abp-has(span:-abp-contains(告)) +https://ifeng.com#?#.i_con:-abp-has(span:-abp-contains(告)) +https://ifeng.com#?#.slLis > li:-abp-has(span:-abp-contains(告)) +https://googleads.g.doubleclick.net###mys-wrapper +https://52biquge.com##a[href^="http://html.350.com/"] +https://duanwenxue.com##.qgzdwx +https://520cc.club,getrelax.club,playno1.club,sexylove.club,xn--a-ko6aq37itxj.com##.loaded-popup-wrapper +https://520cc.club,getrelax.club,playno1.club,sexylove.club,xn--a-ko6aq37itxj.com#@#.google-ad +https://rjno1.com##div[style="display:none"] +https://173.192.147.21,iu91.co,ozxw.co,sejie.com,sejie2.us,sejie3.us,thesoccerline.com,ukhuaren.co###wp > br +https://173.192.147.21,iu91.co,ozxw.co,sejie.com,sejie2.us,sejie3.us,thesoccerline.com,ukhuaren.co###wp > center > a +https://rvlev.com,t66y.com#?#.tpc_content:-abp-has(>b:nth-child(n+40)>span>a[onmouseover="this.style.background='#DEF5CD';"]:-abp-contains(91TV)) > :nth-child(-n+45) +https://rvlev.com,t66y.com#?#.tpc_content:-abp-has(>b:nth-child(n+50)>span>a[onmouseover="this.style.background='#DEF5CD';"]:-abp-contains(91TV)) > :nth-child(-n+55) +https://rvlev.com,t66y.com#?#[class]:-abp-has(>a[onmouseover="this.style.background='#DEF5CD';"]:nth-child(n+150):-abp-contains(/赌|娱|澳/)) > :nth-child(-n+155) +https://rvlev.com,t66y.com#?#[class]:-abp-has(>a[onmouseover="this.style.background='#DEF5CD';"]:nth-child(n+160):-abp-contains(/赌|娱|澳/)) > :nth-child(-n+170) +https://rvlev.com,t66y.com#?#[class]:-abp-has(>a[onmouseover="this.style.background='#DEF5CD';"]:nth-child(n+180):-abp-contains(/赌|娱|澳/)) > :nth-child(-n+188) +https://rvlev.com,t66y.com#?#[class]:-abp-has(>a[onmouseover="this.style.background='#DEF5CD';"]:nth-child(n+190):-abp-contains(/赌|娱|澳/)) > :nth-child(-n+195) +https://rvlev.com,t66y.com#?#div:-abp-has(> script + table) a +https://rvlev.com,t66y.com#?#div:-abp-has(> script + table) h4 +https://thz5.cc###fwin_content_imc_attachad > .f_c > div > div:first-child +https://dota2.com.cn#@##bdshare +https://eastday.com#@##leftShare +https://gfan.com,gfan.net.cn#@##shareBox +https://sogou.com#@##shareContent +https://zdzdm.com#@##share_list +https://harrynull.tech#@##sharelist +https://freecodecamp.cn,freecodecamp.one#@#.btn-social +https://cokemine.com,jubuzz.com,tianfateng.cn#@#.category-share +https://carousell.com#@#.fb-b +https://sui.com#@#.fb-btn +https://douyu.com,oschina.net#@#.follow-btn +https://bilibili.com#@#.follow-wrapper +https://ffxiv.xin,fotor.com.cn,weiyun.com#@#.icon-share +https://gamersky.com#@#.like2 +https://readmoo.com#@#.navbar-social +https://music.163.com#@#.p-share +https://weiyun.com#@#.page-share +https://dongtw.com#@#.post-share-container +https://zhidao.baidu.com#@#.share-area +https://baidu.com,youdao.com#@#.share-content +https://baidu.com#@#.share-line +https://189.cn,vua.sh,weiyun.com#@#.share-link +https://baidu.com,meidebi.com#@#.share-list +https://kuaishou.com#@#.share-page +https://zhidao.baidu.com#@#.share-section +https://youdao.com#@#.share-text +https://wantgoo.com#@#.shareBtns +https://laosiji.com#@#.sns-wrapper +https://5dm.tv#@#.tm-share-this +https://fqsousou.com,kengso.com#@#.user-share +https://abpchina.org#$#log Hello +https://acfun.cn##.appguideBox +https://mmbang.com##.footer_adver-warp +https://tsdm.live###ts_sidebar_base +https://m.qu.la#?#ul:-abp-has(> li > a[href*=".bcebos."]) +https://m.qu.la#?#:-abp-has(> a[href*=".bcebos."]) +https://sanhao.com###reg-bar +https://lenovo.com.cn##.game-bd +https://zybang.com##.navigationBar-below-banner +https://m.07073.com##.new_heads +https://m.07073.com##.new_heads_bg +https://blog.csdn.net##SCRIPT[src^="https://csdnimg.cn/release/phoenix/vendor/linkCatcher/linkCatcher.js"] + .t0 +https://9312.net##.pop-up +https://gdmm.com##img[width="1200"] +https://ifeng.com##div[class^="qrCode"] +https://mafengwo.cn###float-pannel-gloable +https://mafengwo.cn###smartGuideFeng +https://bigbigwork.com##.pinterestbox +https://kuakao.com##.addTQBar +https://renren.com###videoAd12 +https://weather.com.cn##.tuiguang +https://douyu.com##.video-info-download +https://docer.com##.popup +https://voachinese.com##.slide-in-wg +https://gitee.com##.gitee-stars-main-widget +https://ooopic.com##.fix-newUser +https://itheima.com##.nav1 +https://thmz.com###floatdivids +https://soyoung.com###pubWideBanner +https://soyoung.com##.cash_back +https://soyoung.com##.pop_center_box +https://163.com##.redpacket-footer +https://163.com##.redpacket-subbox +https://worldve.com###fdkDiv +https://worldve.com###img +https://zybang.com###bottomBannerLink +https://ludashi.com##.div_text +https://ludashi.com##.div_mask +https://7k7k.com##.page-right-side-btns-img-link +https://ttmeiju.me##DIV[style="float:left;margin-bottom:27px;margin-top:27px;"] +https://4399.com###ads1_1 +https://xitonghe.com##.sidebar-wx +https://chinaacc.com##.leftBox +https://58pic.com##.activitySettings-Fixed +https://58pic.com##.activitySettings-fixedBottom +https://gdmm.com###diy3 +https://cnblogs.com###div_digg +https://cnblogs.com###xiaociguai +https://nowcoder.com###jsSideTopicList +https://mafengwo.cn###ad1 +https://mafengwo.cn###ad2 +https://eastday.com##.drain_app +https://pconline.com.cn###JnoLoginFixedBottom +https://hao123.com###bottom-be +https://kankanmi.com##.listnewli +https://epwk.com##.collect-info-icon +https://epwk.com##.collect-info-wrap +https://epwk.com##.head_banner +https://appledaily.com###ebBannerTopDiv + A[href^="http://bit.ly/"] +https://360kan.com###js-eb-bottomad +https://tianyancha.com###banner_web +https://vdianying.cc##div[style^="display:block !important;"] +https://aoji.cn##.xiaoxi_phone +https://gaodun.com###LRdiv1q +https://51cto.com##DIV[id^="topbanner"] +https://3d66.com###botfocus-soft +https://meijuniao.com###widget-weixin +https://meijuniao.com##.player-ad1 +https://wiseway.com.cn##.float-kefu +https://ixigua.com##.banner-section +https://jiakaobaodian.com##.com-footer-flex-panel +https://btime.com##.shop-guid +https://csdn.net##.blog_star_enter +https://ganji.com##.footer-b +https://evget.com###popelevencenter +https://sac.net.cn###ad +https://sac.net.cn###leftDiv +https://sac.net.cn###rightDiv +https://ibaotu.com##.bg-feedback +https://wantgoo.com###FixModal +https://csdn.net##.post_recommend +https://zuowen.com##.dialogP +https://mcmod.cn###McmodDonate +https://pupudy.com##.asst-post_header +https://pupudy.com##.sidebar +https://douyu.com###js-room-activity +https://gdmm.com##a[href="http://www.gdmm.com/appdown/"] +https://kingkong.com.tw##.public-activity +https://kingkong.com.tw##.room-banner-wrap +https://xhd.cn##.xinad +https://163.com##.gkk_bj_yw +https://163.com##.gkk_default_yw +https://jianshu.com###note-fixed-ad-container +https://jianshu.com###web-note-ad-1 +https://776dm.com,qiqidongman.com##.topAA +https://liepin.com##DIV[id^="nodetpl_g_"] +https://med66.com##.coach_pic +https://kekenet.com###bottomlink +https://download.csdn.net##.quake-slider +https://china.cn##.ltp_box +https://qidian.com##div[style="background: rgba(0,0,0,0.4);position: fixed;left:0;right:0;top:0;bottom:0;z-index:9999;"] +https://qidian.com##div[style^="width: 426px; height: 644px; background:"] +https://qidian.com##span[style^="display: inline-block;width: 150px; height: 291px;"] +https://zhufaner.com###dist_footer +https://zhufaner.com##.book +https://91wenmi.com###xiezuo +https://91wenmi.com###xzsp +https://91wenmi.com##a[href^="http://www.91wenmi.com/xiezuo/"] +https://med66.com##.banner +https://9game.cn###btInfo +https://ld0766.com###diy4 +https://tw.yahoo.com###tabTemplate +https://aliyun.com###yq-a-r-bottom +https://aliyun.com##.yq-ads-blog +https://aliyun.com##.yq-main-left > a:first-child +https://csdn.net##.fourth_column +https://taoguba.com.cn###joinTGB +https://jin10.com##.jin-popularize +https://acfun.cn###appguideBox +https://zglww.net##.tool +https://zhongyiju360.com###bottom-float +https://zhongyiju360.com###bottom-float2 +https://dianping.com##.QQlink +https://dianping.com##.bao-jia-form +https://dianping.com##.button_bao-jia +https://dianping.com##.layer-container[data-view-bid="b_njcmobox"] +https://dianping.com##.weixin1 +https://smzdm.com##.foot-banner +https://itheima.com##.tanchang +https://house365.com###AD-coup-left +https://cheaa.com###AD002 +https://cheaa.com###ADText +https://bing.com###BottomAppPro +https://ck365.cn###Dmids +https://baidu.dj###ETE +https://setn.com###FBAnchor +https://alipay.com###J-cooperant-banner +https://letv.com###JS_banner01 +https://letv.com###JS_banner02 +https://sina.com.cn###J_forAutoShow +https://pconline.com.cn###JtlBestA +https://zhiding.cn###MgBox +https://pcauto.com.cn###PcPoPmarket +https://qidian.com###QDCode_float +https://zuoye.baidu.com,zybang.com###QRinside +https://gov.cn###ZhiXuwFloatWindow +https://mmonly.cc###\32 vm_box +https://soku.com###\5f xbox_ad +https://ifeng.com###a_code +https://tianya.cn###a_qiu +https://mydrivers.com###a_showhotnews_list_dia +https://tw.yahoo.com###abu-live +https://zhidao.baidu.com###act-link-banner +https://baidu.com###activateGuidePopupOuter +https://8591.com.tw###active_enter +https://dongao.com,zgsyz.com###ad +https://fengniao.com###ad-head +https://4399.com,sxrtv.com,yundaex.com###ad1 +https://4399.com,sxrtv.com,zgsyz.com###ad2 +https://bitauto.com###advCarsumType1 +https://rrjc.com###alertBox +https://5253.com###android-qr +https://sohu.com###apkBanner +https://pconline.com.cn###app-ewm-tg +https://neihanshequ.com###appDownload +https://qidian.com###app_download_blank_show +https://zuoye.baidu.com,zybang.com###aside +https://jpwind.com###asideNav +https://bilibili.com###b_app_link +https://58.com###banjiaAD +https://3g.baidu.com,m.baidu.com,m5.baidu.com,www.baidu.com###banner_call + div[id] +https://tianya.cn###bbs_login_div +https://pcauto.com.cn###bgbao +https://bing.com###bingBrand +https://163.com###bobo +https://zhiyoo.com###body-bg +https://sogou.com###bottom_appad +https://haosou.com,so.com###bottom_ask +https://so.com###bqPromote +https://zol.com.cn###btmLoginLayer +https://golinksworld.com###btn_download +https://lvmama.com###centerDialog +https://ifeng.com###client-spread +https://ichunqiu.com###cnzz168_Login +https://ck365.cn###content_login +https://yahoo.com###crazyad_mask +https://9miao.com###deanrlc22 +https://news.baidu.com###detail-HotScrollNews-wrapper +https://zhiyoo.com###dialog1 +https://fx168.com###diaochaBg +https://fx168.com###diaochaBox +https://tw.yahoo.com###discount +https://douguo.com###dlayer +https://kongzhong.com###dn +https://btime.com###download +https://ibm.com###dw-regbar +https://xcar.com.cn###eMeng +https://udn.com###ec +https://51cto.com###edu_adver +https://58.com###erweimaAd +https://guancha.cn###ewm_app +https://baidu.com###exp-fixed-bottom +https://sina.com.cn###f_ask +https://51cto.com###f_close_box +https://news.baidu.com###favoriteTips +https://zhidiy.com###festival_float_bottom +https://ci123.com###fixed-recom +https://bilibili.com###fixed_app_download +https://yesky.com###flayer +https://7808.cn###float-chat +https://163.com###floatLayer +https://x-mol.com###floatWindow +https://qianlima.com###float_mask +https://scsjgjj.com###floatinfo +https://mayi.com###floatingLayer +https://tw.beanfun.com###flybeanfun +https://ofweek.com###flybox-db +https://miercn.com###foot_return_foot +https://xtuan.com###foot_zhaobiao_bar +https://smzdm.com###footer_layer +https://7808.cn###force-popup +https://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###forum_recommend +https://eastmoney.com###fp1 +https://house365.com###ft-login +https://goodcome.com.tw###fulljad +https://eastmoney.com###fundtg-fb +https://ifeng.com###g_code +https://yesky.com###gfapp1 +https://guancha.cn###goapp +https://haosou.com###haosou-banner-left +https://thepaper.cn###head_ask_app_down +https://zhiyoo.com###header_app +https://finance.sina.com.cn###hq_main_top_tgWrap +https://51zxw.net###idSlider +https://youth.cn###identifier-pannel +https://zol.com.cn###iframe_zmall +https://las.ac.cn###img +https://dditblog.com###income_div +https://pptv.com###installApp +https://gov.cn###ippad01 +https://gov.cn###ippad02 +https://gov.cn###ippad03 +https://study.163.com###j-newpeople +https://fwxgx.com###jPpo_sc +https://goodcome.com.tw###jad-float +https://goodcome.com.tw###jad-right +https://goodcome.com.tw###jad-top +https://dianyingbar.com###jihuaslide +https://douyu.com###js-fix-download +https://douyu.com,douyutv.com###js-live-room-recommend +https://163.com###js_a_bobo +https://ifeng.com###js_red +https://0439.com###kanfang +https://163.com###layout-bobo +https://163.com###layout-love +https://163.com###layout-shop +https://fh21.com.cn###lbzxM +https://lvmama.com###leftDialog +https://instrument.com.cn###leftFlash +https://66rpg.com###left_overlay +https://duba.net###login_alert +https://tianya.cn###login_mask +https://zhibo8.cc###m_adv +https://zhidao.baidu.com###main-content > div[class]:first-child > a +https://house365.com###marryD +https://goodcome.com.tw,sporttery.cn###mask +https://meitu.com###meipaiFixed +https://ifeng.com###minefields_bottom +https://neihanshe.cn###mobile_client +https://stc.gov.cn###mov +https://aoshitang.com###msg_win +https://so.com###msocomBottomBanner +https://sporttery.cn###newDiv +https://baike.com###newsfix-on +https://finance.sina.com.cn###ny-link-r +https://finance.sina.com.cn###ny-link-r0 +https://autohome.com.cn###packetsWrap +https://neihanshequ.com###pageletBottomBanner +https://neihanshequ.com###pageletTopBanner +https://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###pagelet_frs-aside\/pagelet\/hottopic +https://kaopu001.com###pokemon +https://meituan.com###pop +https://52wmb.com###popContent +https://wbiao.cn###popupImgCorner +https://acfun.cn###prompt-box +https://infoq.com###psa-note +https://360.cn###pushbar-festival +https://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###questionnaire_bg +https://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###questionnaire_contianer +https://blog.163.com###r_m163news +https://blog.163.com###r_mlofteriframe +https://blog.163.com###r_mlofteriframe2 +https://yy.com###rbappend +https://15w.com###rec +https://mydrivers.com###recommend +https://tv.sohu.com###referr_bd_box +https://hjenglish.com###regscrollcontainer +https://66rpg.com###right_overlay +https://eastmoney.com###rightadvert +https://pchome.net###rightbar +https://cskaoyan.com###scanWxQrCode +https://wasu.cn###scan_qrcode +https://po.baidu.com###shareBoxBlank +https://xcar.com.cn###show_car +https://360.cn###sidebar +https://hao123.com###slidetoolbarContainer +https://suning.com###sn-sidebar-change-code +https://haosou.com###so_feb +https://sogou.com###sogou_vr_21222401_wrap_0 +https://ifeng.com###swiper_bottom +https://msn.com###taboola-above-homepage-thumbnails +https://sina.com.cn###tg_app_w +https://17173.com###topAlert +https://blog.163.com###topbar_gachaArea +https://blog.163.com###topbar_lofterDldArea +https://blog.163.com###topbar_yxpArea +https://ifeng.com###upApp1 +https://ifeng.com###upApp2 +https://51cto.com###upopbox_bot +https://51cto.com###upopbox_mid +https://tw.yahoo.com###util-top-promotion +https://fydisk.com###vbox +https://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###video_aside +https://ithome.com###wapddfda21 +https://qudao.com###wechat +https://360.cn###weishi-alert +https://kekenet.com###weixinwz +https://kekenet.com###weixinwz1 +https://taoguba.com.cn###wrap_footer > div[style^="width: 957px;"] +https://ganji.com###write_resume_id +https://ifeng.com###wx +https://bendibao.com###wxbox +https://anjuke.com###xajk_down_new +https://muchong.com###xd_popbox +https://wenmi114.com###xiezuo +https://163.com###yjj_pop_wrapper +https://house365.com###youXFsmall +https://gmw.cn###ysp_gmrbAppLayer +https://1010jiajiao.com###yueyu3 +https://appchina.com###yyh-bottom +https://qyer.com###zpui-head-ad +https://3d66.com##.King_Chance_LayerCont +https://douyu.com##.PaladinPop +https://goodcome.com.tw##.Phase2_BigAdbox +https://newsmth.net##.Smthtwenty_float +https://pcgames.com.cn##.aFollowb +https://infoq.com##.ab_detect +https://auto.ifeng.com##.acquire_1 +https://apowersoft.cn##.activity-poster +https://huaban.com,zcool.com.cn##.ad +https://to8to.com##.ad-commom +https://iciba.com##.ad-sign +https://igo.cn##.adBG +https://pcauto.com.cn##.ad_onlyone +https://pixiv.net##.ads_anchor +https://medsci.cn##.adv1201 +https://2cto.com##.adv980 +https://2cto.com##.adv980box +https://8264.com##.advSection__wrapper +https://eastmoney.com##.advertisement +https://cngold.org##.ag_fwindow_ywp +https://dianyingbar.com##.alert_windows +https://jiankang.com##.all_eye +https://baidu.com##.app-guide +https://qidian.com##.app_download_ad +https://qidian.com##.app_download_ad02 +https://loldk.com##.appfix +https://baidu.com##.apphint +https://uisdc.com##.archive-pm-top +https://sina.com.cn##.article-bottom-tg +https://itmo.com##.aside-game-icon-box +https://to8to.com##.ask_side_opa +https://yaofangwang.com##.bad +https://fwxgx.com##.baibaoxiang +https://baidu.com##.baiduapp-ad-container +https://baike.baidu.com##.baike-dynamic-wrapper +https://51cto.com,chinaacc.com,yidianzixun.com##.banner +https://baidu.com##.banner-active +https://m.toutiao.com##.banner-top +https://pinggu.org##.banner2015 +https://55haitao.com##.bbs-bottom-popup +https://sina.com.cn##.blk_APP_JSl +https://sina.com.cn##.blk_APP_JSr +https://163.com##.bobo-area +https://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.bonus_forum_aside +https://tianya.cn##.book-box +https://douban.com##.bottom_ad_download +https://to8to.com##.bottom_slide_box +https://shejiben.com##.bottom_zb_box +https://sogou.com##.bottombar +https://to8to.com##.btm-float +https://ck101.com##.btn_dw_app +https://uuu9.com##.c_box +https://iciba.com##.cb-downmask +https://zuowen.com##.cj +https://hao123.com##.cjcard2017Container +https://mumayi.com##.clientBox +https://php.cn##.close_id +https://miercn.com##.color-box +https://ibaotu.com##.comVip-tg +https://baidu.com##.commentEmbed-backHomeCard +https://to8to.com##.common-tender-wrapper +https://ithome.com##.con_2 > .img_listbox +https://kaopu001.com##.coupleBannerAdv +https://rrjc.com##.coupletbox +https://yahoo.com##.crazyad +https://taoguba.com.cn##.ct_app +https://feng.com##.dd305 +https://youdao.com##.dialog-guide-download +https://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.dialogJ.umoney-promotion-dialog +https://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.dialogJmodal +https://youdao.com##.dict-dl +https://163.com##.doc-footer-wrapper +https://douyu.com##.double-festival-pop +https://finance.sina.com.cn##.downLink +https://caijing.com.cn##.downdiv +https://baidu.com##.download-app-parent +https://kdnet.net##.download-bar +https://wallstreetcn.com##.download-coantainer +https://km.com##.downloadApp +https://gfan.com##.downs +https://taizhou.com.cn##.duilian +https://taizhou.com.cn##.duilian2 +https://csdn.net##.edu-promotion +https://cw.com.tw##.emailorder +https://dajie.com##.envelop_layer +https://ettoday.net##.etvideo_collect_1 +https://baidu.com##.eye-catching-tpl-container +https://ifeng.com##.fhsd +https://baidu.com##.first-card-container +https://douyu.com##.firstpay-modal +https://xiushuang.com##.fix_app +https://hjenglish.com##.fix_questionnaire_btn +https://pcauto.com.cn##.fix_sinup_box +https://1010jiajiao.com##.fixed-bar +https://ye120.com##.fixed_bottom +https://1010jiajiao.com##.fixedbox2 +https://autohome.com.cn##.fixqbot +https://letv.com##.fl_app_bot_wrap +https://letv.com##.fl_app_wrap +https://ganji.com##.fl_pop +https://to8to.com##.float +https://www.163.com##.float-bar +https://gitee.com##.float-left-box +https://kaoyan.com##.floatQrcode +https://fwxgx.com##.float_ad +https://ifeng.com##.foot_top_box +https://xdf.cn##.footadv +https://m.zhanqi.tv##.footer +https://me360.com##.footer-booking-open +https://miaopai.com##.footer_banner +https://51cto.com##.footer_mask +https://nen.com.cn##.for3gagzy +https://it168.com##.fu1020_box +https://eastmoney.com##.fund-pop +https://hanjutv.com##.ggw_fr +https://55haitao.com##.global-dialog +https://1kkk.com,dm5.com##.guide +https://baixing.com##.guide-video-app +https://ifeng.com##.h_top_box +https://huke88.com##.hand-once +https://hao123.com##.hao123-search > .notice-fixed +https://jiemian.com##.header-container > div > section[style="width: 100%;"] +https://setn.com##.header-left-banner +https://setn.com##.header-right-banner-b +https://ucptt.com##.hidden-sm +https://baidu.com##.home-app-promotion +https://miercn.com##.hongbao +https://mafengwo.cn##.hotel-banner +https://huize.com##.hz-bottom-reserve-link +https://zhcw.com##.hzg60 +https://163.com##.imglist-bobo-app +https://focus.cn##.index-app-download +https://heirui.cn##.index711-mask +https://aiyuke.com##.index_app_down_ad +https://iciba.com##.info-product +https://58.com##.invokeApp +https://17173.com##.js-lol-pop +https://lofter.com##.js-promote-itm +https://pconline.com.cn##.juletao +https://163.com##.kaola-ad +https://to8to.com##.kgjr-wrap +https://zhcw.com##.khdpc +https://hjenglish.com,hujiang.com##.lamu_banner +https://yidianzixun.com##.layer-download +https://house365.com##.left_fudong_ad +https://xiaoma.com##.leftewm_topa +https://zhidao.baidu.com##.link +https://17173.com##.list-beauty +https://baixing.com##.listing-fixed-bottom-promo +https://duowan.com##.lolboxapps-qrcode +https://ltn.com.tw##.ltn_ad +https://ifeng.com##.luckybag +https://eic.org.cn##.lx-btm-box +https://163.com##.m-adv +https://hupu.com##.m-app-info +https://blog.163.com##.m-regGuideLayer.f-trans +https://163.com##.m-slider-footer +https://pclady.com.cn##.mdxyAppEnter +https://xdf.cn##.middleadv +https://ifeng.com##.mr_top_box +https://maiziedu.com##.msg +https://pinggu.org##.mui-mbar-tabs +https://3g.163.com##.ne_rps +https://koolearn.com##.news_pf +https://hao123.com##.newskin-tip +https://letv.com##.newyear_red_bot_wrap +https://letv.com##.newyear_red_wrap +https://douyu.com##.noble-up-guide +https://163.com##.ns-side-qrcode +https://ithome.com##.open-app-banner +https://baidu.com##.openAppCarsouselTpl +https://baidu.com##.openAppCommonTpl-100 +https://baidu.com##.openBox-shareEntry +https://csdn.net##.p4course_target +https://mobile.baidu.com##.p_fixed_lb +https://csdn.net##.padb0 +https://yamol.tw##.panel[style="text-align:left;width:100%;padding:0px;background-color:white"] +https://csdn.net##.panel_body > div[style^="position:fixed;bottom: 0;"] +https://iciba.com##.pc-entry +https://douyu.com##.pendant-wrap +https://jikexueyuan.com##.pewm2 +https://jikexueyuan.com##.pewm3 +https://mumu.163.com##.pic-con +https://17173.com##.pic[href*="Room"] +https://96weixin.com##.pop +https://longzhu.com##.pop-up-button +https://touzi.com##.pop720-bg +https://touzi.com##.pop720-box +https://ifanr.com##.popup-app-download +https://uisdc.com##.post-pm-content +https://zhiyoo.com##.prompt +https://csdn.net##.pulllog-box +https://qdmm.com,qidian.com##.qdRead_client +https://qdmm.com,qidian.com##.qdRead_redscan +https://tianya.cn##.qhb-Box +https://focus.cn##.qhb-fixed +https://wasu.cn##.qp +https://kuwo.cn##.qr_wrapper +https://qihoo.com##.qrcode +https://163.com##.quickmark +https://to8to.com##.quoted-outside +https://news.baidu.com##.recommend-animate +https://juejin.im##.recommend-box +https://m.babytree.com##.recommend-brand +https://m.babytree.com##.recommend-img-box +https://news.baidu.com##.recommend-mask +https://longzhu.com##.recommend-pop-up +https://m.toutiao.com##.recommendation-container + div[class] +https://dianyingbar.com##.recover +https://oschina.net##.recruitment +https://p2peye.com##.red-box +https://baixing.com##.red-package +https://baidu.com##.redenvelope-small +https://dajie.com##.register_layer +https://blog.51cto.com##.relatedArt.box +https://163.com##.rg_ad +https://itmo.com##.right-side-pop +https://setn.com##.rightFloat +https://baidu.com##.rmb-carsousel-position-bottom +https://baidu.com##.rmb-growth-common-tpl-1-wrapper +https://baidu.com##.s-news-banner-wrap +https://baidu.com##.s-tutorial-tip +https://baihe.com##.scrollULeft +https://baihe.com##.scrollUpf +https://koolearn.com##.show_ad +https://sina.com.cn##.side-btns-2wm +https://firefox.com.cn,firefoxchina.cn##.side-mod[track-key="side_tpth"] +https://babytree.com##.side-text-slider +https://hexun.com##.side618 +https://sogou.com##.side_adv_wrap +https://tianya.cn##.slider_box +https://56.com##.sohu-app +https://ctfile.com##.speedydown-info-box +https://jingyu.com##.stream-app +https://douyu.com##.summer_enter +https://co188.com##.suspen +https://51cto.com##.suspend +https://news.baidu.com##.swipe-backflow-container +https://miaopai.com,renren.com##.swiper-container +https://touzi.com##.tck-cover +https://sogou.com##.tg-box-1 +https://zhcw.com##.tgtc +https://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.thread_recommend +https://jiankang.com##.three_hot +https://pc841.com,zol.com.cn##.today-hot-layer +https://jianshu.com##.top +https://163.com,zybang.com##.top-banner +https://btime.com##.top-bar +https://sogou.com##.top_adv_wrap +https://zybang.com##.top_download +https://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.topic_list_box +https://renren.com##.toplive +https://163.com##.topnav_ad +https://kuwo.cn##.tuiguang +https://hao123.com##.tvtip +https://163.com##.txt-bobo +https://yd.baidu.com##.ui-distribution-bar +https://51cto.com##.upopbg +https://letv.com##.vip_popBox +https://nen.com.cn##.w610 +https://wbiao.cn##.wb-panel +https://jrj.com.cn##.wbyy +https://cnbeta.com##.wdj_box +https://feng.com##.wea_d_panel_980 +https://hehagame.com##.webad_bottom +https://hehagame.com##.webad_right +https://kdslife.com,pchome.net##.weixin +https://to8to.com##.whan-ad +https://w3cschool.cn##.widget-main +https://m.babytree.com##.wrap > section[class*="0"],.wrap > div[class*="0"] +https://m.babytree.com##.wrap > section[class*="4"],.wrap > div[class*="4"] +https://m.babytree.com##.wrap > section[class*="9"],.wrap > div[class*="9"] +https://m.autohome.com.cn##.wrapper > section[class^="box_"] +https://yahoo.com##.wrapper-border > .Pos\(r\) > .VideoPlayer.D\(b\).Pos\(r\) +https://56.com##.x-download-panel +https://wallstreetcn.com##.xinren-wrapper +https://1010jiajiao.com##.xiti_content + .xiti +https://56.com##.xiu_mm +https://ifeng.com##.yc_con_r +https://8264.com##.zhidemaibox +https://zol.com.cn##.zolapp +https://1905.com##.zx-pic +https://1905.com##.zx-small-pic +https://m.babytree.com##a[class$="-join"] +https://m.56.com##a[data-statkey="newad_banner"] +https://loldk.com##a[href$=".html?from=video_right"] +https://ifeng.com##a[href*=".app"] +https://163.com##a[href*=".kaola.com"]:first-child:last-child +https://sina.com.cn##a[href="https://finance.sina.com.cn/mobile/comfinanceweb.shtml"] +https://crsky.com##a[href^="http://count."][href$=".exe"] +https://163.com,~love.163.com##a[href^="http://love.163.com/"] +https://ltn.com.tw##A[href*="draw.ltn.com.tw"] +https://baidu.com#?#.rec-item:-abp-has(> .vbox > div > .appad-relate-rectpl) +https://baijiahao.baidu.com,feed.baidu.com##body > div[id$="-container"]:last-child +https://cnbeta.com#?#div[style^="display:block !important;"] +https://cnbeta.com##div[style^="display:block !important;"] +https://dongao.com##div[class^="fu_"] +https://ifeng.com##div[class^="h"] > div[class$="-main"] +https://thenewslens.com##div[class^="help-tnl-container-"] +https://cntv.cn##div[class^="tchmk_"] +https://feng.com##div[class^="wea_d_"] +https://feng.com##div[class^="wep_e_"] +https://eastmoney.com##div[id^="em_important_"] +https://finance.sina.com.cn##div[id^="st01_cont0"] +https://ci123.com##div[onclick^="window.location="] +https://subhd.com##div[style="position:fixed;bottom:20px;left:20px;"] +https://xdf.cn##div[style="position:fixed;top:120px;left:4px;width:210px;height:298px;isplay:block;background-position:initial initial;background-repeat:no-repeat no-repeat;"] +https://fmdisk.com##div[style="width: 960px; margin: 0 auto; height:900px; color: #F00; font-size: 14px; text-align:left;"] > p +https://2cto.com##div[style^="float:left;width:300px;"] +https://ithome.com##div[style^="width:960px;height:60px;"] +https://m.babytree.com##script + a[class] +https://weibo.com###v6_pl_content_hometip +https://weibo.com###v6_pl_rightmod_attfeed +https://weibo.com###v6_pl_rightmod_noticeboard +https://weibo.com###v6_trustPagelet_recom_member +https://weibo.com###v6_pl_rightmod_rank +https://weibo.com##.S_txt1[nm="game"] +https://weibo.com##.WB_footer > .footer_link +https://weibo.com##.WB_footer > .other_link +https://weibo.com##.send_weibo > .title_area +https://weibo.com##div[node-type="recommendTopic"] +https://weibo.com##.W_tips.tips_warn +https://weibo.com##.WBIM_news +https://weibo.com###v6_pl_rightmod_updatev6 +https://weibo.com##.WB_main_r > div[style^="position: fixed;"] +https://weibo.com##.PCD_event_red2014 +https://weibo.com###v6_pl_rightmod_hongbaoentrance +https://weibo.com###v6_pl_rightmod_feedback +https://weibo.com###v6_pl_rightmod_helpat +https://weibo.com###v6_pl_rightmod_helpcomment +https://weibo.com###v6_pl_rightmod_helplike +https://weibo.com###v6_pl_rightmod_helpnotebox +https://weibo.com###v6_pl_rightmod_helpgroupchatnotice +https://weibo.com###v6_pl_rightmod_favyoudao +https://weibo.com###v6_pl_rightmod_helpfav +https://weibo.com###Pl_Core_P7MultiPicPlay__7 +https://weibo.com##.apps_PCD_reco_detail_right +http://ubmcmm.baidustatic.com +http://szxx.com.cn###A0 +http://szxx.com.cn###A1 +http://szxx.com.cn###A2 +http://gpcxw.com###AA2 +http://yahoo.com###ACT_crazy +http://yahoo.com###ACT_takeover +http://yahoo.com###ACT_takeover2 +http://hc360.com,yaolan.com###AD +http://21yq.com,yaolan.com###AD1 +http://itavcn.com###ADE +http://sina.com.cn###AD_Background_Wall_BG +http://sina.com.cn###AD_Background_Wall_BG_Link +http://sina.com.cn###AD_Background_Wall_Banner +http://51cto.com###ADsList +http://esu.moe,esu.wiki###ASSPC +http://i-part.com.tw###AdBanner785 +http://elecfans.com###AdHtmlRight +http://bbs-tw.com###AdImg +http://hboav.com###AdTitle +http://hboav.com###AdTitle + table +http://bookgew.com###AdsT +http://diyifanwen.com###ArtTl +http://zol.com.cn###Article_Top_Banner +http://avmimi.com###ArticlesEx_box +http://gamer.com.tw###BH-ad_banner +http://gamer.com.tw###BH-bigbanner +http://ifeng.com###CA_left +http://ifeng.com###CA_right +http://cnfol.com###CjAdvBt +http://pjtime.com###Couplet_l_big +http://pjtime.com###Couplet_l_small +http://pjtime.com###Couplet_r_big +http://pjtime.com###Couplet_r_small +http://jiaodong.net###FixedLeft +http://jiaodong.net###FixedRight +http://stnn.cc###FloatDIV +http://chinatp.com.cn###FloatL_2 +http://chinatp.com.cn###FloatLa +http://chinatp.com.cn###FloatRb +http://angelweb.cn###G640x60 +http://114la.com,ylmf.com###GameAdv +http://hupu.com###HCFull +http://114la.com,ylmf.com###HDtopBar +http://azofreeware.com,pttjoke.com###HTML3 +http://azofreeware.com###HTML7 +http://zhoushan.cn###Headtop +http://tigtag.com###Home1000x70_A29 +http://tigtag.com###Home280x80_A16 +http://tigtag.com###Home942x70_A1 +http://xd0.com###HtmlMoKua_775790 +http://diyifanwen.com###Hzh1 +http://diyifanwen.com###Hzh2 +http://21ic.com###IC2008Ad +http://rfidworld.com.cn###IOTVote2017Ad +http://fx168.com###ImgText_01 +http://fx168.com###ImgText_02 +http://fx168.com###ImgText_03 +http://gq.com.tw###IndexCover +http://rijutv.com###JU +http://dj97.com###J_A_B +http://duba.com###J_BottomAdBan +http://duba.com###J_BottomAdBan_bg +http://duba.com###J_FloorWave +http://duba.com###J_FloorWrap +http://duba.com###J_S11 +http://2345.com,hao774.com###J_act_plane_hb +http://2345.com###J_acts11_footerfixed +http://xiami.com###J_albumSale +http://2345.com###J_bgSug1st +http://gaokao.com###J_fixed_popbox +http://2345.com###J_go_erweima +http://uc123.com###J_logoLeft +http://huya.com###J_roomGg2 + a +http://2345.com###J_s11_foot +http://2345.com,hao774.com###J_search_bd > div:last-child +http://uc123.com###J_shoppingPush +http://duba.com,uu114.cn###J_sideFooter +http://chem99.com###J_tcode +http://2345.com###J_tip_stopXP +http://jin10.com###J_wdgg_t +http://qzwb.com###Javascript\.RightDiv +http://pconline.com.cn###JdlFixed +http://pconline.com.cn###JrightSideFocus +http://huarenjie.com###LeftAd2 +http://eastmoney.com###ListPage_r_Ad +http://elecfans.com###MiddleLeaderboard +http://yunlaige.com###PAGE_baidu_4 +http://yunlaige.com###PAGE_baidu_5 +http://sogou.com,soso.com###PZL +http://sogou.com,soso.com###PZR +http://airav.cc###Panel_GambleZone +http://airav.cc###Panel_GambleZone + .Hide_For_JP_AND_EN +http://th7.cn###PcPoPmarket +http://aiyuke.com###Playerpad +http://iis7.com###QTGG +http://elecfans.com###Right2 +http://huarenjie.com###RightAd2 +http://airav.cc###Right_Panel > div[style^="margin-"] +http://sina.com.cn###SI_Comment_DA +http://www.sina.com.cn###SI_EDU_AD +http://aishoujizy.com###ShouYe_ShangBu > .HtmlMoKua:first-child +http://xiaokuangyl.com###ShouYe_ShangBu > .themeauthor > table:first-child +http://70bt.cn###ShowAD +http://gushiwen.org###ShowAd +http://upan.cc###ShowDIV +http://soopat.com###SoopatAside +http://ifeng.com###StreamMediaWrap +http://webkaka.com###Table1 +http://shhgg.in###TopTipHolder +http://csdn.net###Topic_Top +http://07073.com###Vsss00 +http://cnzol.com###Wl_Float_Div +http://duote.com###\32 345_ad +http://jisuxz.com###\32 345float +http://morningpost.com.cn###\33 60hot +http://zongheng.com###\36 roomRecommend +http://renrenfabu.com###\39 1banner +http://hao123.com###\5f _wgt_0_1 +http://hao123.com###\5f _wgt_0_13 +http://ofweek.com###\5f ad-2100 +http://hao123.com###__elm_0_4 +http://973.com###a0 +http://admin5.com###a22 +http://mtv-ktv.net###aShow +http://le.com###a_body_11628 +http://yatu.tv###a_d1 +http://le.com###a_title_11628 +http://51dll.com,fulisuo.com,fulisuo1.com,papa1024.com###aa +http://ik123.com###aa960a +http://discuss.com.hk###ab_div_px1 +http://2345.com###abanner +http://hao.360.cn,hao.360.com###activity +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###activity_countdown_head +http://jqgcw.com,srzc.com,vuejs.org###ad +http://ofweek.com###ad-2100 +http://ruten.com.tw###ad-467 +http://itxueyuan.org###ad-beifeng-729-90 +http://duba.com###ad-detail-banner +http://duba.com###ad-dongman +http://titan24.com###ad-index-01 +http://ithome.com.tw###ad-on-top +http://udn.com###ad-pall +http://kiwsy.com.hk###ad-popup-dialog +http://kiwsy.com.hk###ad-popup-dialog-overlay +http://autohome.com.cn###ad-top-1111 +http://dbw.cn###ad-word +http://dayoo.com###ad-xl +http://baike.com###ad-xnsc +http://duba.com###ad-zongyi +http://price.com.hk###ad0 +http://90oo.com,etest8.com,eworldship.com,hntobacco.com,jc001.cn,p9.com.tw,price.com.hk,vipbuluo.com,xinhuanet.com,ylnet.com.cn,zimuzu.tv###ad1 +http://booklink.me,eworldship.com,p9.com.tw,xinhuanet.com,zimuzu.tv###ad2 +http://zimuzu.tv###ad3 +http://efu.com.cn###ad4 +http://price.com.hk###ad5 +http://yuqingcn.cn###ad715x90 +http://hur.cn###ad810_2 +http://hur.cn###ad810_6 +http://vjmedia.com.hk###ad900 +http://dahe.cn###adArea1 +http://baidu.com###adCard +http://yeecloud.com###adFirefox +http://baidu.com###adMainTopLeft +http://baidu.com###adMainTopRight +http://plu.cn###adMask +http://xunyingwang.com###adModalLabel +http://huanqiu.com###adP-Bot-right-float +http://baidu.com###adTitleRight +http://gameapps.hk###adTopClickAreaLeft +http://gameapps.hk###adTopClickAreaRight +http://gameapps.hk###adTopClickAreaTop +http://sogou.com###adWindow +http://sina.com.cn###ad_blk_fixed +http://windows7en.com###ad_btm_down +http://gdmm.com###ad_cover +http://udn.com###ad_curtain +http://gpcxw.com###ad_dl +http://gpcxw.com###ad_dl2 +http://house.jschina.com.cn###ad_dl_left +http://house.jschina.com.cn###ad_dl_right +http://88448.com###ad_forum_banner +http://btime.com###ad_full_button_placehoder +http://autohome.com.cn###ad_ic_video +http://lqz.cn###ad_index +http://babyhome.com.tw###ad_m_peacock +http://udn.com###ad_mag +http://100ksw.com###ad_move_sg +http://zysj.com.cn###ad_pc_bottom +http://csdn.net,itboth.com,iteye.com,itkeyword.com###ad_pop +http://c114.com.cn###ad_r1 +http://lzep.cn###ad_side_l +http://lzep.cn###ad_side_r +http://bioon.com###ad_tb +http://taoguba.com.cn###ad_tgb_list +http://cctime.com###ad_three +http://sina.com.cn###ad_tl_01 +http://gaokao.com###ad_top_gkw +http://megatime.com.tw###ad_type_9 +http://baidu.com###ad_xbox_1 +http://baidu.com###ad_xbox_2 +http://baidu.com###ad_xbox_3 +http://localking.com.tw###adbannerurl +http://yxdown.com###adbg +http://tbtdg.com###adblockWarning +http://lzep.cn###add +http://chongbuluo.com###add + a +http://fhm.com.tw###add-box +http://speedtest.cn###add_r1 +http://speedtest.cn###add_r2 +http://17yy.com###addiv +http://3322.cc###addr +http://rj.baidu.com###ader +http://eol.cn###adfloat_l +http://eol.cn###adfloat_r +http://jia360.com###adl +http://172cat.com###adload +http://vip-free.com###adpic +http://jia360.com###adr +http://ahtv.cn,frdic.com,huasing.net,it168.com,qinbing.cn###ads +http://nownews.com###ads-footer-bar +http://disp.cc###ads_page_b +http://disp.cc###ads_page_r +http://yes-news.com###adsc3 +http://yes-news.com###adsc4 +http://image.baidu.com###adsearch +http://dahe.cn###adsg +http://ishuati.com###adsh +http://whsir.com###adswidget1-quick-adsense-2 +http://weather.com.cn###adtop_r +http://btspreadcn.com###adultwarningmask +http://dm530.net,it168.com###adv +http://chinabyte.com###adv-button +http://js0573.com###adv1 +http://js0573.com###adv2 +http://wenku8.net###adv300 +http://firefoxchina.cn###advBlock +http://nnfcxx.com###adv_3 +http://shurua.com###advbox +http://104.com.tw###aidma-job +http://104.com.tw###aidma_128 +http://104.com.tw###aidma_588 +http://ali213.net###ali-js-4 +http://shenchuang.com###all +http://aizhan.com###all_text_content +http://liisex.com###apDiv22 +http://sogou.com###appNewsBtn +http://sogou.com###appRedPackageAd +http://dmzj.com###app_home_ad +http://dmzj.com###app_manhua +http://hao123.com###append +http://txahz.com###archy_ad2 +http://huanqiu.com###artHqsc +http://wx.sina.com.cn###artibody > .article-video +http://zhuankebar.com###article-cnt > a +http://blog.csdn.net###article_content > link + a +http://p2peye.com###article_content a[ref="nofollow"] +http://doyo.cn###article_top_down +http://tingvoa.com###articletopimg +http://360doc.cn###artnewdiv +http://csdn.net###asideCustom36733263 +http://csdn.net###asideCustom65392991 +http://baidu.com###asideLeft +http://baidu.com###asideRight +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###attention-game-wraper_dialog +http://vjmedia.com.hk###author-spotlight + .clear + div +http://androiddevtools.cn###auto-scroll-ad-box +http://ck101.com###av_a +http://bing.com###b_results > li[style*="padding-bottom: 8px;"][style*="235, 235, 235"] +http://520cc.me###back-to-top > a[href^="http"] +http://hao.360.cn###background.festival +http://china.com.cn###baidu +http://ifeng.com###baidualading +http://52pk.com###baidutop +http://52pk.com###baidutop2 +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###baiduweishiDown +http://newsmth.net###ban_ner +http://ufanw.com###banne +http://cwyuni.tw###banner > h2 +http://iwan.baidu.com###banner-box +http://iwan.baidu.com###banner-info +http://qidian.com###banner-two +http://360.cn###banner0 +http://ballbar.cc,qidian.com###banner1 +http://360.cn,ballbar.cc,muchong.com###banner2 +http://ksbbs.com,kshot.com###banner2_top +http://qidian.com###banner3 +http://360.cn###banner_2 +http://99tianji.com###banner_gg +http://ksbbs.com,kshot.com###banner_top +http://uestc.edu.cn###bar +http://c114.com.cn###barrage_ad +http://c114.com.cn###barrage_bg +http://hao.rising.cn###bbTao +http://zimuzu.tv###bbs_list_ad +http://muchong.com###bbsmain > div[style="padding:10px 0;"] > table +http://cntv.cn###bbspop +http://gamme.com.tw###bd +http://acfun.cn###bd_ad1 +http://makaidong.com###bdcs +http://sogou.com###bdfs0 +http://baidu.com###bdyx_float_rb +http://qxfun.com###beautiful-things +http://1kkk.com,bukade.com,dm5.com,dm5.hk,sfacg.com###beitou +http://eeyy.com###beitou_box +http://dataguru.cn###bg +http://91danji.com###bg_ad +http://kyofun.com###bg_ad_left +http://kyofun.com###bg_ad_right +http://netbardh.com###bg_left +http://52pk.com,hanhande.com###bg_link +http://netbardh.com###bg_right +http://eol.cn###big-ad-img +http://timedg.com###bigAdv +http://gdzjdaily.com.cn###bigblockAd +http://bitauto.com###bitAd_background +http://bitauto.com###bitAd_floatFlash +http://dilidili.wang###bkm +http://e-learn.cn###block-changyanpinglunxia8 +http://e-learn.cn###block-layui-ele +http://e-learn.cn###block-tengxunyunshuang11 +http://zaobao.com###block-views-zb2016-freefrom-block-1 +http://e-learn.cn###block-wenzilianjie +http://e-learn.cn###block-youxiajiao +http://gmgard.com,hggard.com###blog > div[style="overflow:hidden"] +http://blog.163.com###blog-163-com-toptips +http://so.com###bnbtm-banner +http://159i.com###body > table[width="100%"] +http://microcontrol.cn###body > table[width="758"] +http://nick20.com###body_page_sharer ~ table[width="100%"] +http://tom.com###body_right_banner +http://esdict.cn,eudic.net,frdic.com,godic.net###bodycontent > style + div[id] +http://airav.cc###bottom-adv +http://hiwenku.com###bottom-advert +http://recruit.com.hk###bottomBar +http://10086.cn###bottomBigBanner +http://wapwenku.baidu.com,wk.baidu.com###bottomFixed +http://auto.sina.com.cn###bottomInquryBar +http://masok.cn###bottomLayer +http://hao.360.com###bottom_hotsite +http://badmintoncn.com###bottomad_big +http://kdhome.net###bottomadv +http://vzhuan.cn###box +http://50sen.com###box-ads +http://mcdulll.com,mcdulll.pixnet.net###box1290930 +http://mcdulll.com,mcdulll.pixnet.net###box1989082 +http://cwyuni.tw###box34614 > [class^="box-"] +http://lohas.pixnet.net###box785805 +http://finance.ifeng.com###box_img +http://zhan.com###box_tips +http://hefei.cc###bp_ad +http://sogou.com###browser_ad +http://orsoon.com###btn-down-one +http://wap.eastmoney.com###bulletin_board > ul[id] +http://pchome.net###bzhref +http://fuli.us###callboard +http://ck101.com###canvas-section +http://cangku.in,galacg.me,moneyweekly.com.tw###carousel-example-generic +http://bitauto.com###carshow +http://bbs-mychat.com###cate_top > tr > .f_one +http://cnbeta.com###cb_share > .fl +http://sina.com.tw###cboxOverlay +http://eworldship.com###ccrhshow +http://dapenti.com###center > div[align="center"][target="_blank"] +http://huarenjie.com###cftoutiao +http://hao.rising.cn###change +http://i-part.com.tw###chatroomFrame + div[style="text-align: center;padding-top: 10px"] +http://fulishequ.com###china_ads_div405 +http://cqfishing.net,gpshk.cc###chs_bannerArea +http://gz0668.com###closexguide +http://uuu9.com###cm1337 +http://baidu.com###cms-company +http://baidu.com###cms-scroll +http://image.baidu.com###cmsimage +http://chinaqking.com###cnt-ad +http://2345.com###cnxh +http://sina.com.tw###colorbox +http://haianw.com###comiis_haianw01 +http://haianw.com###comiis_haianw13 +http://haianw.com###comiis_haianw14 +http://chcj.com###comiis_sfcs00 +http://jrj.com.cn###comment > a:first-child +http://fuli.us,tianshif.com###comment-ad +http://elecfans.com###company-ad +http://ithome.com###con > div[style="text-align:center"] +http://apk.tw###confirmOverla +http://gate.baidu.com,m.baidu.com###container +http://gg163.net###container > table[width="960"] +http://jb51.net###contbot +http://biquge001.com,fuliba.net###content > a +http://fuliba.net###content > div:first-child > a:first-child:last-child +http://go-gddq.com###content > div[style="float: Right;"] +http://fuliba.net###content > ul[style="list-style-type: none;"] +http://yes-news.com###content-728 +http://yes-news.com###content-728-top +http://yes-news.com###content-ads-right +http://jdyou.com###contentSlide +http://udn.com###content_body_banner +http://qihoo.com###content_bottom_gg +http://qihoo.com###content_bottom_left_gg +http://aa25.cn###content_head +http://jpwind.com###content_right_ad2 +http://aa25.cn,kafan.cn###content_top +http://qihoo.com###content_top_gg +http://mbd.baidu.com###content_wrapper + div + .default-container +http://jb51.net###contsec +http://0597kk.com###cool_fixed +http://2345.com###corner-flash +http://2345.com,hao774.com###corner_a +http://airav.cc###corner_cf +http://2345.com,hao774.com###corner_div +http://qihoo.com###countdown1111 +http://sg169.com###coupleft +http://baidu.com,danyang.com###couplet-left +http://baidu.com,danyang.com###couplet-right +http://youxi.baidu.com###coupletBanner +http://sg169.com###couprigth +http://eepw.com.cn###coverDiv +http://1688.com###cpm-ad +http://1688.com###cpm-ad-2 +http://idanmu.at###cpv +http://nownews.com###crazy-video +http://yahoo.com###crazyAD +http://muchong.com###creditegg +http://ipcfun.com###crumb_r +http://wpsoso.com###cse-search-box > p +http://wjx.cn###ctl01_ContentPlaceHolder1_divProMsg +http://fzlimg.com###ctopad +http://fzlimg.com###ctopadtop +http://free.com.tw###custom_html-11 +http://hexieshe.cn###custom_html-2 +http://wanghualang.com###cx_tag_cloud-2 ~ aside[id^="php_text-"] +http://makaidong.com###cyWallsplugin +http://eworldship.com###d1 +http://eworldship.com###d2 +http://cool18.com###d_right_ad +http://1010jiajiao.com###daan_recommend + .xiti +http://hao.360.cn###daily-hotword +http://6789.com,hao.360.cn,hao.360.com###daily-hotwords +http://iask.sina.com.cn###daily_topic_flnr +http://mydrivers.com###dangbei_down +http://kpw6.com###daojs +http://fzdao.cn###datu +http://ytbbs.com###dd1 +http://4399.com###defaultbglink +http://sogou.com###detailRightAd +http://stockstar.com###dhwzl +http://141hongkong.com###dialog +http://chinanews.com###dingtong +http://3boys2girls.com###displayadb1 +http://3boys2girls.com###displayadbu3 +http://szhk.com###div01 +http://3boys2girls.com###div3_display3 +http://wendangwang.com###divActivity +http://findprice.com.tw###divBestBuy +http://76xh.com###divFendDuo +http://splaybow.com###divPrevious:last-child +http://rfidworld.com.cn###divTopContainer +http://nmgnews.com.cn###div_ad4 +http://webkaka.com###div_bottomad_m +http://twpkinfo.com###div_close_cf +http://3boys2girls.com###div_display +http://eeyy.cc###div_dn +http://heiguang.com###div_heiguang_ad3 +http://heiguang.com###div_heiguang_ad4 +http://chem99.com###div_main_ta +http://ref.so###div_midleft +http://ck101.com,pchome.com.tw###div_superbar_swf +http://360doc.com###divaboveReflectionAd1 +http://360doc.com###divaboveReflectionAd2 +http://360doc.com###divunderZcommondAd +http://360doc.com###divyoulikead +http://0562.cc,114shouji.com,1xlala.com,528500.com,52jscn.com,5378cc.com,5imx.com,99nets.me,bansha.com,bbs.52life.cc,chcj.com,chcj.net,cm868.com,cnyw.net,cqfishing.net,discuzlab.com,hh010.com,i3zh.com,im286.net,kugz.com,ld0766.com,luanren.com,mahoupao.com,qilanxiaozhu.net,qinzhou8.com,sh419.net,suizhoushi.com,txahz.com,wishct.com,xsool.com,ybvv.com,ytshe.com###diy1 +http://d7w.net###diy10 +http://im286.net###diy110 +http://cbber.com###diy2 +http://chiphell.com###diy2 + div +http://gpshk.cc,oneplusbbs.com,wstx.com,xiaot.com###diy4 +http://cbber.com,qilanxiaozhu.net,xiaot.com###diy_chart +http://chinafix.com###diy_col_1-3 +http://5imx.com###diy_mxad02 +http://5imx.com###diy_mxad03 +http://5imx.com###diy_mxad04 +http://5imx.com###diy_mxad06 +http://5imx.com###diy_mxnewsad01 +http://airav.cc###diy_right +http://0517w.com,lysq.com###diyad +http://cnpingpang.com###diycity1103 +http://storyren.com###diyfastposttop +http://im286.net###diyflash +http://qbaobei.com###diyforumdisplaybottom +http://0517w.com,1xlala.com,365kl.net,3qled.com,52ch.net,bbs.qbaobei.com,chcj.net,chinafix.com,cnyw.net,gz0668.com,mahoupao.com,mcncc.com,qilindao.com,xsool.com###diynavtop +http://51nb.com###diynavtop + .t_rown[cellpadding="5"] +http://bbs.pcbeta.com###diynavtop + style + div[class] +http://yshw1.com###diynews_ad1 +http://lahoo.ca###diyrighttop +http://114la.com###dlAD1 +http://114la.com###dlAD2 +http://ebiotrade.com###dlBoxs +http://docin.com###docindex_ad +http://udn.com###doctop +http://niutuku.com###downAD1 +http://qiannao.com###downTb + div +http://sm.cn###download-uc +http://sm.cn###download-uc-v2 +http://howfile.com###downloadtable + div > table[style="margin-top:5px"] +http://nczsks.com###downyxjs +http://langxi.org###drk_ledtd +http://chinanews.com###dt_advert +http://ptbus.com,weather.com.cn###duilian +http://my0511.com###duilianleftdiv +http://my0511.com###duilianrightdiv +http://gongkong.com###dull_left +http://gongkong.com###dull_right +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###duoku_servers_list +http://chongbuluo.com###dzrid > .frame:nth-child(n+2) +http://so.com###e_idea_left +http://so.com###e_idea_pp +http://so.com###e_idea_wenda_detail_guess_new +http://so.com###e_idea_wenda_leftBox +http://easou.com###ec-results-c +http://baidu.com###ec_im_container +http://hao123.com###ecom +http://image.baidu.com###ecomContainer +http://hjenglish.com###editor_a4 +http://gcxa.cn###edu_ad63 +http://letv.com###egg +http://21cn.com###embed_hzh_div +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###encourage_entry +http://hc360.com###endAccessories1 +http://hc360.com###endAdBanner +http://chinabidding.cn,chinabidding.com.cn###erweima_l +http://chinabidding.cn,chinabidding.com.cn###erweima_r +http://anhuinews.com###ewm +http://maomaomom.com###execphp-15 +http://maomaomom.com###execphp-21 +http://maomaomom.com###execphp-4 +http://www.pixnet.net###extradiv2 +http://www.pixnet.net###extradiv5 +http://apk.tw###favatarRight +http://happy-yblog.blogspot.com,happy-yblog.blogspot.hk,happy-yblog.blogspot.tw###fbox-background +http://baidu.com###fc-left +http://baidu.com###fengchao-dialog +http://baidu.com###fengchaoad +http://maxthon.cn###festival-fix-bottom +http://360.cn###festival-logoskin +http://maxthon.cn###festival-rain-wrapper +http://hao.360.cn###festival-theme > .left-entry +http://hao.360.cn###festival-theme > .right-entry-wrap +http://360.cn###festival_baijian +http://360.cn###festival_balloon +http://hao.360.cn###festival_fly +http://hao.360.cn###festival_fly + .couten +http://6665.com###fgdiy01 +http://6665.com###fgdiy09 +http://elecfans.com###fix-tdkad +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###fixed_bar +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###fixed_daoliu +http://duba.com###fixedad +http://qqread.com###flash310ad +http://haha.mx###float-left-ad +http://speedpan.com###float-window +http://fun48.com###float2016 +http://guagua.cn###floatRoomDiv +http://zmz2019.com###float_ad +http://eeyy.com###float_ad0 +http://123du.cc,bokon.net,eol.cn###float_l +http://jnnc.com###float_layer +http://ssnn.net###float_picr +http://123du.cc,bokon.net###float_r +http://28hse.com###floating_left_div +http://brushes8.com###flxgg +http://gamer.com.tw###flyRightBox +http://gamer.com.tw###flySalve +http://juxia.com###fmt +http://apk.tw###focus +http://fulibus.net,wuzuowei.net###focusslide +http://bitauto.com###folieAdNews +http://wdzj.com###footbanner +http://jxedt.com###footer +http://ttzmz.vip###footer > div[style] +http://ettoday.net###for-ec +http://uwants.com###foruminfo + div[align="center"] +http://my0511.com###forumtextad +http://xianliao.me###frame > .xianliao_component +http://wcjbb.com###frame2TVWk2 +http://filmaker.cn###frame2gS3Ea +http://wcjbb.com###frame37boCx +http://yangluo.cn###frame51RcxP +http://tvapk.net###frame5zglZ4 +http://playno1.com###frame8I822E +http://tahua.net###frameJjnBIp +http://dabin69.com###frameOa2lrD +http://ytshe.com###frameUTSzKE +http://yangluo.cn###frameVw7574 +http://gz0668.com###framec32DR1 +http://tvapk.net###framecd6V1M +http://tvapk.net###framelP7piy +http://qhf168.com,qianhua.biz,qianhuaw.com###framelzHoHY +http://wcjbb.com###frameo834m9 +http://aishs.top###frameu9916W_left > .block:nth-child(-n+6) +http://18avhub.com,18avtube.com,avmimi.com,mm-cg.com###friendLink +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###frs-list-game +http://docshelper.net###ft_ad +http://wendangxiazai.com###ft_hb +http://fancai.com,gamemei.com###ft_right_bottom +http://windows7en.com###fu_box_logo +http://cnyes.com###full_ad-popup +http://cnyes.com###full_ad-screen +http://ifeng.com###funBar +http://baidu.com###gamePromo +http://51.com###game_advlayer +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###game_cover_head_wrapper +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###game_forum +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###game_frs_head +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###game_live_list +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###game_live_widget +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###game_rank +http://discuss.com.hk###gamepage_banner +http://downxia.com###gaosu_div0 +http://downcc.com,pc6.com,zdfans.com###gaosuxiazai +http://www.infoq.com###gbanner.gbanner +http://66ys.tv,6vhao.net,dygang.com###gd +http://ruanyifeng.com###gd1 +http://whnews.cn###gd_l +http://whnews.cn###gd_r +http://ant.design###geektime +http://ant.design###geektime-ads +http://dilidili.name,zdzdm.com###gg +http://sdgundam.cn###gg-banner +http://vvshu.com###gg120 +http://5173.com###gg330 +http://5173.com###ggFloat +http://xiazaizhijia.com###gg_1 +http://xiazaizhijia.com###gg_2 +http://xiazaizhijia.com###gg_3 +http://324324.cn###gg_468_60 +http://324324.cn###gg_728_90 +http://yy.com###gg_left +http://yy.com###gg_right +http://7654.com###gg_top +http://shouji56.com###gg_top_banner +http://baidu.com###ggbtm +http://wenku.baidu.com###ggbtm-ads +http://huya.com###ggcomment +http://52pk.com###ggfloat +http://china.com.cn###gggg +http://discuss.com.hk###gid_group_restricted > .gid_group_title +http://danyang.com###global-hd > div[align="center"] +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###global_notice_wrap +http://eprice.com.tw###goldlink +http://rebooo.com###gong +http://acfun.cn###goniudan +http://gameapps.hk###google_side_ad2_top +http://aimazu.com###gotoTop +http://js0573.com###gotopl +http://js0573.com###gotopr +http://cnr.cn###gtop00 +http://creaders.net###guanggao2 +http://gasaq.com###guanggao_left +http://gasaq.com###guanggao_right +http://hao123.com###guesslikesite +http://hao123.com###guesslikesite-block +http://szhk.com###h_banner +http://szhk.com###h_textads +http://hao123.com###hao123-gw11 +http://macd.cn###hbad +http://coolaler.com###hd +http://gdmm.com###hd > .wp > .module +http://hackhw.com,ithome.com###hd_float +http://he-games.com###he_banner_ad +http://he-games.com###he_bottom_ad +http://1ydt.com###head +http://opticsky.cn###head > .tac +http://gaoqing.la###head > a +http://pythontab.com###head-bottom +http://elecfans.com###headJf +http://hao123.com###headJoke +http://tbxt.com###headad2 +http://solidot.org###headads +http://lxty66.com###header + .tac.mb5 +http://33235.net###header > center +http://maxthon.cn###header-float-promote +http://2345.com###header-news +http://hao.360.cn,hao.360.com###header-patch +http://060s.com###header4 +http://bdinfo.net###header_AD +http://hnr.cn###header_banner_list +http://131458.com###header_gg +http://pediy.com###header_right_cell[width="603"] +http://huan.moe###headhead +http://duote.com###hengfu +http://moe-acg.cc###hengfu-widget +http://hexun.com,hexun.com.tw###hexunCouplet01 +http://eepw.com.cn###hiddenLayer +http://gamersky.com###hitix +http://w3cplus.com###home-page-widgets +http://wacowla.com###home-top-narrow +http://bjhockey.org###homeVideoModal +http://ruanyifeng.com###homepage_pos +http://3987.com###hongbao +http://3boys2girls.com###hotbar +http://sogou.com###hotel_vr_details +http://sohu.com###hotpicnew +http://yahoo.com###hp-ad-left +http://yahoo.com###hp-ad-right +http://huanqiu.com###hqbl123 +http://ifeng.com###hslide_sPic_360 +http://ifeng.com###hslide_sPic_baidu +http://narutom.com###hy_float +http://hz66.com###hzhead + .column +http://mingyg.cn###hzw_showmsg +http://mzyz.com###idTransformView2 +http://nownews.com###idle-layer +http://ifeng.com###ifengAehovering_small +http://tingroom.com###ifram_563 +http://hao.360.cn###iguess +http://ck101.com###image_ad_long +http://cnjxol.com,rznews.cn###img +http://nick18.com###img a +http://firstchina.org.cn,pharmnet.com.cn###img1 +http://e0575.com###img2 +http://114la.com,ylmf.com###imgArr +http://image.baidu.com###imgCmsAdPart +http://e10000.cn###imgFloat +http://image.baidu.com###imgid > .fcimgpage +http://54new.com###imgshow +http://ydss.cn###indexBlad +http://baidu.com###index_banner_top +http://zongheng.com###index_game +http://windows7en.com###index_long_first +http://baidu.com###index_right_float +http://baidu.com###index_right_top +http://58.com###infolist > .recycleInfo +http://520cc.cc,jav777.cc###inplayer +http://pchome.net###intel-bar +http://mm-cg.com###ioshowAD +http://xh127.com###isubpi +http://narutom.com###itaTop +http://2345.com###ivy-taobao +http://baidu.com###j-ad-first +http://baidu.com###j-ad-side +http://letv.com###j-adr-playBT +http://letv.com###j-bottomBanner +http://iwan.baidu.com###j-ditu +http://iwan.baidu.com###j-media +http://qidian.com###j-topBgBox +http://qidian.com###j-topHeadBox +http://yaolan.com###j_focus_img +http://tieba.baidu.com###j_light_see_index +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###j_star_bus_before +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###j_ten_years +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###j_worldcup_info_banner +http://ydss.cn###jd_test +http://freehao123.com###jieweigg +http://awaker.cn###jiji + div[style="padding: 20px"] +http://cnbeta.com###job_box +http://aiyuke.com###js-ad-type4 +http://tigtag.com###js-dropdown +http://163.com###js-ep3rdRank +http://so.com###js-mod-fixed-float +http://zhanqi.tv###js-room-flash-banner-panel +http://cnxz.cn###js_focusimg3 +http://image.so.com###js_textlink +http://ifeng.com###js_videopause_container +http://airav.cc###jssor_banner +http://mh160.com###jusha1 +http://xianshuabao.com###justfy_left_banner +http://pcstore.com.tw###keyad-right +http://0597kk.com###kk_content1_left_ad1 +http://0597kk.com###kk_head_ad +http://0597kk.com###kk_oTransContainer2 +http://1m3d.com###klp_adtop +http://sogou.com###kmap_business_title +http://sogou.com###kmap_business_ul +http://csdn.net###kp_box_476 +http://csdn.net###kp_box_58 +http://douni.com###lad_1 +http://douni.com###lad_2 +http://douni.com###lad_3 +http://douni.com###lad_5 +http://csdn.net###layerd +http://hao123.com###layout-guess +http://jobbole.com###leaderboard +http://baidu.com###left-promotion +http://hao.360.cn###left-ria-fixed +http://sdgundam.cn###left-sponsor +http://rising.cn###left50 +http://cs.com.cn,cssqt.com,qinbing.cn,sonimei.cn###leftDiv +http://hexun.com###leftFloat +http://duba.com###leftHot +http://51credit.com###leftLayerDown +http://ccb.com.cn###leftSideAd +http://2345.com###leftSideBar +http://kuai8.com###left_Ad +http://cpd.com.cn###left_bdad +http://hao.360.cn###left_float +http://sina.com.cn###left_focus_ad +http://timeon.cn###leftadv +http://hao123.com###leftbannerv2 +http://wed114.cn###leftdiv +http://ifeng.com###leftdl +http://leagueofmovie.com###leftfixedad +http://fqlook.com###leftfloatad1 +http://www.wenxuecity.com###leftside +http://hao123.com###lefttip-container +http://dilidili.name,dilidili.wang###lgg +http://sdgundam.cn###link-roll ~ .box-set-2 +http://cwyuni.tw###links-row-1 > div[id^="box"]:not(#box32499):not(#box1026387):not(#box34614) +http://51cto.com###list4 +http://uimaker.com###listbaidu +http://90bifen.com###live > table[cellspacing="0"][cellpadding="0"] +http://autohome.com.cn###live_rec +http://500.com###live_top_ad +http://bukade.com###loadimg +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###loan_ad_mod_a +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###local_pb_top +http://blog.163.com###loftertextlinkad +http://elecfans.com###login-tip +http://ly6080.com###loginInfo > a +http://djwma.com###logo +http://xuehuile.com###logoBanner +http://eepw.com.cn###logoSearchNews + .marb10 +http://histock.tw###logo_21_ad_768x901_pnlAD1 +http://letv.com###logo_activity +http://ebc.net.tw###lotteryfnc +http://nlc.gov.cn###lovexin12xx +http://rising.cn###lowerrightAd +http://my0511.com###lphybbschklogdiv +http://antpedia.com###luxury_car +http://dilidili.wang###m-box +http://playno1.com###m12 +http://playno1.com###m2 +http://playno1.com###m7 +http://2345.com###m_banner +http://2345.com###m_banner_2 +http://chacuo.net###mailtooltipss +http://g-years.com,ghoffice.com,gpsuu.com,mydigit.cn###main > .textMes +http://e0575.cn###main > div:first-child +http://qiannao.com###main > div[style="padding-left:20px;margin-top:10px;"]:first-child +http://ksbbs.com###main > div[style^="height:65px"] +http://secretmine.net###main-content > br +http://secretmine.net###main-content > center +http://jia360.com###mainADswitch +http://hkgolden.com###mainTopicTable > tbody > tr:nth-child(3):not([id]) +http://hkgolden.com###mainTopicTable > tbody > tr[id] + tr:not([id]) +http://mail.pchome.com.tw###main_top_frame +http://yimuhe.com###maincontent3 > div[style^="height"] +http://map.baidu.com###mapBanner +http://wenxuecity.com###marquee +http://xmfish.com###marry_laping +http://yaolan.com###maryAd +http://muchong.com###mask +http://gzmama.com###mdvtips +http://l114la.com###media +http://hinet.net###media_ad_popup_overlay +http://hexieshe.cn###media_image-2 +http://hexieshe.cn###media_image-3 +http://fuliba.net###menu-nav > .menu-item:nth-child(n+4):not(:last-child) +http://xiuren.org###menur +http://tv.sohu.com###miaozhenad +http://download.enet.com.cn###middle_new > .font2 +http://emu999.net,webjx.com###middleimg +http://m.hao123.com###midline +http://hao123.com###mingzhanresource +http://hk.yahoo.com###mntl1 +http://jspoo.com###module2748 +http://so.com###mohe-etao_shangye +http://so.com###mohe-gouwu > .g-shadow +http://so.com###mohe-m-smzdm_haojia +http://so.com###mohe-medicine_sy > .cont +http://so.com###mohe-right_windows_ads +http://wenxuecity.com###morehealth-banner-1 +http://nick18.com,niko18.com###mov > .content +http://gd163.cn,itavcn.com,jmnews.com.cn,xt700.com###msg_win +http://yahoo.com###my-adsHPSPON +http://yahoo.com###my-adsMBAR +http://pianyuan.net###myModal +http://qqjia.com###myadsL +http://xiaoz.me###mygg +http://javjunkies.com###naked-ad +http://narutom.com###naruto_desk +http://28188.com,28188.net,yxad.com###nav +http://ccav1.com###nav-menu > ul > .menu-item > a[href^="http"]:not([href*="yigujin."]) +http://tgbus.com###neck_970 +http://40407.com###nei_fmt +http://elecfans.com###new-adsm-berry +http://cnpingpang.com###new-flash +http://hc360.com###newAppBox +http://hc360.com###newAppBox1 +http://cam4.tw###newTippingViewer + div[data-ab] +http://elecfans.com###newTopAdArea +http://ishuaji.cn###new_banner +http://dilidili.wang###newapp2018 +http://yaolan.com###newfix-dsp +http://pigai.org###newnotice +http://chinaqking.com###newsAD +http://hexun.com###newsPopWin +http://chinanews.com.cn###news_top_advert +http://live.win007.com###notify > a[target="_blank"] +http://ssnn.net###nrk_gg +http://fx168.com###oilTopAd +http://duba.com###one-mid +http://duba.com###oneTip +http://duba.com###oneone +http://image.baidu.com###only-lady-sec +http://xiaohx.org###open +http://lgmi.com###openwindows0 +http://samsung.com###operationBanner +http://ifeng.com###optimusPrimeContentId +http://ifeng.com###optimusPrimeContentId_left +http://jiyingdm.com###otherWindowBox +http://ttzmz.vip###otherad +http://zimuzu.tv###output > li > a[href^="http"]:not([href*="resource/"]) +http://zimuzu.tv###output > li > a[href^="http"]:not([href*="resource/"]) + h2 +http://zmz2019.com###output > li > a[href^="http://www.zmz2019.com/public/focusurl/"] +http://zmz2019.com###output > li > a[href^="http://www.zmz2019.com/public/focusurl/"] + h2 +http://lalulalu.com###overture-side-bar-ads +http://3boys2girls.com###overture_ads_long +http://lalulalu.com###overture_main_banner +http://manhua.weibo.com###p-nav-fix + .p-area.w980 +http://image.baidu.com###pageLayoutTipWindow +http://xizi.com###pageRight-loop +http://rising.cn###pageflip +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###pagelet_encourage-appforum\/pagelet\/my_app +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###pagelet_encourage-tbguess\/pagelet\/sidebar +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###pagelet_frs-aside\/pagelet\/ad +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###pagelet_frs-header\/pagelet\/head_content_middle > div[class]:not([class*="_"]):first-child +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###pagelet_search\/pagelet\/search_ad +http://whnews.cn###panel +http://xdowns.com###part_1 +http://hifidiy.net###part_left2 +http://hifidiy.net###part_right_gg7 +http://18avhub.com,18avtube.com,mm-cg.com###partner +http://vuetifyjs.com###patrons +http://hefei.cc###pb_sm_l +http://bdimg.com,tieba.baidu.com,tieba.com,wapp.baidu.com###pblist > li[class]:not(.j_post_list_item) +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###pc2client +http://pchome.net###pchome_970_90_a +http://kaixindy.com###pege_ad1 +http://tsdm.live###pgt:first-child + div > a +http://ifeng.com###picAdposition +http://china.cn###pic_loop +http://muchong.com###pid1 > div > a[class] +http://sina.com.cn###pip_taobao +http://pixnet.net###pixblogad +http://pixnet.net###pixblogad-banner2 +http://pjtime.com###pjtime_full +http://blog.sina.cn###pl-ad-after-comments +http://blog.sina.cn###pl-adtop-bar +http://blog.sina.cn###pl-blog-artad +http://blog.sina.cn###pl-blog-tbyy +http://blog.sina.cn###pl-float-bar +http://weibo.com###pl_common_ali +http://focustimeshk.com###placeholder +http://hao.360.cn,hao.360.com###plane > .plane-hd +http://hao.360.cn,hao.360.com###plane-ria +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###plat_order_head +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###plat_recom_carousel > .activity_head +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###plat_recom_carousel > .tbui_slideshow_list +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###platform_left_float +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###platform_spread_video +http://zdqx.com###play-gif +http://tingroom.com###play_ggr +http://7k7k.com###player-ad +http://jyacht.com###playergg +http://yxingqiu.com###playertipian +http://image.baidu.com###plz-albums +http://image.baidu.com###plz-head-banner +http://gdzjdaily.com.cn###politicTopAd +http://ahgame.com,china.com.cn,netbardh.com,pangzi.ca###pop +http://game2.cn###pop-flash +http://1688.com.au###pop-up +http://eepw.com.cn###popBox +http://dataguru.cn###popDiv +http://dilidili.wang###popUp +http://jdyou.com###popWrap +http://ebiotrade.com###pop_banner1 +http://xclient.info###pop_business +http://cnplugins.com###pop_div +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###pop_frame +http://hinet.net###pop_media_ad +http://up01.cc###popad +http://2dfan.com###popadv-container +http://univisa.com.cn###popup +http://eprice.com.tw###popup-ad-overlay +http://tom.com###popupDivgame +http://ck101.com###popupGameAd +http://5173.com###popupRight +http://baixing.com###port-info +http://ld0766.com###portal_ad3 +http://x3cn.com###portal_block_12045 +http://ichunqiu.com###portal_block_157 +http://fuyang.net###portal_block_474 +http://fuyang.net###portal_block_502 +http://zhaiiker.com###post-single + .pd10.mar10-t.box +http://51cto.com###postform + a[style] +http://sosg.net###postlist + .cc +http://apk.tw###postlist > div:nth-last-child(2):not([id]) +http://wenku.baidu.com###ppt-bottom-ads +http://9le8.com###program_play_right +http://oschina.net###project_ad_banner +http://firefoxchina.cn###promo +http://firefox.com.cn,firefoxchina.cn###promote-top-list +http://sina.cn###promotionCover +http://tmsf.com###property_listf +http://bbs.pcbeta.com###pt + div[style] > div[style^="clear:both;"] +http://xiazaizhijia.com###public_right_mid_ad +http://bestopview.com###pubtextnone +http://hcomic.in###pv_all > a[onclick^="trackOutboundLink"] +http://xmfish.com###pw_content > .forum_panel:nth-child(4) +http://xh127.com###pzlhdd +http://tianya.cn###q_topbanner_950_90 +http://soyunpan.com###qblad +http://cankaoxiaoxi.com###qihupic +http://so.com###qiyu-brand-container +http://chinanews.com###qizhi_div980 +http://xineurope.com###qmenu_menu + .wp +http://hbzkw.com###qq-bottom +http://duba.com###qq_adv +http://baidu.com###qrcode-chunwan +http://163.com###r_mkaolaadv +http://appinn.com###ranshownow +http://game2.cn###rb +http://hnr.cn###rb_pics +http://baiduyunso.com###rcode +http://cqsq.com###read_0 + a[target="_blank"] +http://tiboo.cn###read_hd1 +http://chinaqking.com###readerServiceDIV +http://pujia8.com,sdgundam.cn###recommend +http://ganji.com###recommend_storeg_div +http://duba.com,uu114.cn###redbagRain +http://ifeng.com###redbox +http://image.baidu.com###relEcom +http://baidu.com###relative_shop_flow +http://image.baidu.com###relecom54 +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###replyBusinessImg +http://qxfun.com###reward-me > figure:nth-child(n+2) +http://2345.com,hao774.com###right > div:first-child +http://90oo.com###right > div[style^="height:60px; width:750px;"] +http://cnbeta.com###right1 +http://cs.com.cn,cssqt.com,qiannao.com,qinbing.cn,sonimei.cn###rightDiv +http://07073.com###rightDiv > div[style="height:250px"] +http://zimushe.com###rightFixed +http://kuai8.com###right_Ad +http://cpd.com.cn###right_ad1 +http://cpd.com.cn###right_ad2 +http://cpd.com.cn###right_adt +http://discuss.com.hk,uwants.com###right_column +http://uc123.com###right_elevator +http://gamersky.com###right_fixed +http://gmw.cn###rightad1 + .contentColumnRight +http://wed114.cn###rightdiv +http://ifeng.com###rightdl +http://leagueofmovie.com###rightfixedad +http://ixueyi.com,shangxueba.com###rightfloatdiv +http://www.wenxuecity.com###rightside +http://nczsks.com###rightyxjs +http://motocity.com.tw###rotator +http://so.com###rt-interest-list +http://m.autohome.com.cn###s2205 +http://autohome.com.cn###s5473 +http://jvhao.com###sAD3 +http://jvhao.com###sAD5 +http://alu.cn###sanjia +http://javjunkies.com###sb1 +http://baby-kingdom.com###sbad +http://sm.cn###sc + .article.ali_row +http://hackp.net###scbar_hot +http://wpsoso.com###scontent > div[style] +http://chyangwa.net,motorfans.com.cn###scrollPics +http://youxi.kugou.com###scrollUp +http://qlwb.com.cn###scroll_box +http://kocpc.com.tw###scroll_div +http://baidu.com###search-union-ad +http://flighty.cn###searchBox + #sidebarBox +http://duba.com###searchRight +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###search_baidu_promote +http://baidu.com###search_bottomad +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###search_button_wrapper +http://liuli.pw###secondary img:not(.avatar) +http://iplaysoft.com###section_event +http://360-bo.com###selectpd +http://5118.com###seobigdata_d1_text_seoreport +http://gdmm.com###separatorline + script + tbody:not([id]) +http://nick18.com,nick20.com###sex +http://nick20.com###sex + div[align="center"] +http://265g.com###sfmt +http://ottawazine.com###sgpb-popup-dialog-main-div-wrapper +http://pan.baidu.com###share_ad_info_panl +http://hupu.com###shihuo1111 +http://maxthon.cn###shopping +http://hao123.com###shortcut-box > .tip +http://hao123.com###shortcut-tuiguang +http://kaoyan1v1.com###showAD +http://downkr.com###show_download_main_panel > .hidden-sm +http://downkr.com###show_download_top_panel > .row > .hidden-xs +http://china.cn###show_loop +http://dmzj.com###show_tip_bg +http://hinews.cn###showgg +http://chaidu.com###shuang11 +http://rising.cn###shuangshiyibid +http://maxthon.cn###side-game-pop +http://mgtv.com###side-join-ad +http://iwan.baidu.com###side-xbox +http://ck101.com###sideAds1 +http://ifeng.com###sideBar[class^="box_"] +http://2345.com###sideCat +http://paipai.fm###sideForum + div +http://hao.360.com###sidebar +http://qiuquan.cc###sidebar .aligncenter +http://5izyw.com###sidebar > .box-b:first-child +http://iyejie.com,pc360.net###sidebar > .widget:first-child +http://oneinstack.com###sidebar > .widget:last-child +http://gaoqing.la###sidebar > .widget:nth-child(-n+3) +http://pc360.net###sidebar > .widget:nth-child(3) +http://jobbole.com###sidebar > .widget_text:first-child +http://tl95.vip###sidebar > .wow:first-child > .widget:first-child +http://jiecao123.com###sidebar > a +http://fuliba.net###sidebar > div:first-child +http://fuliba.net###sidebar > div:last-child +http://iplaysoft.com###sidebar > ul > .widget:first-child +http://iplaysoft.com###sidebar > ul > .widget:nth-child(3) +http://ipcfun.com###sidebar > ul > div[style] +http://ipcfun.com###sidebar > ul > li[style] +http://mpyit.com###sidebar a > img +http://mpyit.com###sidebar div[style*="background"] +http://yigujin.cn###sidebar img[src*="/abc/"] +http://xici.net###sidebar-bd > #pbox:last-child +http://elecfans.com###sidebar-firstad +http://gaoqing.la###sidebar-follow +http://dianyingbar.com,hanjutvn.com,taijuwang.com###sidebar-quan +http://jobbole.com###sidebar-recommend +http://vikilife.com###sidebar-tab[style^="height:"] +http://iplaysoft.com###sidebar_scroll_bdad +http://2345.com###sidel_lvy +http://2345.com###sidenav > .activity-trig +http://douyu.com,douyutv.com###sign_p_1 +http://udn.com###simplemodal-container +http://udn.com###simplemodal-overlay +http://esu.moe,esu.wiki###siteNotice +http://megatime.com.tw,pchome.com.tw###sixi +http://hao123.com,jiegeng.com###siye +http://renrenfabu.com###sj-btn +http://etnet.com.hk###skinnerads +http://keke.la###slide:first-child +http://12306.cn,baike789.com,club.pchome.net,dysfz.tv,dysfz.vip,itkeyword.com,kdslife.com,wuhaozhan.net###slideBox +http://12306.cn###slideRBox +http://cjn.cn###slidelr +http://526bt.com###slider +http://tiantianzhibo.com###sliderb_container +http://popart.hk###slideshow +http://pconline.com.cn###smallHB1 +http://eol.cn###small_adleft +http://eol.cn###small_adright +http://360.cn###snatch-logo +http://hcyy.org###snav_mn_forum +http://baidu.com###sning1 +http://baidu.com###sning2 +http://baidu.com###sning3 +http://sogou.com###sogou_vr_10000901_0 > div[style="display:block;"] +http://sogou.com###sogou_vr_21355601_wrap_0 +http://babyhome.com.tw###spAffix +http://hc360.com###spad1 +http://hc360.com###spad2 +http://baidu.com###spage-top-banner +http://heartinkstone.pixnet.net###spotlight +http://srzc.com###srzcad +http://techbang.com###stickies +http://1616.net###stool +http://showtv.com.tw###sub-ad +http://163.com###suning-bottom-banner +http://265g.com###swiper-bot +http://yxdown.com###sy +http://windowszj.com###system_type +http://tw116.com###t365 +http://voicetube.com###tab-ad-site +http://sogou.com###tab857 +http://ezvivi.com###table1[width="336"] +http://net767.com,playtv.com.cn###table6 +http://gametower.com.tw###tableAD +http://titan007.com###table_live > tbody > tr > td[height="18"] > a +http://07073.com###tanchuang +http://zixuephp.net###tantips +http://xici.net###taobao_700x250 +http://e23.cn###taobaorba +http://findprice.com.tw###tb_ad +http://histock.tw###tbadword +http://kengso.com###tbk_left +http://kengso.com###tbk_right +http://40407.com###tcdgg +http://xh127.com###teinka +http://pchome.com.tw###test2 +http://moe-acg.cc,tumutanzi.com###text-3 +http://vjmedia.com.hk###text-33 +http://stoneip.info###text-57 +http://sea-group.org###text-7 +http://sogou.com###text_ad_area +http://tingvoa.com###textadbox +http://hc360.com###textadv +http://ref.so###tg2_main +http://eastmoney.com###tgbottom +http://paipai.fm###the-logo + .fr +http://firefoxchina.cn###theme-side-banner +http://hupu.com###threadLeftAd +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###thread_list > .j_thread_list + li[class]:not(.j_thread_list) +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###thread_list > .j_thread_list:not([data-field]) +http://firefox.com.cn,firefoxchina.cn###thside-left-banner +http://ettoday.net###ticker_3 +http://1ting.com###tingx_5 +http://wpsoso.com###tips +http://dict.cn###tjcd +http://yaxi.net###tk-slider +http://yxdown.com###tl_adv +http://51yfx.com###tmall_1111 +http://ali213.net###tmp_ggao +http://ziyouge.com###toadsend +http://hexun.com###tonglan_1 + .layout +http://10.0.0.211###toolbar +http://uuu9.com###top +http://iyejie.com###top > div:not([id]):not([class]) +http://gameapps.hk###top-ad-left +http://gameapps.hk###top-ad-right +http://hao123.com###top-anim +http://abcde.cn,bbs.houdao.com###top-banner +http://360.cn,hao.360.com###top-full-column-tips +http://maxthon.cn###top-slider-ad +http://teepr.com###topAdBlock +http://zhangxinxu.com###topAdOut +http://recruit.com.hk###topBar +http://qidian.com###topGameOp +http://2345.com,duanwenxue.com###topHf +http://elecfans.com###topJf +http://hupu.com###topPub +http://zhangxinxu.com###topRecomm +http://360.cn,hao.360.com###top_activity +http://starbaby.cn###top_ad_show +http://cctime.com,ck101.com###top_banner +http://bttop.net###top_bottom + div[style="float:left;width:100%;"] +http://xiashanet.com###top_content +http://ibf.tw###top_d +http://hiapk.com,xitongzhijia.net###top_gg +http://360.cn,hao.360.com###top_hotsite +http://duba.com###top_joke +http://huaban.com###top_promotion +http://wendu.cn###topads +http://10jqka.com.cn###topba1 +http://blog.163.com###topbar_randShowArea +http://hao123.com###topbeWrapper +http://xijucn.com###topc +http://nowscore.com###toperAd +http://nowscore.com###toperBaskText +http://nowscore.com###toperText +http://cnforex.com###topfocus +http://csshello.com###topgg +http://iask.sina.com.cn###topic_ylzz_new +http://1616.net###toplink +http://zzbaike.com###topnav +http://zzbaike.com###topnav + div[style] +http://mtrend.cn###toptabs1 > .kz_line +http://85lou.com###topwarning_7ree +http://fuli.us###toubuads +http://17ce.com###tp_wrap +http://qidian.com###tr-banner +http://tianya.cn###travel_float +http://sohu.com###turn-ad +http://ziqiangxuetang.com###tutorial_btm +http://tuyiyi.com###tuyiyi_zfb +http://ali213.net###tv +http://makaidong.com###txtlink +http://udn.com###udn_scupio_responsive_wrapper +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###union_mod +http://cnbeta.com###upcoming_box +http://v.163.com###v_shapeLeft_divId +http://v.163.com###v_shapeRight_divId +http://0772fang.com###v_topAD_1 +http://fanjian.net###vad +http://ifeng.com###veidoshowAd +http://hexun.com,hexun.com.tw###videoLeftAd +http://hexun.com,hexun.com.tw###videoRightAd +http://vhiphop.com###video_ad +http://yzz.cn###video_ff +http://bitauto.com###video_floatBox +http://ifeng.com###video_p +http://baidu.com###video_push_box +http://aipai.com###videosRightDown +http://rising.cn###viphui +http://rising.cn###viphuibg +http://jstv.com###vplayad +http://160.com###w-advertisement +http://160.com###w-btn-advertisement +http://zqzq.com###wAdTop1 +http://zqzq.com###wAdTop2 +http://weishangshijie.com###wad_left +http://weishangshijie.com###wad_right +http://kamlm.com###wanmeiffad1 +http://21ic.com###warp_con +http://6park.com###weibozkinfo +http://xunleige.com###weizhi-a +http://fububu.com###wendibu +http://baidu.com###wgt-ad-right-fixed +http://baidu.com###wgt-left-promo +http://51yfx.com###widget-gouwu +http://hanjutvn.com###widget-quan +http://51yfx.com###widget-test +http://heu8.com###widget_ada +http://ccav1.com###widget_da +http://ylnet.com.cn###winpop1 +http://news.baidu.com###women-picwall +http://xici.net###word_ad +http://chazidian.com###worldcup_float +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###worldcup_guess_frs_wrap +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###worldcup_topic +http://xingkbjm.com###wowslider-container1 +http://17jita.com###wp > .wp > .pbm +http://528500.com###wp > div[align="center"] +http://yixingjia.com###wp > table[width="960"] +http://wpjam.com###wpjam_blog_300x250_1 +http://isso.com.cn###wqd1496213529829serial +http://isso.com.cn###wqd1519353145001serial +http://ganpapa.com###wrapper + div +http://gdzjdaily.com.cn###wrapper > div[style^="margin-top:6px;"] +http://btbtt.me###wrapper2 > .width +http://huanqiu.com###wxhz1 +http://zhaolianmeng.com###wzgg +http://nczsks.com###wzyxjs +http://liaoxuefeng.com###x-sponsor-a +http://liaoxuefeng.com###x-sponsor-b +http://soft4fun.net###xad_mu +http://hl.cn###xf_left +http://hl.cn###xf_right +http://jmbbs.com###xjj_jmbbs2015_01 +http://fang.com###xmlAd +http://gaokao.com###xuad-left +http://qhnews.com###xwyc +http://alu.cn###xxxhuangjinzhanwei +http://storyren.com###xydlleft +http://storyren.com###xydlright +http://redocn.com###yc_adv_1_2 +http://rjfcxxw.com###yimao > div[style] +http://starbaby.cn###yindex_ads +http://hao123.com###yixing-siye +http://fawan.com###ynetG_B1 +http://dm5.com###youce +http://yahoo.com###ysm-umu +http://game735.com###ysmAD1433_1 +http://weather.com.cn###ytc +http://eastday.com###yxxf_area +http://weather.com.cn###zdl +http://cccpan.com,ys168.com###zdy_wz0 +http://gzmama.com###zone_banner_1_new +http://gzmama.com###zone_index_fullcolumn_2 +http://gzmama.com###zone_left_couplet +http://gzmama.com###zone_right_couplet +http://gzmama.com###zone_top_fullcolumn +http://jyacht.com###zy_topgg2 +http://jyacht.com###zyc1r_03 +http://jyacht.com###zyc1r_05 +http://dilidili.name,dilidili.wang##.A4 +http://china.com.cn,csdn.net,cyol.net,wxrb.com,yam.com##.AD +http://motobuy.com.tw##.AD1 +http://wxrb.com##.AD1000 +http://eepw.com.cn##.AD300x200 +http://wxrb.com##.AD305 +http://wxrb.com##.AD340 +http://wxrb.com##.AD640 +http://cyol.net##.AD960_90 +http://jc001.cn##.ADS +http://click108.com.tw##.AD_300250 +http://click108.com.tw##.AD_730280 +http://tzfdc.com##.AD_B +http://paowen.net##.AD_D +http://sina.com.cn##.AD_hqbottom +http://wxrb.com##.ADtxt +http://shejidaren.com##.AND +http://le.com,letv.com##.Ad +http://kuai8.com##.Ad1 +http://cnfol.com##.Ad1000 +http://cnfol.com##.Ad310 +http://cnfol.com##.AdAsideW300H250 +http://hung-ya.com##.AdBottom +http://aohua.com.au##.AdTop-Article-QQ1 +http://cnfol.com##.AdvDL +http://fx110.com##.Adv_1 +http://bestopview.com##.Adv_c +http://pc6.com##.Advbox +http://feixiangtv.com,qiuyi.cn##.Advertisement +http://big5.china.com.cn##.Advertising > a +http://ifeng.com##.Avt01 +http://ifeng.com##.Avt02 +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.BAIDU_CLB_AD +http://le.com,letv.com##.Banner +http://china.com.cn##.Banner_left +http://china.com.cn##.Banner_right +http://18avhub.com,18avtube.com,mm-cg.com##.CN_qmvtoy +http://ifeng.com##.ColBLAvt +http://ifeng.com##.ColBRAvt +http://ifeng.com##.ColDLAvt +http://ifeng.com##.ColDRAvt +http://ifeng.com##.ColELAvt +http://ifeng.com##.ColFLAvt +http://ifeng.com##.ColGLAvt +http://3464.com##.CommonBody > .CommonListArea:nth-child(3) +http://3464.com##.CommonBody > .CommonListArea:nth-child(3) + .CommonListArea +http://zjk169.net##.ConImg +http://imeee.cn##.DA336 +http://91lai.com##.D_guanggaotu11 +http://91lai.com##.D_guanggaotu2 +http://91lai.com##.D_guanggaotu3 +http://cnfol.com##.EtGA +http://javjunkies.com##.FAd +http://ifeng.com##.FNewLAvt +http://ifeng.com##.FNewRAvt +http://ifeng.com##.FNewRAvtLisBox +http://ifeng.com##.FNewRAvtLisBox02 +http://cnfol.com##.FixedLeft +http://cnfol.com##.FixedRight +http://jinhua.com.cn##.FocusAD +http://angelweb.cn##.GG960x90 +http://aiyuke.com##.GGad +http://downg.com##.Gs_d[href$=".exe"] +http://52fzba.com,79tao.com,hqol.cn,mcncc.com,sunwy.org,twunbbs.com,wnflb.com,wnflb66.com##.GzList +http://le.com,letv.com##.H-tg +http://diyifanwen.com##.Hzh1 +http://diyifanwen.com##.Hzh2 +http://iyaxin.com##.Information +http://ixigua.com,toutiao.com##.J_ad +http://toutiao.com##.J_add +http://smzdm.com##.J_index_wall +http://dianping.com##.J_midas-3 +http://dianping.com##.J_mkt-group-1 +http://dianping.com##.J_mkt-group-2 +http://dianping.com##.J_mkt-group-3 +http://toutiao.com##.J_qihu_ad +http://duba.com##.J_side_activity +http://uwants.com##.MFV +http://shenchuang.com##.MainR_ad3 +http://ltn.com.tw##.NC3 +http://taoguba.com.cn##.NH_ad +http://cnfol.com##.NavTopAd +http://cnfol.com##.NewAdBox +http://07073.com##.No1 +http://bing.com##.OpInNwWndw +http://chinaz.com##.Postcon-ad +http://chinaitlab.com,idcquan.com##.Prt_right[style^="HEIGHT:"] +http://hackhome.com##.Qad +http://21uscity.com##.R300x70 +http://3jy.com##.Rad +http://chinabidding.cn##.TB-focus +http://tuku.cc##.TLAD +http://avmimi.com##.TW_UTtoy +http://alu.cn##.Tg_125x70 +http://alu.cn##.Tg_230x80 +http://alu.cn##.Tg_260x70 +http://alu.cn##.Tg_290x60 +http://alu.cn##.Tg_390x60 +http://alu.cn##.Tg_590x60 +http://3dmgame.com##.Tonglan +http://dailynews.sina.com##.TopNav + table +http://qinzhou360.com##.Txtadv-show +http://weibo.com##.UG_bn_a +http://avmimi.com,mm-cg.com##.UT_thread +http://tuwan.com##.Video-r-ad +http://news.china.com.cn##.Wrapper > div[style] +http://51.ca##._51_a_c +http://outlook.live.com##.__Microsoft_Owa_MessageListAds_ListView_templates_cs_x +http://tools.2345.com##._hb-box + .mod +http://gamer.com.tw##.a-mercy-d +http://ijia360.com##.a.fz0.mb15 +http://thinkphp.cn##.a6 +http://chacuo.net##.a96090 +http://meijutt.com##.a960_index +http://speedtest.cn##.aP-box +http://lahoo.ca##.a_af +http://baixing.com##.a_d_s_hidden_link +http://jdbbs.com##.a_h +http://hh010.com##.a_hong_c +http://bbs.hh010.com##.a_hong_h +http://hh010.com##.a_hong_t +http://hh010.com##.a_hongh_h +http://hh010.com##.a_hongt_t +http://proewildfire.cn##.a_mu + a +http://tropica.cn##.a_mu1 +http://muchong.com##.a_subject[href^="creditshow."] +http://163.com##.a_topad +http://52ghai.com##.a_xiu_t +http://ishuhui.com##.a_xx_d +http://159i.com,china.com.cn##.ab +http://jiyingdm.com##.abcde +http://yesky.com##.abox +http://w3cschool.cn##.abox-item +http://yaolan.com##.abstract_ad +http://ifeng.com##.acAd1 +http://ifeng.com##.acPicBox +http://2345.com##.act-market +http://2345.com,hao774.com##.act-search-tab +http://2345.com##.act-yguang +http://rising.cn##.activity-ad +http://hao.rising.cn##.activity-gt +http://zuimeia.com##.activity-poster:not([href*="zuimeia."]) +http://2345.com##.activity-skin-rtrig +http://2345.com##.activity-skin-trig +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.activity_iframe_container +http://2345.com##.acts11-sidefixed +http://0379home.com,2345.cn,234fang.com,265g.com,3gsc.com.cn,52youpiao.com,72g.com,8btc.com,9dcj.com,acg.bz,acgbenzi.com,aohua.com.au,baiduyunpan.net,baike.com,banyungong.org,bbs-mychat.com,cailianpress.com,cdyee.com,ce.cn,chddh.com,chinaiiss.com,chinaqking.com,chinatimes.com,chinatruck.org,chinaz.com,cnforex.com,cnsoftnews.com,codepub.com,cq.xinhuanet.com,cxryun.cn,dav01.com,discuss.com.hk,djwma.com,douban.com,dzwww.com,e0838.com,eastday.com,eworldship.com,fengniao.com,focus.cn,gongkong.com,hanhuazu.cc,henan100.com,hkgalden.com,honglingjin.co.uk,house.jschina.com.cn,iciba.com,ifeng.com,ipeen.com.tw,isharebest.com,itavcn.com,jiligame.com,jrj.com.cn,kumi.cn,landiannews.com,lawtv.com.cn,loveshang.com,lyd.com.cn,lyreader.com,lzep.cn,maxpda.com,mm111.net,moxing.net,ncdiy.com,neotv.com.cn,newsmth.net,njdaily.cn,people.com.cn,pharmnet.com.cn,pixnet.net,pptv.com,ptbus.com,qihaa.cn,r3sub.com,shenchuang.com,sj998.com,sogou.com,sozi.cn,titan24.com,toocle.com,tpy888.cn,tv.sohu.com,tvhome.com,u-car.com.tw,wallstreetcn.com,weather.com.cn,xs99.cc,xun9u.com,xyfdcw.com.cn,yawin.cn,ydss.cn,yesky.com,yqxs.net,zhuhai.gd.cn,zjstv.com##.ad +http://photofans.cn##.ad-1-index +http://cqmmgo.com##.ad-160x40 +http://19lou.com,ihome99.com##.ad-190x60 +http://cqmmgo.com##.ad-230x60 +http://19lou.com,ihome99.com##.ad-300x30 +http://eprice.com.tw##.ad-320x480-popup +http://eprice.com.tw##.ad-336x280-g +http://eprice.com.tw##.ad-970x250-g +http://eprice.com.tw##.ad-970x90-g +http://19lou.com##.ad-980x40 +http://ihome99.com##.ad-980x60 +http://19lou.com,ihome99.com##.ad-980x90 +http://baofeng.com##.ad-bar-l +http://baofeng.com##.ad-bar-r +http://html-js.com##.ad-blank +http://baidu.com##.ad-block-1 +http://easou.com##.ad-charge +http://newtalk.tw,toolfk.com##.ad-container +http://olevod.com##.ad-corner +http://cqmmgo.com##.ad-cycle +http://sm.cn##.ad-dot-container +http://pc6.com##.ad-download +http://bilibili.com##.ad-e1 +http://bilibili.com##.ad-f +http://eastday.com##.ad-foot-right +http://pixiv.net##.ad-footer + .hover-item +http://gameapps.hk##.ad-full-screen +http://babyhome.com.tw##.ad-gad-300250 +http://babyhome.com.tw##.ad-gad-320100 +http://265g.com##.ad-inner03 +http://ifeng.com##.ad-list +http://daydaycook.com##.ad-mask +http://dilidili.wang##.ad-middle +http://vuejs.org##.ad-pagetop +http://elecfans.com##.ad-pcb +http://19lou.com,cqmmgo.com##.ad-place-logo +http://baidu.com##.ad-platform-tips +http://baofeng.com##.ad-pop-wrap +http://qidian.com##.ad-shell +http://zol.com.cn##.ad-soft-box +http://babyhome.com.tw##.ad-span-ec +http://babyhome.com.tw##.ad-span-large +http://babyhome.com.tw##.ad-span-square +http://liba.com##.ad-split +http://baidu.com##.ad-taishan +http://ithome.com.tw##.ad-text-in-middle +http://39.net##.ad-tl +http://yahoo.com##.ad-tl2b +http://baidu.com##.ad-vip-close +http://baidu.com##.ad-vip-close-bottom +http://cocomy.net##.ad-well +http://sm.cn##.ad-wolong-container +http://cztv.com##.ad003 +http://ifeng.com##.ad05 +http://ifeng.com##.ad06 +http://ifeng.com##.ad07 +http://ifeng.com##.ad08 +http://10jqka.com.cn,88files.net,99files.net,actoys.net,beijing-air.com,bio1000.com,gter.net,hepuwang.com,jjwxc.net,ncdiy.com,qingdaonews.com,tgbus.com##.ad1 +http://ifeng.com##.ad1000-2 +http://ifeng.com##.ad1000_2 +http://ifeng.com##.ad1000_box +http://yuqingcn.cn##.ad1024x90 +http://chexun.com##.ad1100 +http://ishowx.com##.ad1160 +http://c114.com.cn,chddh.com,china.com.cn,persue.com.cn,qingdaonews.com,sj998.com##.ad2 +http://ifeng.com##.ad200-2 +http://yaolan.com##.ad24090 +http://dbw.cn##.ad245 +http://jokeji.cn##.ad250_1 +http://jokeji.cn##.ad250_2 +http://nmgnews.com.cn,sj998.com,sportscn.com,tpy888.cn##.ad3 +http://21uscity.com##.ad300x60 +http://jokeji.cn##.ad3602 +http://jokeji.cn##.ad360_280 +http://linuxde.net##.ad360x500 +http://hupu.com##.ad361-240-240 +http://tpy888.cn,weather.com.cn##.ad4 +http://5imx.com##.ad4:first-child +http://sj998.com##.ad5 +http://china.com.cn##.ad6 +http://juyouqu.com##.ad630 +http://jxedt.com,sohu.com##.ad640 +http://kumi.cn##.ad64060Box +http://52ch.net##.ad650 +http://19lou.com,cqmmgo.com,ihome99.com##.ad650-60 +http://ifeng.com##.ad665 +http://baike.com##.ad680 +http://ting89.com##.ad7 +http://yaolan.com##.ad71090 +http://hupu.com##.ad720-90 +http://ck101.com##.ad728Top +http://ifeng.com##.ad728_tit +http://pujia8.com##.ad740 +http://chexun.com##.ad794 +http://ting89.com##.ad8 +http://ifeng.com,sohu.com##.ad950 +http://pharmnet.com.cn##.ad9502 +http://yaolan.com##.ad96090 +http://danlan.org##.ad98090 +http://dbw.cn##.ad980top +http://zznews.cn##.ad:not([style]) +http://hf365.com,sina.com.cn,sohu.com##.adA +http://sohu.com##.adB +http://sina.com.cn##.adC +http://hkgalden.com##.adContainer +http://familydoctor.com.cn##.adExtra +http://sina.com.cn##.adF +http://newcger.com##.adFullwidth90 +http://sina.com.cn##.adG +http://sina.com.cn##.adH +http://niaogebiji.com##.adImgBox +http://ifeng.com##.adL660 +http://baidu.com##.adLog +http://2345.com##.adMainBg +http://hao123.com##.adMainMiddle-box +http://cnblogs.com##.adPopup +http://jschina.com.cn##.adR +http://ifeng.com##.adR01 +http://ifeng.com##.adR330 +http://ck101.com##.adTopBox +http://baidu.com##.adTopImg +http://cztv.com##.ad_003 +http://ifeng.com##.ad_01 +http://sina.com.cn##.ad_01_center +http://sina.com.cn##.ad_01_left +http://sina.com.cn##.ad_01_right +http://ifeng.com##.ad_04 +http://ifeng.com##.ad_09 +http://szonline.net##.ad_1000_90 +http://ifeng.com,nnnews.net##.ad_12 +http://51wangdai.com##.ad_123_AD +http://jurong.cn##.ad_190_60_5s +http://nnnews.net##.ad_24 +http://1688.com.au##.ad_300_p +http://eol.cn##.ad_490 +http://feng.com##.ad_500 +http://ttys5.com##.ad_580 +http://feng.com##.ad_654 +http://zyue.com##.ad_90 +http://cna.com.tw##.ad_970 +http://hupu.com##.ad_980 +http://cheshi.com##.ad_980105 +http://leiling.org##.ad__single-double-rectangle-wrap +http://tpy888.cn##.ad_all +http://download.csdn.net##.ad_area_1 +http://sogou.com##.ad_aside_inner +http://81.cn##.ad_banner_1000x120 +http://zhibo8.cc##.ad_box_250 +http://ifeng.com##.ad_btn +http://kekenet.com##.ad_catagory +http://csdn.net##.ad_class +http://gamme.com.tw##.ad_down +http://putclub.com##.ad_fastReading +http://tgfcer.com##.ad_headerbanner +http://hb163.cn##.ad_inner +http://le.com##.ad_layer +http://hc360.com##.ad_left +http://duba.com##.ad_leftTip_out +http://ifeng.com,miercn.com##.ad_list +http://ck101.com##.ad_logo +http://78dm.net##.ad_logor +http://sina.com.cn##.ad_main_top +http://udn.com##.ad_mask +http://duba.com##.ad_middleModal +http://comefromchina.com##.ad_navtext_11 > li:nth-child(n+2) +http://ruian.com##.ad_opera +http://hb163.cn##.ad_panel_980 +http://letv.com##.ad_pop +http://itboth.com,itkeyword.com##.ad_pop_left +http://itboth.com##.ad_pop_left_txy +http://letv.com##.ad_pop_small +http://sogou.com##.ad_result +http://bitauto.com,cnblogs.com,hc360.com##.ad_right +http://9upk.com,ouyaoxiazai.com##.ad_show +http://fx168.com##.ad_teshu +http://tgfcer.com##.ad_text +http://dmzj.com##.ad_th +http://dmzj.com##.ad_time +http://zjstv.com##.ad_tl +http://pchome.com.tw##.ad_triple +http://fulibac.com##.ad_two +http://cs.com.cn,pjtime.com##.ad_txt +http://bcbay.com##.ad_txt_box +http://putclub.com##.ad_vipabc +http://yicheshi.com##.ad_w +http://stheadline.com,yinyuetai.com##.ad_w300 +http://itavcn.com##.ad_wordxin +http://baike.com##.ad_xuanban +http://zhijia.com##.adb +http://ifeng.com##.adbest +http://motobuy.com.tw##.adbig +http://sina.com.tw##.adbig300_mid +http://appledaily.com.tw##.adblock_splash +http://17173.com,cdyee.com,chinaz.com,eastmoney.com,epochtimes.com,hsw.cn,ifeng.com,lantian.tv,phoenixtv.com,pyccoo.cn,xineurope.com,yesky.com##.adbox +http://7jiu.com.hk,plays01.com##.adbox-bg +http://dwnews.com##.adbox-top +http://ifeng.com##.adbox03 +http://pchome.com.tw##.adcon +http://ifeng.com##.adcoop +http://jgzj.net##.adcss +http://52pk.com,hao.rising.cn,vpgame.com##.add +http://78dm.net##.add-980 +http://fang.com,soufun.com##.add1200 +http://chinanews.com##.add3 +http://chinanews.com##.add4 +http://putclub.com##.add_ad +http://uzzf.com##.address_like:nth-child(-n+7) +http://ck101.com##.adfixWp +http://chinaz.com##.adfixbug +http://duba.com,uu114.cn##.adfixed +http://1kkk.com,dm5.com,dm5.hk##.adform_1 +http://1kkk.com,dm5.com,dm5.hk##.adform_2 +http://xineurope.com##.adft +http://92wy.com##.adhengfu +http://ifeng.com##.adimg +http://huanqiu.com##.adindexList +http://sina.com##.aditem +http://fzdao.cn##.adlan +http://gkstk.com##.adleft +http://jxedt.com##.adlink1 +http://jxedt.com##.adlink2 +http://cww.net.cn##.adlinkL +http://cww.net.cn##.adlinkR +http://kuailady.com##.adm_wrap +http://mobile01.com##.admicrobtn +http://ccoo.cn,hackhome.com,vipcn.com##.adn +http://zj.com##.adnav +http://zj.com##.adnav2 +http://gaokao.com##.adout116 +http://bigear.cn##.adpicright +http://ifeng.com##.adpubpic +http://doc88.com##.adpx250 +http://gamme.com.tw##.adread +http://appinn.com##.ads-m +http://360.cn##.ads-pic +http://shejidaren.com##.ads-post-foot +http://weishangshijie.com##.ads228_1_r +http://5icool.org##.ads300_show +http://eeyy.cc##.ads650 +http://52solution.com##.ads97090 +http://disp.cc##.ads_bot_block +http://chinamedevice.cn##.ads_img +http://chinamedevice.cn##.ads_img1 +http://xianliao.me##.ads_popup_small_ads_container +http://199it.com,wholehk.com##.adsbygoogle +http://m.kuaidi100.com##.adsbygoogle + a +http://aibing.cc,htcui.com,uho.com.tw##.adsense +http://lenovo.com.cn##.adsense-wrap +http://qinbing.cn##.adspic_mid2 +http://av.movie##.adss-160x600 +http://emule.org.cn##.adtabletr1 +http://chinaz.com,ofweek.com,yawin.cn##.adtext +http://gdmm.com##.adtop > .module +http://wed114.cn##.adtwo +http://114la.com,78dm.net,fh21.com.cn,qzwb.com,silver.org.cn,solidot.org,ylmf.com##.adv +http://xiazaiba.com##.adv-110 +http://xmfish.com##.adv-760 +http://xmfish.com##.adv-960 +http://xinhuanet.com##.adv-column2 +http://wdzj.com##.adv-img +http://yxdm.tv##.adv0 +http://shouji56.com##.adv01 + a +http://kdhome.net,yxdm.tv##.adv2 +http://kdhome.net,xinhuanet.com,yxdm.tv##.adv3 +http://myhack58.com##.adv32 +http://it165.net##.adv728a +http://it165.net##.adv728b +http://sohu.com##.adv_960 +http://rs05.com##.adv_bottom +http://8btc.com##.adv_element +http://eeskill.com,le.com,letv.com##.adv_img +http://jjckb.cn##.adv_ment +http://kaifu.com##.adv_slide +http://autohome.com.cn,gdzjdaily.com.cn,loveshang.com##.advbox +http://jyacht.com##.adve_3 +http://jyacht.com##.adve_4 +http://anjuke.com##.adver-content +http://znjj.tv##.adver1 +http://360che.com##.adver1000_60 +http://360che.com##.adver1000_65 +http://360che.com##.adver250_250 +http://360che.com##.adver300_150 +http://360che.com##.adver300_250 +http://360che.com##.adver600_80 +http://wyh.tv##.adverall +http://cpnn.com.cn##.adverd-top +http://jiaonan.net##.adverframe +http://ce.cn,chinabidding.com.cn,eastmoney.com,expreview.com,ieforex.com,laod.cn,xywy.com,zhujiceping.com##.advert +http://csdn.net##.advert-bg +http://sspai.com##.advert-card +http://xmfish.com##.advert-entry-list +http://liba.com##.advert-l +http://liba.com##.advert-r +http://qudong.com##.advert_bottom +http://hao123.com,sohu.com,tieba.baidu.com##.advertise +http://bitauto.com##.advertise-nav-down +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.advertise_right_index +http://aicoin.net.cn,hkepc.com,iviewui.com##.advertisement +http://3d66.com##.advertisement-carousel +http://chinacar.com.cn,elecfans.com##.advertising +http://10086.cn##.advertisingOther_img +http://speedtest.cn##.advertisingSpace +http://ifeng.com##.advmark +http://hexun.com,hexun.com.tw##.advp +http://it165.net##.advyello +http://itavcn.com##.advzone +http://123.sogou.com##.adword > a +http://meizhou.com##.adwords + div +http://gamme.com.tw##.adwrpt +http://baidu.com##.afd-item +http://mgtv.com##.album-gg +http://frdic.com##.alert +http://wigcw.cn##.alert-block +http://wdzj.com##.alert-box-pop +http://jszbug.com,siku11.com##.alert-danger +http://9vip.top##.alert-dismissible +http://ckck.vip,eetop.cn##.alert_windows +http://ali213.net##.ali-photo-carousel-pic > li > a[href*=".fhyx."] +http://phpvar.com##.aliPic +http://sm.cn##.ali_row[ad_aid] +http://caibaojian.com##.aliyun-inner +http://cnfol.com##.allAd +http://bkill.com##.alliance-ad +http://gufengmh.com##.animated +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.app_forum_top_nav_tab +http://fanyi.baidu.com##.appbanner +http://keywin.org##.appdownload +http://hao.360.cn##.applist > .app:nth-last-child(n+2) +http://tiantianzhibo.com##.apprecomm +http://gamefy.cn,sitv.com.cn##.area > div[style="float:left"] > a +http://wenku.baidu.com##.area[href*="/adclick?aid="] +http://zhlzw.com##.area_ad +http://gfan.com##.art-ad +http://bkjia.com##.art_rightad1 +http://jj59.com##.art_tong +http://yzmg.com##.article-bottom-ads +http://woshipm.com##.article-bottomAd +http://landiannews.com##.article-content > div[class]:first-child +http://cnbeta.com##.article-global +http://m.cnbeta.com##.article-hd + div[style="text-align:center"] +http://cyzone.cn##.article-middle-guanggao +http://sina.cn##.article-sax +http://yzmg.com##.article-top-ads +http://cnbeta.com##.article-topic +http://sm.cn##.article.ali_row + #sc ~ .article.ali_row +http://haha.mx##.article.mt-20 +http://xvna.com##.articleAD +http://xuite.net##.articleExtAd +http://toutiao.com##.article_link[data-tag="ad"] +http://24en.com##.article_part_top +http://carrotchou.blog,chongdiantou.com,hanypan.com,wangqianfang.cn,wuzuowei.net##.asb +http://fulishequ.com##.asb-index-01 +http://lrshare.com##.asb-post +http://iviewui.com##.asd +http://btyingshi.com##.aside > .card:last-child +http://78dm.net##.aside-add +http://focus.cn##.aside-banners +http://baidu.com##.aside-inner > div[style*="height:"] +http://jingyan.baidu.com##.aside-pro-container +http://fx678.com##.aside-store +http://oschina.net##.aside-topjj +http://anquan.org##.aside_profile_activity > div:first-child +http://showtv.com.tw##.ask18 +http://ilvruan.com##.asst +http://vx666.com##.async[href^="http"] +http://163.com##.at_item +http://so.com##.atom-adv +http://gamefy.cn,sitv.com.cn##.att-bar +http://chexun.com##.attr-outside-ad +http://u17.com##.auto_ad +http://liba.com##.avdert1190 +http://yam.com##.axdBox +http://read01.com##.axslot +http://newsmth.net##.b-content > #sogou_banner:nth-child(3) +http://360kan.com##.b-ifradjx +http://gamer.com.tw##.b-list_ad +http://bing.com##.b_ad +http://bing.com##.b_adBottom +http://pinshan.com##.b_adv +http://pinshan.com##.b_adv2 +http://120ask.com##.b_right > div[style] +http://168gamer.com,168gamer.net##.b_tad +http://pinshan.com##.b_taobao +http://secretmine.net##.background-cover +http://china.com##.baidu +http://hao.rising.cn##.baidu-banner +http://17k.com##.baiduBox +http://flyzy2005.com##.baidu_ad +http://mydrivers.com##.baidu_box +http://ucbug.com##.baidu_fx +http://qqcyl123.com##.baiduadc +http://brushes8.com##.baidugg580 +http://hc360.com##.baidutuiguang +http://xizi.com##.baner1 +http://uschinapress.com##.baner_pictur +http://82tu.cc##.banner + a +http://csdn.net##.banner-ad-box +http://cnool.net##.banner-ad001 +http://iwan.baidu.com##.banner-container +http://baidu.com##.banner-cover +http://cgown.com##.banner-gg +http://acfun.cn##.banner-href[href^="http"]:not([href*=".acfun."]) +http://crsky.com##.banner-leader +http://wenku.baidu.com##.banner-more-title +http://fuli.us,zhumengwl.com##.banner-post +http://smzdm.com##.banner-stuff +http://big-cup.tv,g-cup.tv##.banner-table-block +http://5118.com##.banner-top +http://firefoxchina.cn##.banner-words +http://fanyi.baidu.com,longzhu.com##.banner-wrap +http://news.cn2che.com##.banner01 +http://html5china.com,sojson.com,wbzol.com,xizi.com##.banner1 +http://jinhua.com.cn##.banner1200 +http://jinse.com##.banner1200_new +http://beihaiting.com,guitarchina.com,hao123.com,sojson.com,wbzol.com##.banner2 +http://ting89.com,tingshuge.com##.banner250 +http://jinhua.com.cn##.banner260 +http://jinhua.com.cn##.banner465 +http://ting89.com,tingshuge.com##.banner688_1 +http://ting89.com,tingshuge.com##.banner688_2 +http://aguitar.cn##.banner7 +http://jinhua.com.cn##.banner935 +http://yaolan.com##.banner960 +http://niutuku.com,sina.cn##.bannerAD +http://afzhan.com##.bannerAdv +http://aipai.com##.banner_90 +http://900.la##.banner_ad1 +http://xilu.com##.banner_bg +http://foodmate.net,ksbbs.com,kshot.com,oschina.net##.banner_box +http://sinami.com##.banner_centerLeft +http://sinami.com##.banner_centerRight +http://baidu.com##.banner_center_adv2 +http://vod1769.com##.banner_img +http://fanyi.baidu.com##.banner_img_container +http://chinaiiss.com##.banner_middle +http://sznews.com##.banner_new2 +http://sinami.com##.banner_rightBottom +http://zhaogepu.com##.banner_top +http://591hx.com##.banner_w +http://baidu.com##.bannerdown +http://javlibrary.com##.bannerqq +http://xici.net##.banners-slide +http://efu.com.cn##.banners-top-b +http://efu.com.cn##.banners-top-x2 +http://fang.com##.bannger_inbox +http://mscbsc.com##.bao1 +http://hao123.com##.bar-text +http://dianyingbar.com##.barrageContainer +http://jnnc.com##.basehr + div +http://news.lzep.cn##.basehr + div:nth-child(3) +http://gd163.cn##.bbs_ad +http://hualongxiang.com##.bbs_box_gg +http://nick18.com##.bbs_entry_wrapper > table[width="100%"] +http://pediy.com##.bbs_footer_advertising_column +http://xilu.com##.bbs_topad +http://bcquan.me##.bcqad +http://hao.rising.cn##.bd-lmhot +http://jrj.com.cn##.bd.pa10.bgn +http://newxue.com##.bd500 +http://33am.cn##.bd_980_90 +http://52tian.net,starbaby.cn##.bdad +http://newnet.cc##.bdad1 +http://cnscore.com##.bdbanner +http://818today.com##.bdg +http://1010jiajiao.com##.bdgg +http://e23.cn##.bdggtb +http://baidu.com##.bds-list-ads +http://pinshan.com##.bea_adv2 +http://eastday.com##.beforegg +http://smzdm.com##.beiwo +http://javhd.com##.benefits-list-holder +http://muchong.com##.bg > .wrapper:nth-child(14) > .forum_Post_index +http://uc123.com##.bg-wrapper +http://jrj.com.cn##.bg2424 +http://duba.com##.bgOpen +http://265g.com##.bg_ban +http://asus.com##.bg_block +http://40407.com##.bg_l +http://40407.com##.bg_r +http://265g.com##.bgban +http://douyu.com##.bglink +http://gdzjdaily.com.cn##.big_news + div +http://sgcn.com##.bigaimg +http://114la.com,ylmf.com##.bighd-top-bar +http://haote.com##.bigmainIn +http://rkanr.com##.bill +http://gywb.cn##.bill-vertical +http://sogou.com##.bizr_rb +http://chinairn.com##.bizrpt +http://baby-kingdom.com##.bk_list_right_ads +http://fanjian.net##.bkgd-top +http://fanjian.net##.bkgd-topapps +http://erji.com,erji.net##.black.y-style +http://hkcna.hk##.blank17 + .fd > a[href^="http"]:not([href^="http://www.hkcna."]) +http://pconline.com.cn##.blk-img[href^="http://best.pconline."] +http://pconline.com.cn##.block-jcz +http://ifeng.com##.blockR.ipad_none:nth-last-child(2) +http://boo.tw##.blockUI +http://oschina.net##.blog-left-ad +http://codexiu.cn##.blog-twitter:first-child +http://xianzhenyuan.cn##.bm.a_c +http://tropica.cn##.bm.a_c1 +http://ydss.cn##.bm.bml.pbn > table > tbody > tr > td:nth-child(-n+2) +http://ft.com,ftchinese.com##.bn-ph +http://yeeyi.com##.boardnav > #ct > .sd +http://xmfish.com##.bobing-theme +http://ifeng.com##.bomBox +http://tvsou.com##.border-btn[style^="height:"] +http://creaders.net##.border_b > tbody > tr > td[height^="2"] +http://biz.zjol.com.cn##.bot +http://gter.net##.bottom +http://hao123.com,muzhi.baidu.com##.bottom-banner +http://dianping.com##.bottom-contrainer +http://qizuang.com##.bottom-fadan-box +http://liba.com##.bottom-pic +http://histock.tw##.bottom-right +http://zhongkao.com,zuowen.com##.bottomImg +http://lenovo.com.cn##.bottom_ad_ban_bg +http://lenovo.com.cn##.bottom_ad_fla +http://freehao123.com##.box +http://cb.com.cn##.box > a[href^="http"]:not([href*=".cb."]) +http://enread.com##.box > ul[style="width:100%;overflow:hidden;"] +http://114la.com,ylmf.com##.box-hot +http://pconline.com.cn##.box-jcz +http://dl.pconline.com.cn##.box-push +http://zol.com.cn##.box-top-ad +http://sportsv.net##.box.ad +http://csdn.net##.box.hot +http://0772fang.com##.box0 +http://lolshipin.com##.box2 +http://mobanwang.com##.box960x90 +http://henan100.com##.boxB +http://ifeng.com##.box_list_pic > a[href^="http://dol.deliver."] +http://duba.com##.box_shopping +http://fx678.com##.box_video +http://nxing.cn##.boxclose +http://uzzf.com##.boxl +http://wanqu.co##.brand-ad +http://kehuan.net.cn##.bread_728x90 +http://cgown.com##.breadcrumb-gg +http://7junshi.com##.breaknovel-ave +http://le.com,letv.com##.broadcast-adv +http://hao123.com##.browsertip +http://anywlan.com##.bscekvofc_o +http://bt.cn,lotour.com##.btad +http://163.com##.btm-ad +http://onlinedown.net##.btmAD +http://ifeng.com##.btm_tg +http://aizhan.com##.btn +http://zdfans.com##.btn + .btn +http://firefox.com.cn,firefoxchina.cn##.btn-email-show + p +http://cssmoban.com##.btn-host +http://subku.net##.btn-success +http://mydrivers.com##.btnNext + div:last-child +http://gusuwang.com,news.hexun.com##.business +http://brtn.cn,btime.com##.business-box +http://brtn.cn,btime.com##.business-item +http://zhaolianmeng.com##.buttonBar +http://zealer.com##.buy_container +http://ithome.com##.bx-recom2 +http://hao.lenovo.com.cn,hi.lenovo.com.cn##.bxslider-wrap +http://mgtv.com##.c-95060-top +http://baidu.com##.c-container.ec-container +http://3987.com##.c-gg +http://baidu.com##.c-result[data-tpl="adv_wenku_fc"] +http://suning.com##.c2c-recommend +http://myexception.cn##.c_a_3 +http://aohua.com.au##.c_ad +http://cnblogs.com##.c_ad_block +http://kdnet.net##.c_spread +http://360.cn##.cangbao_redbags +http://qihoo.com##.car-ercode +http://duba.com##.car_ads +http://btring.com##.card[target="_blank"] +http://16888.com##.cardataclass +http://htcui.com##.carousel +http://cnbeta.com##.cb-help +http://baidu.com##.cbg-Ads +http://cnbeta.com##.cbhelp +http://m.cnbeta.com##.cbimage-fixed +http://mpyit.com##.cboxElement + center[style=" padding-top:10px; "] +http://cnbeta.com##.cbv810 +http://cnbeta.com##.cbv:not(#cb_share) +http://meizhou.com##.cc_z1 +http://11luba.com,niluba.cc##.center > div:last-child +http://sina.com.cn##.center-pdps +http://sina.com.cn##.center-pdps-02 +http://huarenjie.com,huarenjie.net##.cfad +http://hao.rising.cn##.channel-adimg +http://eeskill.com##.channel-featured-adv +http://enread.com##.channel-nav > .back +http://douban.com##.channel_promo +http://xianliao.me##.chat-content__ads +http://longzhu.com##.chatroom-ap +http://2345.com,hao774.com##.chc-dzoem +http://china.com.cn##.chinaJZG +http://firefoxchina.cn##.chip-banners +http://52ch.net##.chn_pb +http://baidu.com##.chunwan-wrapper +http://zhujiboke.com##.cjtz-border +http://dm5.com,dm5.hk##.cl760 +http://dm5.com,dm5.hk##.cl970 +http://fpdisplay.com##.class_adv1 +http://36dm.club,36dm.com,acgsou.com##.clear.text_center +http://360doc.com##.clear360doc[style^="padding-top:"] +http://sina.com.cn##.clearAd +http://caikuu.com##.clearfix + .recommend +http://mgtv.com##.click-s-r1 +http://mgtv.com##.click-t +http://tieba.baidu.com##.client_ad_banner +http://tieba.baidu.com##.client_ad_topBanner +http://tieba.baidu.com##.client_ad_topBanner + .statistics_img_view + li[class] +http://tieba.baidu.com##.client_ad_topBanner_all +http://hboav.com##.close_box +http://hboav.com##.close_box0 +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.close_btn[src*="/adsense/"] + div:last-child +http://chaomi.cc##.cm-ads +http://so.com##.cmclk +http://image.so.com##.cmitem +http://2345.com##.cmoe-nxh-dx +http://bbs.xmfish.com##.cmp_v +http://hao123.com##.cn_banner +http://hao123.com##.cn_tips +http://cnbeta.com##.cnbeta-side-sponsor +http://2345.com##.cnxh_box +http://huanqiu.com##.co360Box +http://hlgnet.com##.co_ad +http://hlgnet.com##.co_ad3 +http://vjmedia.com.hk##.code-block +http://rj.baidu.com##.code-wp +http://2345.com##.coem-dzhcn +http://www.wenxuecity.com##.col > ul:not([id]) > li > a[href^="http://"]:not([href*=".wenxuecity."]) +http://zhangxinxu.com##.col-aside +http://big-cup.tv,g-cup.tv##.col-md-12.text-center[style="margin-top: 3px;"] +http://ezprice.com.tw##.col-md-3 +http://gamefy.cn,sitv.com.cn##.col-vlist-l > span +http://dospy.com##.com-adm +http://jiakaobaodian.com##.com-side-car-sales-rank +http://www.kafan.cn##.comeing_show_box[style="padding:10px;"] +http://image.so.com##.commerce +http://wenku.baidu.com##.commerce-flow +http://image.so.com##.commerce_txt +http://so.com##.commercialCell +http://iciba.com##.common-top-nav-item:not([href*=".iciba."]) +http://qingdaonews.com##.commonrightad +http://cnbeta.com##.commt-r +http://meituan.com##.component-downtip +http://gamefy.cn,sitv.com.cn##.con + div[style="float:right; width:326px;"] +http://gamefy.cn,sitv.com.cn##.con > a:last-child +http://qiuw.com##.con > a:nth-child(n+2) +http://maolihui.com##.con-ad +http://ithome.com##.con-recom +http://joy.cn##.con2-3 +http://ifeng.com##.conRgg +http://aihami.com##.conText > div[style*="width:"] +http://360che.com##.con_banner +http://40407.com##.con_tj +http://firefox.com.cn,firefoxchina.cn##.cont-promote +http://ifeng.com##.cont_bottom_Yy +http://ifeng.com##.cont_bottom_YySmall +http://u-car.com.tw##.contad +http://u-car.com.tw##.contad_text +http://rijutv.com##.container > div[style="height: 128px;"] +http://it1352.com##.container-fluid > .hidden-sm:nth-child(-n+2) +http://www.wangjing.cn##.content > div[style*="980px;"] +http://cnbeta.com##.content > p:last-child > a[href] +http://sspai.com##.content hr:nth-last-child(-n+4) ~ p +http://w3cschool.cn##.content-abox +http://baidu.com##.content-adv +http://fullyu.com##.content-top-ads +http://ptbus.com##.content14 +http://p9.com.tw##.contentRightAd +http://educity.cn##.content_relate:nth-child(5) +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.content_top +http://aihami.com##.context_ad +http://hao123.cn##.cool > tbody > tr > td[align="center"]:last-child +http://duba.com##.cool_textlink +http://jiegeng.com##.coolsite-recommend-linked +http://cnbeta.com##.cooperation +http://weike87.com##.copy +http://114la.com##.corner +http://51.com,wnacg.org##.couplet +http://51wangdai.com##.couplet_gg +http://51wangdai.com##.couplet_gg02 +http://tigtag.com##.couplet_l +http://zuowen.com##.couplet_left +http://tigtag.com##.couplet_r +http://zuowen.com##.couplet_right +http://caixin.com##.course_box +http://meishij.net##.cp_body_right +http://makepolo.com##.cpc_tgs +http://zuoye.baidu.com,zybang.com##.cpro +http://docin.com##.cpro_mod +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.cps_wrap +http://51credit.com##.credit-box +http://bkill.com##.cross-ad +http://timedg.com##.crossAdvertise +http://timedg.com##.crossAdvertise2 +http://sm.cn##.crumb-link + .other +http://iplaysoft.com##.crumb_ad +http://csdn.net##.csdn-tracking-statistics[style="height:250px;"] +http://cnbeta.com##.ctcloud +http://tigtag.com##.custom-box02 +http://51wangdai.com##.cx_ad +http://51wangdai.com##.cx_xx_lis_c01_right_lis_c_ad +http://vuetifyjs.com##.d-inline-block +http://iplaysoft.com##.d250 +http://iplaysoft.com##.d250x90 +http://hackhw.com##.d336 +http://hackhw.com##.d336x2 +http://xgrb.cn##.d_2016_ggw +http://ihref.com##.d_banner +http://xingkbjm.com##.d_postlist > ul > li:nth-child(-n+2) +http://51.la##.da-item +http://qingdaonews.com##.da30050 +http://qingdaonews.com##.da66050 +http://zhangxinxu.com##.da_bottom +http://lenovo.com.cn##.daily-hotwords +http://map.baidu.com##.damoce-search-item +http://acfun.cn##.danmu-activity +http://soufun.com##.danmu_inbox +http://bbs.it168.com##.daoh2 + .bor8 +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.dasense +http://newxue.com##.dashuggtop +http://newxue.com##.dashuggtop1 +http://ggcj.com##.dbxf +http://8ziyuan.com##.deanadsside +http://pan.baidu.com##.decrease-active +http://xianshuabao.com##.demand-dialog +http://xianshuabao.com##.demand-fixed +http://17qingsong.com##.detail-gads +http://toocle.com##.detail_top_ad +http://faxingw.cn##.detailadv +http://faxingw.cn##.detailgc +http://zcool.com.cn##.details-advertisement +http://xiadele.com##.details-small-carousel +http://discuz.com##.df_money +http://yicai.com##.dfb-ad +http://sina.cn##.dfz_sd_news > a[href*=".10086.cn"] +http://7654.com##.dh2_bottom_wrap +http://wenku.baidu.com##.dialog-ad-hd +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.diamond-mall-aside +http://bcbay.com##.discuss + table +http://gs.chinanews.com.cn##.div1000_2 + .div980 +http://131458.com##.divGuanggao +http://0597ok.com##.div_ad +http://pc0359.cn##.dl-down +http://pc0359.cn##.dl-ico:nth-child(-n+7) +http://dl.pconline.com.cn##.dlTips +http://gfan.com##.dl_AD +http://silver.org.cn##.dl_lt +http://letv.com##.dl_mobile +http://itavcn.com##.dlggw-g +http://moe-acg.cc##.dmengslide-wrapper +http://360doc.com##.doc360article_content > div[class]:first-child +http://xici.net##.doc_tl +http://pctowap.com##.dowap_ads +http://3d66.com##.down-adver +http://zol.com.cn##.down-jisu +http://xiaopi.com##.down-list +http://mianbao99.com##.downApp +http://fx110.com##.down_Hx +http://52pk.com##.down_adv +http://gz0668.com##.down_fixed +http://xiazaizhijia.com##.down_list +http://yesky.com##.down_referer +http://yesky.com##.down_referrer +http://downza.cn##.down_top +http://downza.cn##.downbtn +http://portablesoft.org##.downcenter +http://yxzoo.com##.downgg +http://onlinedown.net##.downgs +http://188soft.com##.download +http://duote.com##.download-box:first-child +http://downg.com##.download-list:first-child +http://wmzhe.com##.downloader +http://pc0359.cn,pc6.com##.downnow +http://123.sogou.com##.dropBox_list > li > a > span[style="color:red"] +http://jxcn.cn##.dsp_yxxf +http://jinbaozy.com##.dtk-fixed-ads +http://51ztzj.com##.dtmwrap[style="height:75px;background:#fff"] +http://81.cn,chaomi.cc,cnstock.com,cpnn.com.cn,cs.com.cn,dyhjw.com,hnr.cn,kkj.cn,my0538.com,mydrivers.com,ofweek.com,silver.org.cn,ttzmz.vip,wendu.cn##.duilian +http://hnr.cn##.duilian_close +http://cpnn.com.cn##.duilians +http://cncrk.com##.dxzq +http://2345.com##.dzc-hn-cmoe +http://so.com##.e-buss +http://acg17.com,secretmine.net##.e3lan +http://m.so.com##.e_idea_list +http://so.com##.e_idea_wenda_detail_spread +http://so.com##.e_idea_wenda_spread +http://solidot.org##.e_reply > .fr +http://easou.com##.easou_banner +http://baidu.com##.ec-ad +http://sm.cn##.ec-goods-list +http://baidu.com##.ec-oad +http://baidu.com##.ec_ad +http://m.baidu.com##.ec_adv +http://baidu.com##.ec_im_container +http://ettoday.net##.ec_menu +http://baidu.com##.ec_sma_im +http://baidu.com##.ec_wise_ad +http://easou.com##.ecom-adTop +http://news.baidu.com##.ecom_pingzhuan +http://baidu.com##.ecomad-banner-loading +http://19lou.com##.editor-ad +http://wenku.baidu.com##.edu_class_pop_dialog +http://playno1.com##.eis_adv +http://playno1.com##.eis_adv + .eis_mtm +http://playno1.com##.eis_adv2 +http://www.playno1.com##.eis_box_s +http://ncno1.playno1.com##.eis_box_s > div:first-child +http://fuyang.net##.eis_fbox_260:nth-child(n+3) +http://fuyang.net##.eis_fbox_980 +http://playno1.com##.eis_mtm[style="border-top:1px dashed #CDCDCD;padding-top:10px; padding-bottom:15px"] +http://backchina.com##.eis_subnav_area +http://winning11cn.com##.eis_topad +http://dilidili.wang##.elmnt-one > .shade > a[href^="http"]:not([href*=".dilidili."]) +http://eprice.com.tw##.emome-ad +http://firefoxchina.cn##.engine-jokes +http://zreading.cn##.enhanced-text-widget:nth-child(2) +http://1point3acres.com##.enhanced_header +http://hao123.com##.enter1 +http://rj.baidu.com##.entrance +http://hackhw.com##.entry-banner +http://fuliba.net##.entry-content > div[style^="float:right"] +http://hexieshe.com,hexieshe.xyz,xxshe.info##.entry-header + p + p[style="text-align: center;"] +http://hexieshe.com,hexieshe.xyz,xxshe.info##.entry-title > p +http://niotv.com##.epg_ad3 +http://niotv.com##.epg_ad_list +http://epinv.com##.epgg ~ .huadong +http://epinv.com##.epinv_b +http://epinv.com##.epinv_f +http://shulink.com##.er_g +http://sinolub.com##.erjlogo > .fl + .fl +http://2345.com,hao774.com##.event1-hasList +http://58.com##.ewmAdNew +http://8264.com##.ewmbox +http://huaban.com,start.firefoxchina.cn##.extra +http://fanyi.baidu.com##.extra-banners +http://douyu.com##.f-sign-cont +http://xiaobaipan.com##.f_ad +http://5gw.cc##.f_b_c_d +http://m.sohu.com##.f_rec[href^="//m.sohu.com/promotion?"][href*="/f/"] +http://infoq.com##.f_sponsorbox_top_2 +http://sgcn.com,wangjing.cn##.fad +http://mobile01.com##.fast-ad +http://duba.com,uu114.cn##.fav_box +http://baidu.com##.fc-ad-line +http://baidu.com##.fc-wenku-ad +http://hkcna.hk##.fd + .fdr > a[href^="http"]:not([href^="http://www.hkcna."]) +http://jq22.com##.fdad +http://maxthon.cn##.feast-gift-search +http://focus.cn##.feed-item[node-type="ad-item"] +http://focus.cn##.feed-list-item[data-ad-type] +http://smzdm.com##.feed-stuff +http://ytbbs.com##.fend_ad +http://home.ifeng.com##.fengjc02 +http://360.cn##.festival_snatch +http://nicotv.me##.ff-ads +http://fh21.com.cn##.fh-ad-iask-pic +http://cngold.org##.fiexdAdvsClosed +http://halihali.me##.filmDes + .mod +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.firework-wrap +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.firework_sender_wrap +http://etnet.com.cn##.firstAD +http://zybang.com##.firstBanner +http://html5china.com##.firstnews +http://douyu.com##.fishop-anchor-recommands-box +http://hepan.com##.fivead +http://elecfans.com##.fix-btmad +http://12306.cn##.fix-yh +http://silver.org.cn##.fix_bottom_position +http://silver.org.cn##.fixbottom_wrap_small +http://jjmmw.com##.fixed-ad +http://gitee.com##.fixed-notice-messages +http://lenovo.com.cn##.fixedLeftAd +http://163.com##.fixed_foot_ad +http://gucheng.com##.fixed_img +http://aimazu.com,gongkong.com##.fixediv +http://lyreader.com##.fixnewUser +http://icoc.bz##.fk-siteAdBoxCB +http://bbs.actoys.net##.fl[style$="float:right;"] +http://haote.com##.flashbox +http://youthwant.com.tw##.flex-container +http://vhiphop.com##.flexslider +http://qunar.com##.flight_ad +http://19lou.com,cqmmgo.com,ihome99.com##.float-ad-wrap +http://9dog.pw##.float-adv +http://taoyizhu.com##.float-banner +http://csdn.net##.float-left > div[id^="dmp_ad_"] +http://3boys2girls.com##.float320 +http://ledinside.cn##.floatAD +http://oschina.net##.float_adbox +http://admin5.com##.float_both_index +http://zmz2019.com##.float_middel_ad_bk +http://pic.sogou.com##.floating +http://107cine.com##.flow-other +http://107cine.com##.flow_right > div[style="margin-top:20px;"] +http://sojson.com##.fly-hezuo +http://newcger.com##.focus + .block934 +http://1fzw.com##.focus-bots +http://cnblogs.com##.focus-gg +http://zhongkao.com##.focusBox +http://yinyuetai.com##.focus_bottom_banner +http://haodou.com##.focus_img +http://900.la##.font-ad +http://se8u.cc##.footAdv +http://jisilu.cn##.foot_ad +http://880sy.com##.foot_gg +http://yipee.cc##.footer-sidebar-container +http://iciba.com##.footer_baidu +http://yaolan.com##.footer_float_box +http://image.baidu.com##.ford-tag +http://chineseinla.com##.forum_banner_ads +http://pcbeta.com##.forum_top ~ div[class] +http://vvshu.com##.forviewda +http://880sy.com##.fot_btom +http://v2ex.com##.fr > a[href^="https://www.digitalocean.com/"] +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.frs_act_repost_wrapper_outter +http://tieba.baidu.com##.frs_pb_leadapp_pop_show +http://ytbbs.com##.ftop_ad +http://ytbbs.com##.ftop_ad_2016 +http://duowan.com##.full-banner +http://ainuody.com##.full-width +http://guancha.cn##.full_nav1 +http://gamme.com.tw##.fullad_ad +http://962.net##.g-962-ad +http://quanmin.tv##.g-gg +http://hiapk.com##.g2.mt20 +http://hiapk.com##.g2_img_l +http://hiapk.com##.g2_img_r +http://hiapk.com##.g2_right +http://mobanwang.com##.g960 +http://126.com,163.com##.gWel-promt +http://smzdm.com##.g_g +http://233.com##.gads +http://233.com##.gads2 +http://lenovo.com.cn##.game +http://zhanqi.tv##.game-banner +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.game-head-game-info-wrapper +http://tvhome.com##.game_Ad +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.game_banner +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.game_banner_common_wapper +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.game_content +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.game_list_and_rank +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.game_spread_thread +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.game_tab +http://sina.com.cn##.gamead1 +http://timeon.cn##.gameads +http://qidian.com##.games-op-wrap +http://so.com##.garllery_ad +http://115.com##.gb-advs +http://1kkk.com,40407.com,5068.com,88148.com,chazidian.com,china.com,cnwnews.com,dhzw.org,elecfans.com,ghjie.com,iask.ca,ifeng.com,iqilu.com,jj59.com,juqingba.cn,qzwb.com,sina.com.cn,tianya.cn,zsnews.cn##.gg +http://elecfans.com##.gg-01 +http://morningpost.com.cn##.gg-2 +http://baidu.com##.gg-content +http://bilibili.com##.gg-floor-module +http://morningpost.com.cn##.gg-stl +http://to8to.com##.gg-wei-link +http://5068.com,ifeng.com##.gg01 +http://5068.com,hgitv.com##.gg02 +http://hgitv.com##.gg09 +http://antpedia.com,chinamedevice.cn,lcxw.cn,msdn.hk,xinhuanet.com##.gg1 +http://chinamedevice.cn,hgitv.com##.gg12 +http://skinme.cc,ts.cn,xinhuanet.com##.gg2 +http://angelweb.cn##.gg250x250 +http://ifeng.com##.gg298 +http://iqilu.com##.gg300250dbl +http://lcxw.cn,ts.cn##.gg4 +http://xiaoz.me##.gg5 +http://xizi.com##.gg500 +http://iqilu.com##.gg580140 +http://xiaoz.me##.gg6 +http://5184.com##.gg600 +http://zt5.com##.gg_1 +http://5173.com##.gg_130 +http://5ifxw.com##.gg_300250 +http://ruian.com##.gg_780 +http://ruian.com##.gg_960_t +http://163disk.com##.gg_990_65 +http://163disk.com##.gg_990_90 +http://515fa.com##.gg_ad01 +http://515fa.com##.gg_ad02 +http://wo256.com##.gg_area +http://codejie.net##.gg_banner +http://eeyy.com##.gg_bg +http://js0573.com##.gg_bnr +http://xiaopi.com##.gg_box +http://zt5.com##.gg_bt +http://comicat.org,kisssub.org##.gg_canvas +http://sinolub.com##.gg_cen +http://eastday.com##.gg_channel_r_b +http://55188.com,g138.com##.gg_head_l +http://55188.com,g138.com##.gg_head_m +http://55188.com,g138.com##.gg_head_r +http://acglala.com##.gg_img +http://china.cn##.gg_li +http://324324.cn##.gg_sidebar +http://doub.io##.gg_slider_comad +http://eeyy.com##.gg_top +http://cww.net.cn##.ggbar +http://baidu.com##.ggbtm-vip-close +http://55188.com##.ggdistich +http://chazidian.com##.ggin +http://eastday.com##.gglist +http://rising.cn##.ggqh +http://weather.com.cn##.ggt +http://taian.com##.ggtp +http://360doc.com##.ggwz +http://9dcj.com##.gif_left +http://douyu.com,douyutv.com##.giftbox +http://zhumengwl.com##.git_banner +http://anquan.org##.gj_download +http://witcp.com##.global_ifmobile_mask +http://tw.news.yahoo.com##.gn_sub_blue +http://news.sohu.com##.god-first +http://sohu.com##.god-main +http://sohu.com##.godR +http://taiwandaily.net##.gofollow[data-track] > img +http://eastday.com##.golden_adv_1 +http://eastday.com##.golden_adv_2 +http://awaker.cn##.good-price +http://mail.pchome.com.tw##.good_ad +http://techbang.com##.google-dfp +http://i-part.com.tw##.googleAD160x600 +http://cmhello.com##.gpost-above +http://iyaxin.com##.gr-ggtag +http://owyb1688.com##.gray-show +http://bioon.com##.grid_6 +http://ddooo.com##.gsbtn +http://yxdown.com##.gsdown +http://33lc.com##.gsdt +http://yxdown.com##.gsxz_ydw +http://putclub.com##.gtest +http://58.com##.guaguabox +http://97aa1.com,niu20.com##.guang4 +http://runningmanzx.com##.guangao +http://doub.io##.guangg +http://adreep.cn,baoliny.com,gasaq.com,hgitv.com,ifooday.cn,nen.com.cn,rznews.cn##.guanggao +http://cnlinfo.net##.guanggao-left +http://cnlinfo.net##.guanggao-right +http://hkwb.net##.guanggao2 +http://gasaq.com##.guanggao_ime_big +http://cnmo.com##.guanggao_type +http://shm.com.cn##.guanggaowei2 +http://shm.com.cn##.guanggaowei3 +http://downhot.com##.guans +http://guokr.com##.guokr-layer-beforelogin +http://halihali.me##.guolewan +http://eweiqi.com##.guoqing +http://codejie.net##.h--banner +http://codejie.net##.h-ad-banner +http://21cn.com##.h-gg +http://ting56.com##.h1000 +http://ting56.com##.h336 +http://hebei.com.cn##.h50px +http://mumayi.com##.h80 +http://jjwxc.net##.h8px + div[align="center"] +http://cnblogs.com##.h_ads +http://kekenet.com##.h_news_c +http://bkill.com##.half-ads +http://typecho.wiki##.haliluya +http://cam4.tw##.hbanner +http://mp4ba.la##.hd + table +http://ck101.com##.hd-bgimg +http://sogou.com##.hd-slider > .slider-container +http://1fzw.com##.hd-tops +http://youth.cn##.hd_pic +http://pinggu.org##.hdbanner +http://winning11cn.com##.hdc > div > div[align="center"] +http://ali213.net##.head-left +http://hkepc.com##.headBanner +http://weishangshijie.com##.head_0905 +http://jmw.com.cn##.head_1b +http://jmw.com.cn##.head_3 +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.head_middle > div[class]:first-child +http://zhiding.cn##.headads +http://biz.ifeng.com##.header +http://ieforex.com##.header > .left +http://i.maxthon.cn##.header-hotkeys +http://animewld.club##.header-img +http://8btc.com##.header-prices +http://uc123.com##.header-push-container +http://youivr.com##.header-widget-region +http://dragon-guide.net##.header6 +http://jiegeng.com##.header__item--fr +http://seehd.so##.header_wrap + .tac + table[align="center"] +http://aguitar.cn,guitarchina.com##.headerbanner +http://aguitar.cn##.headerbanner2 +http://ks.js.cn##.height200 +http://ks.js.cn##.height60 +http://ks.js.cn##.height70 +http://ks.js.cn##.height80 +http://hackhw.com,qqjia.com##.hengfuad +http://jpwind.com##.hf_tupian_gg +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.hgame_mod_theme1 +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.hgame_mod_theme2 +http://doupapa.com,dpp2019.com##.hidden-xs[class*="_"] +http://mahua.com##.hidden_ab +http://orsoon.com##.high-downs +http://douyu.com##.his-sign-cont +http://zp365.com##.hitADclass +http://jia360.com##.hjadv +http://hkgolden.com##.hkg-ad +http://4gamers.com.tw##.home-carousel-container +http://baike789.com,wuhaozhan.net##.home-list +http://baike789.com,wuhaozhan.net##.home-list-1987 +http://www.infoq.com##.home_banner +http://orsoon.com##.hongbao +http://wuhaozhan.net##.hongbao_hb +http://tieba.baidu.com##.hongbao_page_pop_common +http://duba.com##.hot-bottom +http://fanyi.baidu.com##.hot-link-middle +http://douyu.com,douyutv.com##.hot-sign-1 +http://douyu.com,douyutv.com##.hot-sign-2 +http://piaoliang.com##.hot990 +http://lenovo.com.cn##.hotAd +http://cnqiang.com##.hotBox +http://duba.com,uu114.cn##.hotTitle +http://itheat.com##.hot_ad +http://itavcn.com##.hot_dealerxin +http://duba.com##.hot_push > .hot_movie +http://jyacht.com##.hot_reoc_adve +http://bkjia.com,zol.com.cn##.hot_tj +http://703804.com##.hotad +http://sogou.com##.hotel-pic +http://sogou.com##.hotel_tit +http://sogou.com##.hotel_tj +http://ganji.com##.house-ads-img +http://bbs.hupu.com##.hp-ad250-250 +http://hupu.com##.hp-header-banner +http://tw.mall.yahoo.com##.hpad-wrapper +http://flyzy2005.com##.ht-notification-wrap +http://chinasmartgrid.com.cn##.ht60ad +http://epinv.com##.huadong > a +http://iyaxin.com##.huand3 +http://skinme.cc##.huodong +http://hupu.com##.hupu-shihuo-hot +http://hupu.com##.hupushihuo +http://warting.com##.hz2 +http://52pk.com##.hz_adv +http://99.com.cn##.hzh_botleft +http://xitongcheng.com##.hzj_adv +http://haodou.com##.i-ad +http://haodou.com##.i-adv250 +http://zjk169.net##.iContentLeft +http://zjk169.net##.iContentRight +http://tieba.baidu.com,wapp.baidu.com##.iSlider-wrapper-container-hot-thread +http://i.ifeng.com##.i_con[href^="http://dol.deliver.ifeng.com/"] +http://678cn.com##.ibtad +http://hao.360.cn##.icon-text-nav +http://easylife.tw,ettoday.net##.idleAd +http://haodou.com##.idx_ad_box +http://163.com##.idx_textlink_ad +http://163.com##.idx_tonglan_ad +http://163.com##.idx_top_ad +http://ifeng.com##.ifgBoxAdLis +http://gamer.com.tw##.iframe:last-child +http://xinhuanet.com##.iframeSrc + a[href^="http"]:not([href*=".xinhuanet."]) +http://aiyuke.com##.igamead +http://ifeng.com##.iggLine +http://outofmemory.cn##.iloveoutofmemory660 +http://ilxdh.com##.ilxdh-item +http://im286.net##.im286-t +http://masturbation22.com,playallvideos.com,pron.co,ratedxbiz.com,taporn.com##.ima +http://m.cnbeta.com##.image-container +http://douyu.com##.imageItem-wrap[href*=".cr-nielsen.com/"] +http://douyu.com##.imageItem-wrap[style="width: 1200px; height: 120px;"] +http://douyu.com##.imageItem-wrap[style="width: 287px; height: 559px;"] +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.images_game_container +http://5555op.com##.img +http://baidu.com##.img-adv-swap1 +http://zxdy777.com##.imgBox +http://fx678.com##.img_tips +http://znjj.tv##.imgadH +http://image.baidu.com##.imglist > .fcImgli +http://zzbaike.com##.imglistbg-ad +http://zzbaike.com##.imglistbg_ad +http://alexa.cn##.importantList +http://alexa.cn##.importantTop +http://admaimai.com##.in16_w01 > div[class*="_ad0"] +http://cngold.org##.in_content_left_advs +http://news18a.com,tom.com##.ina_ad_class +http://news18a.com##.ina_ad_left +http://hoteastday.com##.incentive +http://caixin.com##.incubator +http://qqyy.com##.ind_ad +http://faxingw.cn##.indadv1 +http://cndesign.com##.index-add +http://16fan.com,jianshen8.com##.index-banner +http://cyzone.cn##.index-content-ad +http://1avlang.com,avlang.com,avlang13.info##.index-info > .tac +http://kpd122.com,ssp28.pw##.index-owl-carousel +http://bilibili.com##.index-promote +http://pinggu.org##.index-somelinks +http://keke.la##.index-top-ad +http://keke.la##.index-wz-ad +http://zahuishi.com##.index950x90 +http://zahuishi.com##.index960x90 +http://ydss.cn##.indexAd +http://rfidworld.com.cn##.indexBanner +http://ithome.com##.indexV2 > div > a +http://hacpai.com##.index__ad +http://hqdoor.com##.index_ad2 +http://mitbbs.ca,mitbbs.com##.index_add +http://76xh.com##.index_advertising +http://76xh.com##.index_advertising02 +http://cqsq.com,jisuxz.com,jmnews.com.cn##.index_banner +http://shfq.com##.index_banner_ad +http://juxia.com##.index_bttg +http://hgitv.com,wo256.com##.index_gg +http://hgitv.com##.index_gg01 +http://cqsq.com##.index_main_gg +http://hgitv.com##.index_main_top_zhong_02 +http://hqdoor.com##.index_newad +http://jianshen114.com##.index_temp +http://163.com##.index_top_ad +http://ijia360.com##.indexad_1 +http://daohangtx.com,jojf.cn##.indexgg +http://chinairn.com##.industry +http://babyhome.com.tw##.info-span-03 +http://itjsb.com##.info_ad +http://wasu.cn##.info_ads +http://ylfx.com##.info_logrt +http://82tu.cc##.infoad +http://chinabidding.com.cn##.innovate + .layer +http://baidu.com##.intro-adv +http://people.com.cn##.ipc_none +http://iqshw.com##.iqshwad-comm +http://henan100.com##.itad +http://carrotchou.blog##.item > a[href^="http"]:not([href*=".carrotchou."]) +http://baike789.com,dysfz.tv,dysfz.vip,wuhaozhan.net##.item-fifth-dl +http://haxiu.com##.item-inner-graph +http://zol.com.cn##.item-sale +http://gansudaily.com.cn##.itemFloat +http://cnbeta.com##.items_area .time +http://pconline.com.cn##.ivy > .ivy-wrap +http://pconline.com.cn##.ivy > a +http://pcauto.com.cn##.ivy-250 +http://sina.cn##.j_article_cutpic +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_banner_post +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_click_stats[href*="adn.baidu.com"] +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_couplet +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_df_card +http://tieba.baidu.com##.j_feed_li[fid="3665221"] +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_l_post:not([data-field]) +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_l_post[data-field*="\"user_name\":\"\\u4e3f\\u5929\\u4e36\\u4e4b\\u6b87\""]:not([data-field*="\"user_id\":1180601200,"]) +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_listLiveTvCnt +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_listLiveTvCnt + .listBtnCnt + #listTalkCnt +http://tieba.baidu.com##.j_post_list_item[data-info^="\7b \"un\":\"\\u623f\\u4ea7\\u5c0f\\u7ad9\\u957f\""] +http://tieba.baidu.com##.j_post_list_item[data-info^="\7b \"un\":\"\\u623f\\u4ea7\\u5feb\\u8baf\\u5927\\u7ba1\\u5bb6\""] +http://tieba.baidu.com##.j_post_list_item[data-info^="\7b \"un\":\"\\u623f\\u4ea7\\u901f\\u8baf\""] +http://tieba.baidu.com##.j_post_list_item[data-info^="\7b \"un\":\"\\u8d34\\u5427\\u89e6\\u70b9\\u63a8\\u5e7f\""] +http://huya.com##.j_posterItem[href^="http"]:not([href*=".huya."]) +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_thread_list[data-field^="\7b \"id\":4419048726,"] +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.j_thread_list[data-field^="\7b \"id\":4756933479,"] +http://jstv.com##.jadv +http://jbtalks.cc,jbtalks.com##.jbt-ad-region +http://ifeng.com##.jcsp +http://jin10.com##.jin-declaration[class*="_b"] +http://jin10.com##.jin-declaration[class*="_h"] +http://jin10.com##.jin-jgg +http://jin10.com##.jin-jgg_d +http://jin10.com##.jin-jgg_j +http://jin10.com##.jin-showbox +http://jin10.com##.jin-wdgg +http://jin10.com##.jin-wdgg + .jin-timeline +http://jin10.com##.jin-wdgg_h +http://oschina.net##.jj +http://eastmoney.com##.jjph_important +http://soyunpan.com##.jmwb +http://haha.mx##.joke-list-anecdote +http://ifeng.com##.jp_list +http://juqingba.cn##.jqright1 +http://jrj.com.cn##.jrj-ad +http://zhanqi.tv##.js-activity-show +http://sogou.com##.js-ad-item +http://hqew.com##.js-ad-tips +http://cs.com.cn##.js-ad1 +http://360kan.com##.js-playicon[href*="wan.360.cn/"] +http://so.com##.js-show-data +http://netbardh.com##.js-static[data-position="3.3"] +http://yahoo.com##.js-stream-content > div > div > div > h3 > a[href^="https://hk.promotions."] +http://hk.yahoo.com##.js-stream-content[style="background-color:#fafaff;"] +http://ifeng.com##.js_url[href^="http://dol.deliver."] +http://jxedt.com##.jxpl +http://fx168.com##.jy_fx168_gjs_content_Right_advise +http://fx168.com##.jy_fx168_zixun_right_ad2 +http://csai.cn##.keifu +http://iqilu.com##.kejie_ad +http://v.ifeng.com##.keyword +http://99tianji.com##.kf1 +http://1kkk.com##.kk2.cc +http://0597kk.com##.kk_ad +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.kn_nine_wrap +http://fznews.com.cn##.kuang100_right +http://lanyes.org##.kuanpin +http://chinaz.com##.kwLink +http://baidu.com##.l-header-ad +http://jin10.com##.l-main > div > .jin-timeline +http://jin10.com##.l-main > div > div[class^="jin-"] > .jin-timeline > div[class^="jin-1"] +http://jin10.com##.l-main_body > .jin-timeline > div[class*=" "] +http://www.jin10.com##.l-main_body > div[class]:not(.jin-timeline) +http://jin10.com##.l-main_body ~ .jin-timeline +http://www.jin10.com##.l-main_info > div[class]:not(.jin-declaration):not(.jin-qq-cooperation) +http://jin10.com##.l-main_wrap > .jin-timeline > div:not(.jin-declaration):not(.jin-qq-cooperation) +http://9vip.top,ahtv.cn,bzfl1.cc,sexbarss.net##.l1 +http://ltaaa.com##.lAds +http://chinatimes.com##.l_ad +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.l_banner +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.l_post + div[class]:not(.l_post) +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.l_post[data-field^="\7b \"author\":\7b \"user_id\":1224761005,"] +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.l_post[data-field^="\7b \"author\":\7b \"user_id\":1480174042,"] +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.l_post[data-field^="\7b \"author\":\7b \"user_id\":1480194257,"] +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.l_post[data-field^="\7b \"author\":\7b \"user_id\":1990070693,"] +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.l_post[data-field^="\7b \"author\":\7b \"user_id\":50012654,"] +http://flight.qunar.com##.l_rside > .b_fly_ban_b:nth-child(2) +http://3jy.com,maolihui.com##.lad +http://1kkk.com##.lanrenzhijia +http://ithome.com##.lapin +http://bh.sb##.large +http://le.com##.lay_body[style^="width:490px;height:320px;"] +http://le.com##.lay_body[style^="width:980px;height:100px;"] +http://le.com##.lay_body[style^="width:980px;height:90px;"] +http://le.com##.lay_title[style^="width:490px;height:60px;"] +http://firefoxchina.cn##.layout > .banner +http://52solution.com##.layout-top-ads +http://szonline.net##.layout_ad +http://gkstk.com##.layui-layer +http://gkstk.com##.layui-layer-shade +http://hz66.com##.lb_gg +http://finance.ifeng.com##.lccs +http://p4yy.com##.leaveNavInfo +http://txtbook.com.cn##.ledu-advWrap +http://pqworld.com##.left-float +http://pqworld.com##.left-float-tx +http://wanqu.co##.left-nav-panel:first-child +http://eastday.com##.left-suspension +http://bejson.com##.left.validate + div +http://cnbeta.com##.left300 +http://newxue.com##.left336280 +http://haxiu.com##.left_a2_04 +http://e2mv.com##.left_advert +http://yxlady.com##.left_bottom_gg3 +http://lz13.cn##.left_box3 +http://lz13.cn##.left_box4 +http://lz13.cn##.left_box5 +http://chinacar.com.cn##.left_pouple_box +http://boniu.xyz,boniu666.co##.left_side +http://duba.com##.left_slidebar_con +http://bt.cn##.left_wrap:nth-child(3) +http://hkwb.net##.leftadv2 +http://hao123.com##.leftbanner +http://muzhi.baidu.com##.leftnest +http://ifeng.com##.leftpopad +http://zimuku.cn##.li[style^="width:8"] +http://5118.com##.lianmeng-home-header +http://china.cn##.lianmeng_div +http://lywww.com##.lianmengclass +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.life_helper +http://lenovo.com.cn##.link-ad +http://xiaoyun.com##.link-ads +http://baidu.com##.link-banner +http://guahao.com##.link-modal +http://huanqiu.com##.link[href^="https://kdt.im/"] +http://dl.pconline.com.cn##.links > p:not([class]) +http://duote.com##.links-banner +http://linux.cn##.linuxcnad +http://igxe.cn##.lion-flexd +http://ddooo.com##.list > li:nth-child(-n+5) +http://iciba.com##.list-item > a[href^="http"]:not([href*=".iciba."]) +http://iciba.com##.list-item > a[href^="http"]:not([href*=".iciba."]) + .list-title +http://news.ifeng.com##.list022 +http://niutuku.com##.listAD +http://eol.cn##.listAd +http://hljtv.com##.listAd1 +http://cheers.com.tw##.listTxt.news +http://nick18.com,niko18.com##.list_ads +http://en8848.com.cn##.list_adv +http://rsdown.cn##.list_lg +http://qunar.com##.list_promotion_bar +http://uimaker.com##.listads +http://58.com##.listpage_detail +http://huaren.tv##.live-client_left +http://huaren.tv##.live-client_right +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.live_show_aside +http://ifeng.com##.ljPop +http://hao123.cn##.llc +http://china.cn##.lm_div +http://tianya.cn##.load_m_top +http://9ifz.cc##.logbtad +http://ypppt.com##.login_panel +http://uc123.com##.logo > a +http://wdzj.com##.logo-banner +http://fashionguide.com.tw##.logo_ad +http://jjxw.cn##.logo_ad_r +http://chinamedevice.cn##.logo_ads +http://silver.org.cn##.logo_dsaas +http://qinbing.cn##.logo_right +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.lot_wrap +http://sohu.com##.lottery-box +http://kekenet.com##.lp_r_bar:first-child +http://jrj.com.cn##.ls_all_fc +http://ytbbs.com##.lt_ad +http://ltesting.net##.ltad_1170 +http://ltesting.net##.ltad_580 +http://luanren.com##.luanren_dbhfad +http://luanren.com##.luanren_dbhfad2 +http://zhainanfulishe.com##.lunboceng +http://rising.cn##.lvmama +http://0597kk.com##.lyhux_mu +http://123.sogou.com##.m-12[pbflag="guess"] +http://pconline.com.cn##.m-JCZ-scrollBlock +http://jx3pve.com##.m-banner-tool +http://moe123.net##.m-inner2[style="height: 160px;"] +http://uc123.com##.m-link +http://sina.com.cn##.m-p1-lb1-ad +http://sina.com.cn##.m-p3-ad +http://finance.sina.com.cn##.m-s-tab + div +http://foodmate.net##.m[style="height:40px;"] +http://myexception.cn##.m_a +http://lgn.yy.com##.m_left +http://163.com##.m_papa +http://hupu.com##.m_text_ad +http://8bo.com##.mad +http://zhicheng.com##.mad_bt +http://zhicheng.com##.mad_top +http://163disk.com##.mads +http://hupu.com##.maibghref +http://th7.cn##.main > .mb5 +http://firefox.com.cn,firefoxchina.cn##.main-huo +http://firefox.com.cn,firefoxchina.cn##.main-promote-sites +http://firefoxchina.cn##.main-promote-tmall +http://news.hf365.com##.main-r > div:first-child +http://51credit.com##.main-r-ka +http://expreview.com##.main-side-tao +http://vuejs.org##.main-sponsor +http://nxing.cn##.main:nth-child(-n+6) +http://businessweekly.com.tw##.mainR_content:nth-child(5) +http://greatwuyi.com##.main_9788 +http://greatwuyi.com##.main_ad2 +http://tvmost.com.hk##.main_ad_b +http://hongfen.org##.main_adser +http://cnbeta.com##.main_content_left > .mt5[style="text-align:center;"] +http://m.07073.com##.main_content_tit + div +http://tianya.cn##.main_xiangguan2 +http://qqjia.com##.mainad +http://2345.com##.mainbg +http://2345.com##.mainbg1 +http://bbs.fobshanghai.com##.maintable > div:nth-child(7) +http://iguang.tw##.mall +http://baidu.com##.manual-spread +http://zhainanba.org##.marauto > p[style="text-align: left;"] +http://fun48.com##.margin-big-bottom +http://fx110.com##.matrix-banner +http://oschina.net##.mayun-jj +http://itavcn.com##.mb_right > .mt8:nth-child(3) +http://265g.com##.mban +http://sciencenet.cn##.mbanner +http://hao.360.cn,hao.360.com##.mbar-bd +http://douguo.com##.mbs +http://2345.com##.mco-ex-ndxh +http://zhaiiker.com##.media-content[style*="0x"] +http://cnool.net##.meilai_box +http://zimuzu.tv##.menu-box > .w > li > a[style="color:red;"] +http://cnbeta.com##.meta > .fr +http://cangku.in,galacg.me,llss.li,usnewsexpress.com##.metaslider +http://hexieshe.com,hexieshe.xyz,xxshe.info##.mh-sidebar img +http://hexieshe.com,hexieshe.xyz,xxshe.info,xxshe.xyz##.mh-widget > .textwidget > p > a[href^="http"]:not([href*="she."]):first-child:last-child +http://baby-kingdom.com##.mian + .foot > .foot-top:first-child +http://midifan.com##.mid-aaa +http://rj.baidu.com##.mid-recommend +http://360-bo.com##.middiv > div[style="text-align:center;"] +http://letv.com##.middle-advert +http://timedg.com##.middleCrossAdvertise +http://jmbbs.com##.middle_guanggao +http://fenghuo.in##.mimi +http://6.cn##.min-ad-box +http://cnr.cn,jxcn.cn##.min-news-box +http://nowcoder.com##.mini-banner +http://goldlegend.com##.mjad +http://hmog.me##.ml_ad_widget +http://cnforex.com##.mleft > a +http://china.com##.mm +http://6789.com##.mm-force +http://fqlook.com##.mmver +http://playno1.com##.mn > div[style="margin-bottom:10px;"] +http://mail.pchome.com.tw##.mnav +http://mnw.cn##.mnw_685 +http://mnw.cn##.mnw_960 +http://mnw.cn##.mnw_top_ads +http://sogou.com##.mobad +http://1905.com##.mobile_ad_promote +http://www.sina.com.cn##.mod-01 +http://image.baidu.com##.mod-promo +http://sdo.com##.mod-public-ads +http://17173.com##.mod-tg1 +http://2345.com,hao774.com##.mod-txtred +http://pptv.com##.mod_960x90 +http://163.com##.mod_ad_r +http://163.com##.mod_ad_toutu +http://pianyuan.net,qixingquan.com##.modal-backdrop +http://xunyingwang.com##.modal-body +http://firefoxchina.cn##.module-banner +http://i.maxthon.cn##.module.tools-main[data-s-n="bottom"] +http://html-js.com##.module[style="padding:0;"] +http://moonbt.com##.money_all +http://autohome.com.cn##.monkey_box +http://autohome.com.cn##.monkey_box_big +http://autohome.com.cn##.monkeyicon-br +http://xbooks.to##.movie-in-ad +http://hao123.com##.mp-app-ad +http://jmw.com.cn##.mr_1 +http://firefoxchina.cn##.mrec-banner +http://xici.net##.msgl_ad +http://66rd.cn##.mst_lamu_main +http://9669.cn##.mt10[style="height:260px;"] +http://dnwx.com##.mt5_23 +http://newcger.com##.mtb17.h90 +http://meltoday.com,sydneytoday.com##.mtgad +http://90oo.com##.mtswp_scbar_ad +http://stockstar.com##.much_ad +http://techug.com##.mug +http://pixiv.net##.multi-ads-area +http://cqsq.com##.mumucms_index_tlad +http://china.com##.mxm +http://cngold.com.cn##.myGuangGao +http://cnblogs.com##.my_money +http://cosxcos.xyz##.myakbz +http://acglover.me##.myas +http://myday.com.tw##.myday_ad_950 +http://myday.com.tw##.myday_ad_left +http://myday.com.tw##.myday_ad_right +http://sydneytoday.com##.mygad +http://abcsee.net##.myset +http://ifooday.cn##.myzs +http://2345.com,hao774.com##.mzdh_bottom +http://hepuwang.com##.n5_dbhfad > .wapper +http://123cha.com##.n_ads_box +http://123cha.com##.n_ads_box + .box > .tbl > tbody > tr:last-child > td[bgcolor="#eeeeee"][width="350"]:last-child +http://moyu16.com##.nav-banner +http://maplestage.com##.nav-left-module__info-wrapper___35CLR +http://youxiduo.com##.navAd +http://lenovo.com.cn##.nav_ad1 +http://lenovo.com.cn##.nav_ad2 +http://baidu.com##.nav_ads +http://cctime.com##.nav_banner +http://e10000.cn##.navigate_sty + div +http://hao123.com##.navrecommend-hjw +http://hao123.com##.navrecommend-top +http://tpy888.cn##.nead +http://guidaye.com##.neirongs +http://rising.cn##.new-1111 +http://zhanqi.tv##.new-advertising-area +http://yes-news.com##.new-index-ad300 +http://yes-news.com##.new-index-main-728 +http://yes-news.com##.new-index-main-ysm +http://yes-news.com##.new-sidebar-today-300ad +http://i-part.com.tw##.newAd +http://ifeng.com##.newAdImg +http://steelcn.cn##.new_fixed +http://halidown.com##.new_head_ad +http://doub.io##.new_zixun +http://zhicheng.com,zt5.com##.newa +http://zhicheng.com##.newa2 +http://uimaker.com##.newbaidu +http://ali213.net##.newright +http://sydneytoday.com##.news-list > .row > .col-xs-12 +http://eastday.com##.news-promote +http://kaifu.com##.news-t-adv +http://2345.com##.newsArea +http://chinaz.com##.newsMainBox-textad +http://afzhan.com##.newsRightAdv +http://ifeng.com##.news_ADbox +http://m.baidu.com##.news_ad +http://weishangshijie.com##.news_ads1200 +http://weishangshijie.com##.news_ads_1028 +http://jia360.com##.news_adv:nth-child(3) +http://aguitar.cn##.news_b +http://zhcw.com##.news_blanck +http://auto-online.com.tw##.news_content > div[style="width:728px;margin:10px auto"] +http://oschina.net##.news_detai_above_ad +http://mydrivers.com##.news_left > div[style*="height:"] +http://07073.com##.news_list1_tu +http://chinamedevice.cn##.news_ylqx +http://chinamedevice.cn##.news_ylqx3 +http://qihoo.com##.newsitem[data-rawurl*=".youcai8888.com/"] +http://mitbbs.ca,mitbbs.com##.newskuang2 +http://gamersky.com##.ngg_down +http://chongdiantou.com##.nice-sales +http://weishangshijie.com##.nleft_ads +http://dyhjw.com##.nn_link +http://wallstreetcn.com##.node-main-ad +http://admin5.com##.notice +http://yes-news.com##.notification +http://haoxxoo.com##.nrad1 +http://haoxxoo.com##.nrad2 +http://szhk.com##.ny_ad1 +http://wallstreetcn.com##.omg-container +http://10jqka.com.cn,hepan.com##.onead +http://duba.com##.oneone-search +http://bilibili.com##.online + .adpos +http://pgzhibo.com##.onlineqq +http://pgzhibo.com##.onlineqq_left +http://udn.com##.only_web > .DisplayVideo +http://ifeng.com##.opcPop_tit_zz +http://wdzj.com##.opentb +http://read.qidian.com##.operation-wrap +http://baidu.com##.optimus +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.order_repost_wrap +http://jdwx.info,motobuy.com.tw##.other +http://6parknews.com##.other_list_ad +http://cnbeta.com##.other_news +http://wenxuecity.com##.otherposts +http://jjxw.cn##.ou_banner +http://bbs.my0511.com##.outertxt > tbody > tr > td[height="80"][align="right"] +http://dilidili.wang##.overflow-box > ul > li > a[href^="http"]:not([href*=".dilidili."]) +http://avsuggest.com##.overlay +http://udn.com##.overlay-container +http://lalulalu.com##.overture_banner +http://allhabit.com##.overture_forumlist +http://allhabit.com##.overture_threadlist +http://allhabit.com##.overture_threadlist_single +http://allhabit.com##.overture_top_banner +http://appledaily.com.tw##.owl-lazy[tcode^="AD:"] +http://sgcn.com##.oyad2.cl +http://quanmin.tv##.p-room_ad +http://quanmin.tv##.p-room_chatad +http://quanmin.tv##.p-star_adWrap +http://opticsky.cn##.p83_gridC > .cc +http://webkaka.com##.pNavigateAd +http://webkaka.com##.pTopTextAd +http://jj59.com##.p_ad +http://25xz.com##.p_ads +http://actoys.net##.p_new_ad +http://sina.cn##.p_newsmore +http://actoys.net##.p_top_ad +http://baidu.com,cssmoban.com##.page-banner +http://contents.internet.apps.samsung.com##.page-bar +http://xizi.com##.pageAD1 +http://cngold.org##.pageAdv +http://baidu.com##.pageLeftFixedAD +http://ifeng.com##.pao_ad_02 +http://ifeng.com##.pao_ad_03 +http://ifeng.com##.pao_mid +http://ifeng.com##.pao_mid_02 +http://xinhuanet.com##.part-ad1 +http://www.sina.com.cn##.part-l +http://bbs.52life.cc##.part1 +http://cpnn.com.cn##.part3-adverd +http://sina.com##.parta_l_ads +http://javdove.com,javdove2.club##.partialViewSlider-outerwrapper +http://heiguang.com##.pbAddPic +http://kikinote.net##.pc_ad +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.per_list.j_per_list.per_list_frs +http://52solution.com##.pf-outbox +http://265g.com##.phone_bgban +http://sodao.com##.photo-see > div[style="text-align: center; margin-bottom: 10px;"] +http://caikuu.com##.photo_abv +http://jrj.com.cn##.piboxtwo +http://tv.52pili.com##.pic-box +http://ifeng.com##.pic1000 +http://ifeng.com##.pic280 +http://ifeng.com##.pic300 +http://ifeng.com##.pic950 +http://down.ali213.net,patch.ali213.net##.picBg +http://ifeng.com##.picNews +http://dealmoon.com,weibo.com##.pic_ad +http://ctrip.com##.pic_banner +http://gmw.cn##.pic_list_bd750 +http://chinaiiss.com##.pic_text +http://moxing.net##.pic_txt_list +http://baidu.com##.picad +http://16sucai.com##.pindao_ad2 +http://keywin.org##.pindaolist +http://creaders.net##.pinglun > .btmlist-title +http://chinaz.com##.plate-layout +http://baofeng.com##.play-ads +http://news.ifeng.com##.play_center +http://kaifu.com##.play_fmt +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.play_list_panel +http://ifeng.com##.playad +http://gimy.tv##.playadbox +http://league-funny.com##.player_bb +http://sgamer.com##.plc > div > a[href*=".vgcool.com"] +http://moonbbs.com##.plc.plm > div > div > a[href*=".dealmoon.com"] +http://firefox.com.cn,firefoxchina.cn##.pm-crack +http://www.17173.com##.pn-tg +http://19lou.com##.pop-ad +http://hqew.com##.pop-banner +http://pconline.com.cn##.pop-huodong +http://sogou.com##.pop-tuiguang +http://av.movie##.pop-up-a +http://chengdu.cn##.pop_box +http://zhan.com##.pop_shousuo +http://ifeng.com##.popoxiu_topic +http://dzwww.com##.popular +http://qiuziti.com##.popularize +http://eol.cn,hao123.com##.popup +http://easylife.tw,ez3c.tw##.popup_bottom_block +http://camerabay.tv##.popupad +http://pzzc.net##.portal_block_summary +http://tgfcer.com##.portalbox +http://ilxdh.com##.pos-nav +http://netbardh.com##.pos-navbar-ad +http://jobbole.com##.post > .textwidget +http://vmovier.com##.post-ad-bottom +http://jobbole.com##.post-adds + .textwidget +http://css88.com##.post-bottom +http://sanv.org##.post-left +http://vmovier.com##.post-right-item + a[target="_blank"] +http://ihacksoft.com##.post-top-gg +http://163.com##.post_adtop_main +http://gamme.com.tw##.post_adwrpt +http://tieba.baidu.com##.post_client_down +http://phpvar.com##.post_content_linkad +http://163.com##.post_recommend_ad +http://blog.163.com##.postadlayer +http://baixing.com##.poster-info-container + .side-block +http://bbs.51cto.com##.postinfo06a +http://zhujiboke.com##.posts-top-cjtz +http://ifxtx.com##.ppsy_content758 +http://7hcn.com##.pr > a[href^="http"]:not([href^="http://www.7hcn."]) +http://javdove.com,javdove2.club##.preroll-adv-popup-overlay +http://pcstore.com.tw##.priority +http://pcstore.com.tw##.priority1 +http://pcstore.com.tw##.priority_ad +http://duba.com##.pro_r_t +http://meltoday.com,sydneytoday.com##.promo +http://brtn.cn,btime.com##.promo-item > a[href^="http"]:not([href*=".b"]) +http://huaban.com##.promotion +http://anquan.org##.pub_side_ad +http://fwxgx.com##.public-link > a[href^="http"]:not([href*=".fwxgx."]) +http://doudoudm.com##.public_ad +http://ifeng.com##.pullClient +http://cnplugins.com##.pushbox1 +http://sogou.com##.pz-widget-flash-container +http://baidu.com##.qb-other-answer-wmad +http://baobao.baidu.com##.qb-relate-box +http://qidian.com##.qd-game +http://or123.top##.qfe_wrapper > div > a[href^="http"]:not([href*="or123."]) +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.qipai_thread +http://seqing.world,singlove.com,whichav.com,whichav.net,wokao.co##.qq +http://zixuekaoshi.net##.qq_nr_lad +http://htcui.com##.qqanimate +http://baidu.com##.quality-elinks +http://ifeng.com##.qudaoTg +http://muzhi.baidu.com##.quick-ask-2 + .android + div +http://hualongxiang.com##.quick_reply_ad +http://im286.net##.qybj +http://ouyaoxiazai.com##.qzhengfu +http://ali213.net##.qztf +http://9vip.top,ahtv.cn,bzfl1.cc,sexbarss.net##.r1 +http://biz.zjol.com.cn##.rBlok1[style=" margin-bottom:10px;"] +http://7hcn.com##.rCont +http://xitongcheng.com##.r_adv +http://douni.com##.rad_1 +http://mydigit.cn##.radi +http://ananvod.com##.rbPicAll +http://sciencenet.cn##.rbanner +http://818today.com##.rbdyg +http://yuqingcn.cn##.rboxad +http://msn.cn##.rc > a[href^="https://sp.booking.com/"] +http://xvna.com##.rctad +http://xmfish.com##.readCon_right +http://wenku.baidu.com##.reader-to-cashier-vip > .rights-wrap +http://sina.com.cn##.real-time-window__ad +http://finance.ifeng.com##.rec +http://baidu.com##.rec-feeditem +http://douban.com##.rec_topics_name[href^="https://erebor.douban."] +http://image.baidu.com##.recom +http://ilxdh.com,image.baidu.com,xizi.com##.recommend +http://csdn.net##.recommend-ad-box +http://0597kk.com##.recommend-container +http://tvsou.com##.recommend-img +http://csdn.net##.recommend-item-box[data-track-click*="http"]:not([data-track-click*=".csdn."]) +http://iciba.com##.recommend-item:not([href*=".iciba."]) +http://hao123.com##.recommend-link +http://le.com##.recommend-part-right +http://china.cn##.recommend_RightShow +http://china.cn##.recommend_box +http://china.cn##.recommend_video +http://72g.com##.recommended +http://passiontimes.hk##.rectAd680 +http://chinaz.com##.red[href*=".wsisp.net/"] +http://guba.eastmoney.com##.redian +http://gg-led.com##.regg +http://e-learn.cn##.region-sidebar-second > .block:nth-child(2) +http://w3cplus.com##.region-sidebar-second > :nth-last-child(n+3) +http://xueqiu.com##.regist-guide-container +http://mop.com##.rel-item-gg +http://pconline.com.cn##.rela-best +http://mbd.baidu.com##.related-news > section:first-child + div +http://ithome.com##.related_buy +http://tiexue.net##.reloadCont > div:first-child +http://hoteastday.com##.reloadMedia1 +http://tbtdg.com##.reveal-modal-bg +http://rfidworld.com.cn##.rfidADClass +http://fuliba.net##.right-banner +http://image.baidu.com##.right-banner-area +http://to8to.com##.right-float-ad +http://csdn.net##.right-item[data-track-click*="http"]:not([data-track-click*=".csdn."]) +http://123.chinaso.com##.right-list6 +http://qidian.com##.right-op-wrap +http://eastday.com##.right-suspension +http://news.ifeng.com##.right1 +http://baby-kingdom.com##.right5 +http://baidu.com##.rightAd-skin +http://fullyu.com##.rightSide-top-ads +http://hao123.com##.rightTip +http://niotv.com##.right_ad1 +http://eastday.com##.right_adv_1 +http://eastday.com##.right_adv_2 +http://eastday.com##.right_adv_3 +http://cztv.com##.right_box +http://qqyy.com##.right_dcotor_tab +http://sznews.com##.right_flash +http://ifeng.com##.right_gg +http://mtrend.cn##.right_hongbao_xuanfu +http://gucheng.com##.right_info +http://lahoo.ca##.right_multi_banner +http://163.com##.right_originalcolumn_ad +http://china.cn##.right_shop_box +http://boniu.xyz,boniu666.co##.right_side +http://dilidili.wang##.right_top_ad +http://hkwb.net##.rightadv2 +http://mail.sina.com.cn##.rightbottom +http://tingvoa.com##.rightgood +http://muzhi.baidu.com##.rightnest +http://portablesoft.org##.rightside > :nth-child(n+2) +http://biz.ifeng.com##.riodel +http://ithome.com##.rm-modal-bg +http://ithome.com##.rm-modal-body +http://playallvideos.com,pron.co##.rmedia +http://allyingshi.com,zimuzu.tv##.room +http://douyu.com,douyutv.com##.row-4.theatre +http://jia360.com##.row-ad01 +http://douyu.com,douyutv.com##.row.row-3 +http://howfile.com##.row1_right +http://dalao.ru##.row:nth-child(11) +http://honglingjin.co.uk##.rsads +http://ld0766.com##.rsf_pull_screen_adv +http://zj.com##.rt-banner +http://jjxw.cn##.ru_banner +http://codejie.net##.s-ad-tit-box +http://uc123.com##.s-left +http://baidu.com##.s-news-special[data-url^="http://vip.baidu.com/"] +http://uc123.com##.s-right +http://2345.com##.s11-fixNav +http://2345.com##.s11-logowall +http://2345.com##.s11-side +http://duba.com##.s11_store_box +http://duba.com##.s11_zb +http://114la.com##.s11bg +http://tbtdg.com##.s11text +http://2345.com##.s12-fullNav +http://wenda.tianya.cn##.s1Tit + .sideBox +http://cnstock.com##.sBox-left +http://cnstock.com##.sBox-right +http://finance.ifeng.com##.sConRbox +http://laozuo.org##.s_ad125 +http://baidu.com##.sam_iebrowser_banner +http://image.baidu.com##.sample0 +http://image.baidu.com##.sample1 +http://image.baidu.com##.sample2 +http://ithome.com##.sb_list > .bx +http://1010jiajiao.com##.sbox +http://image.so.com##.sc-similarcm +http://hao123.com##.sc-tips +http://mail.pchome.com.tw##.sceng +http://wps.cn##.school +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.score_ecr_wrapper +http://epinv.com##.scrollep +http://firefox.com.cn,firefoxchina.cn##.sd-promote +http://playno1.com##.sd.pph +http://yeeyi.com##.sd.pph > .mbm.hm +http://xianzhenyuan.cn##.sd_ad:not(#xztba) +http://pediy.com##.search +http://baidu.com##.search-aside-adWrap +http://map.baidu.com##.search-item[data-stat-code="poisearch.damoce.item"] +http://rising.cn##.search-news1 +http://hao.rising.cn##.search-right +http://dict.cn##.search-right-ad5 +http://dict.cn##.search-right-ad7 +http://duba.com,timeon.cn##.search_promotion +http://ijia360.com##.search_radlist +http://qiuziti.com##.search_wordimg +http://cnool.net##.second-banner +http://www.sina.com.cn##.secondtj-wrapper +http://coolinet.com##.section-banner +http://tiboo.cn##.sectionAd +http://romzj.com##.sectionThree +http://brtn.cn,btime.com##.seed-item +http://oxxvideos.xyz##.self-gg +http://zealer.com##.series_app +http://wenku.baidu.com##.service-entry +http://jq-school.com##.setfarme:nth-child(7) +http://4399.com##.setlide a[href^="http"]:not([href*=".4399."]) +http://baidu.com##.sf-wrap > .c-back + div[id]:last-child +http://zhicheng.com##.sf_1 +http://baidu.com##.sfc-image-content-adrootnew +http://baidu.com##.sfc-image-content-adtext +http://baidu.com##.sfc-image-content-waterfall-item > div:not([class]) > .sfc-image-content-cell +http://wbzol.com##.sg +http://ottawazine.com##.sgpb-popup-overlay +http://pcsoft.com.cn##.shang11-top +http://m.mydrivers.com##.share +http://xilu.com##.shehuibanner +http://hao.rising.cn##.shop-site +http://teepr.com##.shop-widget +http://china.cn##.shop_box +http://gq.com.tw##.shopslide +http://qiushibaike.com##.shopwindow +http://neonan.com##.shouhuan_ad +http://miercn.com##.show-img-box +http://200sht.info,sehuatang.org##.show-text +http://zahuishi.com##.show2960x90 +http://cnxz.cn##.showad +http://3987.com##.showdown > .mt20:first-child +http://91lai.com##.showimgs +http://uwants.com##.showpx1 +http://pcsoft.com.cn##.shuang11 +http://duanwenxue.com##.shuang11_gg +http://duanwenxue.com##.shuang11_mb +http://aohua.com.au##.sidBoxNoborder +http://showtv.com.tw##.side-AD +http://laifudao.com##.side-adinner +http://guokr.com##.side-adv +http://ruten.com.tw##.side-advertise +http://iwan.baidu.com##.side-banner +http://rs05.com##.side-bar-first +http://uc123.com##.side-hot +http://wallstreetcn.com##.side-money +http://firefox.com.cn,firefoxchina.cn##.side-notice +http://firefoxchina.cn##.side-promote +http://firefoxchina.cn##.side-recommend +http://smzdm.com##.side-stuff +http://firefoxchina.cn##.side-tool-outer > div[class]:first-child +http://firefoxchina.cn##.side-tpth +http://niutuku.com##.sideAD +http://youthwant.com.tw##.side_adbox +http://shuowan.com##.side_flash +http://duba.com##.side_game +http://duba.com##.side_other > .img +http://duba.com##.side_taobao +http://uu114.cn##.side_top_banner +http://hmog.me##.side_widget:last-child +http://cjn.cn##.sidebar +http://zol.com.cn##.sidebar > .n1-pad-entrance-wrap +http://pupudy.com##.sidebar > .widget-textasst:nth-child(n+3) +http://wn789.com##.sidebar > .widget:not(:first-child):not(.widget_ui_posts) +http://jianshen8.com##.sidebar > a +http://fulibus.net##.sidebar > div:first-child +http://xiaoz.me,xingkbjm.com##.sidebar a > img +http://superlife.ca##.sidebar-ad-zone +http://cyhour.com##.sidebar-all +http://juejin.im##.sidebar-bd-entry +http://portablesoft.org##.sidebar-box +http://cnblogs.com##.sidebar-image +http://mywpku.com##.sidebar-recommended +http://daweijita.com##.sidebar-right > .widget-box:first-child +http://cangku.in,galacg.me##.sidebar-top +http://52tian.net##.sidebar960 +http://steachs.com##.sidebar:first-child +http://bestcbooks.com##.sidebar:last-child +http://kocpc.com.tw##.sidebar:nth-child(2) +http://kocpc.com.tw##.sidebar:nth-child(3) +http://pic.sogou.com##.sidebar_box.shut +http://v2ex.com##.sidebar_compliance +http://v2ex.com##.sidebar_units +http://fsdpp.cn##.sidebox > a > img +http://uraban.me##.sider > a +http://docin.com##.sider_gg +http://youtaoqi.com##.sidetg +http://mopxing.com##.sideul1 +http://sina.com.cn##.sinaads +http://uuu9.com##.sindex_ad1 +http://2000fun.com##.single-box +http://fujieace.com##.single-goods +http://kocpc.com.tw##.single_ads +http://i.maxthon.cn##.site-ad-container +http://stockstar.com##.siteAd_l +http://stockstar.com##.siteAd_r +http://icoc.cc,icoc.in##.siteAdvertisement_box +http://hdchina.org##.sitead +http://uimaker.com##.siteads +http://findprice.com.tw##.sitemajiad +http://hao123.com##.siye +http://iask.sina.com.cn##.sj_300x250 +http://iask.sina.com.cn##.sj_680x250 +http://fuli.us##.slick +http://baidu.com##.slide-bner-adv-ret +http://ksbbs.com,kshot.com##.slideAdvert +http://e0838.com##.slideInner +http://cnbeta.com##.slide_area a[href^="http"]:not([href^="http://www.cnbeta."]) +http://ifeng.com##.slide_popo_modal +http://duba.com##.slidebar +http://duba.com##.slidebar + .extend +http://talkfx.com##.slidebox +http://hupu.com##.slider-pic > .list > li > a[href^="http://goto.hupu."] +http://uc.cn##.slider__sdk__wrapper +http://1688.com##.sm-offer-item[p4p*=".1688."] +http://codepub.com##.small-banner +http://hao.360.cn##.small-obj +http://pdflibr.com##.sms-content-ad +http://ant.design##.snd-ad +http://hao123.com##.soft-ad-banner +http://huacolor.com##.soft-downUrl-list.underline +http://oschina.net##.soft_detai_above_ad +http://sohu.com##.sogouService +http://5nd.com##.songAds +http://jq.131458.com##.soso_02 +http://firefoxchina.cn##.sp-content +http://zww.me##.sp-top-img +http://missyuan.com##.spaceborder +http://baidu.com##.spage-couplet-container +http://ithome.com.tw##.span4:nth-child(5) +http://ithome.com.tw##.span4:nth-child(8) +http://css88.com##.spark-rm +http://shmet.com##.spb-biz-cont +http://fhm.com.tw##.special_ad_bottom_sticky +http://fhm.com.tw##.special_ad_cover +http://geekpark.net##.sponsor +http://northnews.cn##.sponsor02 +http://sogou.com,soso.com##.sponsored +http://so.com##.spread +http://baidu.com##.spread-wrap +http://2345.com##.spreadHotWords +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.spreadad +http://stockstar.com##.ss-ad-icon2 +http://xuebuyuan.com##.ss_gateway +http://duba.com##.ss_sider_list[href*=".wan.liebao.cn"] +http://3g.cn##.statistic[href^="https://jumpluna.58.com/"] +http://sonimei.cn##.style01 +http://sonimei.cn##.style03 +http://guofs.com##.style2 +http://cnbeta.com##.sub-title +http://07073.com##.subarea_ad +http://cam4.tw##.subfoot-section +http://etest8.com##.subtop2right +http://17house.com##.suiping +http://qingdaonews.com##.surround +http://ifeng.com##.swiper-bottom +http://vdianying.cc##.swiper-container +http://1kkk.com,dm5.com##.swiper-container[style*="760px;"] +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.switch_radios + div[class] +http://chinaxinge.com##.sy05 +http://chinaxinge.com##.sy07 +http://heiguang.com##.syAdTopTxt +http://17jiaoyu.com##.sy_ad +http://114la.com##.sy_ad4 +http://5g0a.com##.sy_tj +http://yahoo.com##.sys_dict_native_ads +http://zhifang.com##.sytl +http://bcbay.com,creaders.net##.syzx +http://suizhoushi.com##.sznew_ad_top +http://17ok.com##.t-bann +http://17yy.com##.t2_3 +http://17yy.com##.t2r_3 +http://suopao.org##.t5[style^="margin-top:8px;"] +http://gou19.com##.t[style="margin-top:8px"] +http://bbs.fobshanghai.com##.t_infoline +http://douyu.com,douyutv.com##.tab-content.promote +http://chinatimes.com##.tab_4_box +http://265g.com##.tab_imgtop +http://tw.yahoo.com##.tabads +http://ghoffice.com##.tac > a > img[src*=".gif?"] +http://mgbbs.cn##.tac.mb10 +http://076299.com,77bike.com,actoys.net,gpsuu.com,homefei.me,ksbbs.com,mgbbs.cn,oigps.com,opticsky.cn##.tac.mb5 +http://77bike.com,ghoffice.com##.tac[style="border-top:1px dotted #ddd;line-height:1;"] +http://txzqw.me##.tac[style="margin-bottom:5px;"] +http://hlgnet.com,sina.com##.tad +http://weibo.com##.tag_showTopicL[href^="https://shop.sc.weibo.com/"] +http://cqnews.net##.taobao +http://duba.com##.taobao_search +http://chinaiiss.com##.taobaopic +http://83133.com##.tb-tanx +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.tb_poster_info.poster_success +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.tb_poster_placeholder +http://jxedt.com##.tbad +http://gkpass.com##.tbanner +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.tbui_aside_float_bar + .clearfix +http://9u8u.com##.tc-box +http://baidu.com##.tc-card[tpl="fc_before_fixads"] +http://srzc.com##.tcck1 +http://srzc.com##.tcck2 +http://52pk.com##.tcgg +http://nobugin.com##.td-a-rec +http://newmobilelife.com##.td-a-rec-id-content_inline +http://zeekmagazine.com##.td-all-devices +http://8boniu.com,boniu.xyz,boniu666.co##.td_item +http://mobanwang.com##.teagg +http://duba.com##.tempAd +http://affyun.com##.text +http://affyun.com##.text ~ a +http://baidu.com##.text-advertise +http://dalao.ru##.text-gray:nth-child(10) +http://baidu.com##.text-link-ads +http://yorkbbs.ca##.textNewsBorder +http://auto-online.com.tw##.text_links_h +http://eyy5.cn##.textadlist +http://maomaomom.com##.textwidget > table[width="1050"] +http://acgbuster.moe##.tg-inner +http://526bt.com,eroacg.com,laod.cn,xiaohutuwb.com,zhujiceping.com##.tg-site +http://outofmemory.cn##.tgBar +http://sogou.com##.tgad-box +http://www.sogou.com##.tgad-box + div +http://sogou.com##.tgad-title +http://uuu9.com##.tgbox +http://putclub.com##.the_ad +http://wanghualang.com##.theiaStickySidebar +http://firefoxchina.cn##.theme-618 .theme-side-bg .mod +http://firefoxchina.cn##.theme-side-bar-couplet +http://firefox.com.cn,firefoxchina.cn##.theme-side-bar-priority +http://firefox.com.cn,firefoxchina.cn##.theme-side-bar[trace-key="ad_theme_skin_link"] +http://cnool.net##.third-banner +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.thread_dir_ad +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.thread_local_58 +http://jbtalks.cc##.threadad +http://css88.com##.thumb-leftsidebar-image02 +http://css88.com##.thumb-rightsidebar-image01 +http://163.com##.tie-ad-bar +http://2345.com,hao774.com##.tip_stopXP +http://zhujiwiki.com##.tips +http://3gsc.com.cn##.tipsA +http://so.131458.com##.tishi:first-child +http://gamefy.cn,sitv.com.cn##.tit > span[style="float:right; width:285px;"] +http://asp300.com,asp300.net##.tit01 > a +http://asp300.com,asp300.net##.tit02 > a +http://landiannews.com##.title > .more +http://bilibili.com##.title > span > a[href^="http"]:not([href*=".bilibili."]) +http://gucheng.com##.title_ad_time +http://gucheng.com##.title_down_ad +http://chinaz.com##.titright +http://www.duba.com##.tiyan_a +http://youth.cn##.tj2_pic +http://image.baidu.com##.tjImgli +http://image.baidu.com##.tjad +http://cnbeta.com##.tks +http://bdimg.com,tieba.baidu.com,tieba.com##.tl_shadow + * + li[class]:not([class="tl_shadow tl_shadow_new"]):not([class="tl_shadow tl_shadow_new "]):not([class="tl_shadow tl_shadow_new shadow"]) +http://tieba.baidu.com##.tl_spread +http://manmanw.net##.tlads +http://esnai.com##.tlgg +http://maxthon.cn##.tmall-nav-v2 +http://duba.com,uu114.cn##.tmall_bg15 +http://sxrom.com##.tmk +http://muchong.com##.todayhot +http://weather.com.cn##.tong +http://gamefy.cn##.tonglan +http://qilindao.com##.tonglanAd +http://chinanews.com##.tonglan_advert +http://3dmgame.com##.tonglona_1 +http://3dmgame.com##.tonglona_2 +http://3dmgame.com##.tonglona_3 +http://3dmgame.com##.tonglona_4 +http://fuliba.net##.tool_news1 +http://loldk.com##.tools-recommend +http://golangtc.com,html-js.com##.top +http://meizhou.com##.top + .w1000 +http://2345.com,hao774.com##.top > .fred +http://midifan.com##.top-aaa +http://10jqka.com.cn##.top-ad-box +http://baidu.com##.top-ad-cont +http://vansky.com##.top-ad-link +http://leiphone.com,sina.com.cn##.top-banner +http://baidu.com##.top-banner-ad-wrap +http://10jqka.com.cn##.top-bar-fl > .top-hot +http://infoq.com##.top-bar-promo +http://99danji.com,eeyy.com##.top-bg +http://zimuzu.tv##.top-box > div[style="text-align:center; margin:0 0 15px 0;"] +http://zimuzu.tv##.top-box > div[style="text-align:center; margin:10px 0 15px 0;"] +http://163.com##.top-gg-area +http://taihainet.com##.top-info +http://2345.com##.top-lvy +http://eelly.com##.top-picture +http://css88.com##.top-post-link +http://rj.baidu.com##.top-recommend +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.top-sec + .middle-sec +http://hao123.com##.top-test +http://ifeng.com##.top-tg +http://52wubi.com##.top960 +http://ktkkt.com##.top980 +http://ktkkt.com##.top980a +http://ifeng.com,nen.com.cn,sina.com,sina.com.tw,weibo.com##.topAd +http://ifeng.com##.topAdBox +http://ltaaa.com##.topAds2 +http://sxclub.net##.topAdv +http://baidu.com,cntour2.com##.topBanner +http://howbuy.com##.topBigAd +http://timedg.com##.topCrossAd +http://hupu.com##.topPub +http://afzhan.com##.topRightAdv +http://hao123.cn##.top_2_2 +http://51wangdai.com##.top_AD +http://pjtime.com##.top_R +http://duba.com##.top_ad_ban +http://duba.com##.top_ad_tmall +http://40407.com,86wan.com,qudong.com,xitong8.com,xt700.com##.top_banner +http://cngold.org##.top_bigad +http://0772fang.com##.top_blft +http://ifeng.com##.top_carousel +http://duba.com,uu114.cn##.top_func_ad +http://0579.cn,xizi.com##.top_gg +http://2345.com##.top_news +http://jmw.com.cn##.top_pic +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.top_toutu_admarks + .tbui_slideshow_list +http://163.com,changsha.cn,jrj.com.cn,kekenet.com,neotv.com.cn,sina.cn,sina.com.cn##.topad +http://qz828.com##.topadv +http://itavcn.com##.topadvzone +http://dayanzai.me##.topban +http://kocpc.com.tw##.topbarad +http://chromecj.com##.topblock +http://artzd.cn##.topbox > table[style="text-align: center; width: 100%;"] +http://srzc.com##.topgg +http://srzc.com##.topgg1 +http://bilibili.com##.topic-preview > li > a[href^="http"]:not([href*=".bilibili."]) +http://makaidong.com##.topimg +http://hy5.com.cn##.toplogoad +http://163.com##.topnews_ad +http://hy5.com.cn##.toppicad +http://1fzw.com##.tops +http://meizhou.cn##.toptonglan +http://hy5.com.cn##.toptxtad +http://jurong.cn,ld0766.com##.totalad +http://wapwenku.baidu.com,wk.baidu.com##.tout +http://demaxiya.com##.tp_box +http://suopao.org##.tr3.t_one[onmouseout] +http://ifeng.com##.trade +http://chinabidding.com.cn##.train +http://dict.baidu.com##.tran-download-ad +http://fanyi.baidu.com##.trans-side-ad-wrap +http://tw.yahoo.com##.travelads +http://hao123.com##.treasure-game +http://hao123.com##.treasure-item +http://megatime.com.tw,pchome.com.tw##.tripplead +http://ts.cn##.tsggding +http://tvhome.com##.ttt +http://52pili.com,7060.la,halihali.me##.tuiguang +http://m.hao123.com##.tuizhan +http://meizhou.cn##.tuwengg +http://tvhome.com##.tvAd +http://xinhuanet.com##.txt > ul > li > a[href^="http"]:not([href*=".xinhuanet."]) +http://chinaz.com##.txtAdBox +http://mydigit.cn##.txtMes +http://cntour2.com##.txtPicAd +http://ltaaa.com##.txtads +http://500.com##.tz_pai +http://cyzone.cn##.tzkd_bottom +http://cyzone.cn##.tzkd_top +http://163.com##.u-index-ad +http://sogou.com##.u-page-gg +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.u9_aside +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.u9_head +http://libaclub.com##.ui-adsame +http://duowan.com##.ui-business +http://xigua110.com##.ui-detail + .ui-detail-info +http://m.nownews.com##.ui-footer-fixed +http://ofweek.com##.ui-slider +http://hlyy.cc##.ui-sponsor +http://ispot.news##.ui_adblock +http://hackhome.com##.ul_ad +http://131458.com##.ulfooter_top +http://autohome.com.cn##.union-ad-placeholder +http://rijutv.com##.union-list-item +http://baidu.com##.union-tg +http://baidu.com##.v-s-tuiguang-wrap +http://0598yu.com##.v1100_ad +http://ifeng.com##.vAdImg +http://ifeng.com##.vAdbox +http://ifeng.com##.v_adbox +http://2345.com##.v_picConBox.height214 +http://bejson.com##.validateButtons.clear a +http://douyu.com,douyutv.com##.vcode9-sign +http://lenovo.com.cn##.video +http://av.movie##.video-banner +http://eastday.com##.video-mask +http://ck101.com##.videoADImg +http://ck101.com##.videoFocus +http://yinyuetai.com##.video_abl +http://yinyuetai.com##.video_abr +http://aipai.com##.video_gg +http://7junshi.com##.videoads +http://mydigit.cn##.view-hover[channelid="aitao"] +http://mydigit.cn##.view-hover[channelid="smzdm"] +http://263y.com##.view_abc +http://lahoo.ca##.view_page_ads +http://muchong.com##.viewad +http://ck101.com##.viewthread-leftfloatbox +http://2345.com##.vipTopBanner +http://cztv.com##.vivo +http://autohome.com.cn##.vocalcon-btn +http://ktkkt.com##.vod980 +http://hupu.com##.voice-ad300-250 +http://hupu.com##.voteIndex +http://dianping.com##.votelist + .aside-box +http://quanmin.tv##.w-newhot_slot-wrapper +http://baidu.com##.w-question-list[data-sign] +http://shm.com.cn##.w1000.surround +http://pc841.com##.w1050 +http://516qq.cn##.w1100 +http://meili.cn,pc841.com,ting56.com##.w300 +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.wanle_tab_tip +http://baidu.com##.wapAd +http://hoteastday.com##.watermarh_ul +http://10jqka.com.cn##.wbanner +http://codeforge.cn##.webnotice-right +http://ptbus.com##.weixin_ad +http://52zpi.com##.wenziad +http://baidu.com##.wgt-ads +http://muzhi.baidu.com##.wgt-best-answer + script + div +http://baidu.com##.wgt-bottom-ask +http://baidu.com##.wgt-bottom-union +http://muzhi.baidu.com##.wgt-container +http://baidu.com##.wgt-union +http://whnews.cn##.whnews_a_dv +http://cnfol.com##.wid325AdBox +http://cnfol.com##.wid390AdBox +http://cnfol.com##.wid595AdBox +http://cnfol.com##.wid600Ad +http://cbmay.com##.widget +http://ilvruan.com##.widget-asst +http://eefocus.com##.widget-bom2buy +http://hao123.com##.widget-hlbar > span +http://hanjutvn.com##.widget-topadding +http://hao123.com##.widget-topbanner +http://hanjutvn.com,taijuwang.com##.widget-unpadding +http://didispace.com##.widget-wrap > p[style="text-align: left;padding-bottom: 20px;line-height: 30px;"] +http://hanjutvn.com##.widget-xlxba +http://web20share.com##.widget:nth-of-type(5) +http://doub.io##.widgetRoller +http://iplaysoft.com##.widget[style] +http://fulibl.com##.widget_banner +http://hackhw.com##.widget_content_b +http://landiannews.com##.widget_custom_html +http://fuliba.net##.widget_custom_html:first-child +http://bzfl1.cc##.widget_cy_ad +http://zhujiboke.com##.widget_image_ad +http://zhaiiker.com##.widget_index_add +http://flyzy2005.com##.widget_kratos_ad +http://carrotchou.blog,daqianduan.com,landiannews.com,xingkbjm.com##.widget_media_image +http://landiannews.com##.widget_metaslider_widget +http://codeceo.com,fuli8.net##.widget_text:first-child +http://fulibl.cc##.widget_text:last-child +http://py91.net##.widget_textads +http://aeink.com##.widget_ui_adsf +http://daqianduan.com,koyi.pub,wuzuowei.net##.widget_ui_asb +http://aeink.com##.widget_ui_textads +http://daqianduan.com,hanfan.cc,wuzuowei.net,yeyulingfeng.com##.widget_ui_textasb +http://subhd.com##.win_content +http://subhd.com##.win_win +http://so.com##.windisplayCell +http://163.com##.with-bot-ad > .arrow_down +http://hao123.com##.wm +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.worldcup_info_banner_dialog +http://gpshk.cc##.wp > div:last-child > p[align="center"] +http://141hongkong.com##.wp.at +http://tropica.cn##.wp1.a_t +http://cangjige.net,cangjige.win##.wp[style="height:36px;padding-top:15px;"] +http://tui18.com##.wp[style^="width:"] +http://bbs.gfan.com##.wpp +http://start.firefoxchina.cn##.wrap > div[style]:last-child +http://99a21.com##.wrap-head-spots +http://duote.com##.wrap-right-B > div[style="margin:10px 0;"] +http://bbs.feng.com##.wrap.fl_row +http://paipai.fm##.wrapbg +http://50yxw.com##.wrapper > [style^="text-align:"] +http://iviewui.com##.wrapper-aside +http://image.baidu.com##.wrapper_dot_box.dot_black +http://wallstreetcn.com##.wscn-ad +http://wallstreetcn.com##.wscn-page-ad +http://wenku.baidu.com##.wubai-wrap +http://52pk.com##.wxbox +http://taoguba.com.cn##.wz_ad +http://sohu.com##.x-adv-band-panel +http://sohu.com##.x-adv-flogo-panel +http://sohu.com##.x-adv-linear-panel +http://sohu.com##.x-adv-pause-nonlinear-panel +http://liaoxuefeng.com##.x-sponsor +http://sina.cn##.xc_da +http://autofan.com.cn##.xf_ad +http://familydoctor.com.cn##.xg +http://xinhuanet.com##.xhdf_moreAdv +http://tj.xinhuanet.com##.xhdf_num1_col3 +http://xinhuanet.com##.xhdf_row_adv +http://bkill.com##.xiangguan-ad +http://12580sky.com##.xiaogao +http://12580sky.com##.xiaogao2 +http://cr173.com##.xiazaiqi +http://vdianying.cc##.xintheme-ad +http://hgitv.com##.xinwen_right_gg01 +http://xilu.com##.xlad +http://xilu.com##.xladAdvList +http://xilinjie.com##.xlj-sponsors +http://dianyingbar.com,hanjutvn.com,taijuwang.com##.xlxba +http://muchong.com##.xmc_Logo + .xmc_fr +http://muchong.com##.xmc_green + a[href^="creditshow."] +http://muchong.com##.xmc_viewthread_ad +http://banyungong.org##.xnf +http://21cn.com##.xuantu +http://xkb.com.cn##.xwAd +http://my0832.com##.xx_div +http://pc0359.cn##.xx_yd +http://pc0359.cn##.xx_yd2 +http://wanyx.com##.xz_down +http://xixiwg.com##.xz_left > ul:nth-last-child(3) +http://05sun.com##.xzq +http://moviesunusaaa.org##.yahooinner +http://techweb.com.cn##.yaowen > ul > a[style="display:block;position:relative;"] +http://chinayk.com##.yb_banner +http://1kkk.com,dm5.com##.yddiv +http://acg17.com##.yhq +http://fdc.com.cn##.yifangbanner +http://pc0359.cn##.yinsu_yd +http://ifeng.com##.yiyuan +http://hk.news.yahoo.com##.yog-col div.classickick[data-beacon-fired] +http://zol.com##.youxuan-shop +http://uuu9.com##.yoyofc +http://ysxs8.com##.ysxs8_w960_1 +http://52ghai.com##.yttl_x_g +http://geilwx.com##.yueduads +http://xiadele.com##.yun-advertisement +http://cnlmjx.com##.yw_ad +http://fx168.com##.yy_guangao +http://ifeng.com##.yy_right_bottom +http://ali213.net##.zadmainholder +http://qizuang.com##.zb_footer_box1 +http://qizuang.com##.zb_footer_box_little +http://qixingquan.com##.zdm +http://ifeng.com##.zhenxuan +http://sina.com.cn##.zhitou-wrap +http://wenku.baidu.com##.zhixin-ads +http://wenku.baidu.com##.zhixin-right +http://sina.com.cn##.zhongce +http://lookae.com##.zhongjian +http://qingdaonews.com##.zhqd +http://brushes8.com##.zjianad +http://qinbing.cn##.zjlmad +http://jqzb.com.cn##.zk_xf +http://91danji.com##.zlVideTowNav +http://silver.org.cn##.zl_login +http://biz.zjol.com.cn##.zsFooterBox + .close +http://efu.com.cn##.zs_banner_a +http://srzc.com##.zt_tonglang1 +http://zuanke8.com##.zuanpw +http://meili.cn##.zw_300_ad +http://19lou.com##.zx-link +http://17house.com##.zx_xrhb +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com#?#.p_postlist > :-abp-properties(width: 739px;) +http://2345.com#?#.pic:-abp-has(a[href^="http://g.wan."]) +http://3g.baidu.com,m.baidu.com,m5.baidu.com,www.baidu.com#?#div:-abp-has(>.openBox-container) +http://3g.baidu.com,m.baidu.com,m5.baidu.com,www.baidu.com#?#div:-abp-has(>div[id$="_1"]+div[id$="_5"]) +http://sina.com.cn##:not(.BigPic) > a[href*="sax.sina.com.cn/click?"] +http://www.wpdaxue.com##:not(.post-thumbnail) > a[target="_blank"] > img +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##:not(.tbui_slideshow_slide) > div[data-daid] +http://programmer-club.com.tw##A[href*="/ADRedirect."] +http://24en.com##A[href*="/ClickAd?"] +http://gmgard.com,hggard.com##A[onclick*="Advertisement"] +http://cnxz.cn##[class*="-ad"] +http://jmw.com.cn##[class^="advertising"] +http://gamme.com.tw##[class^="sidead_"] +http://sina.cn##[data-href*="://sax"] +http://sina.cn##[data-href*="://sax"] + aside +http://sina.cn##[data-href*="://sax"] + aside + blockquote +http://sina.com.cn##[data-info^="ad_"] +http://sina.cn##[data-videojc*="://sax"] +http://sina.cn##[href*="://sax"] +http://39.net##[id^="ac_im"] +http://jjwxc.net##[id^="adp_"] +http://ghoffice.com,ksbbs.com,kshot.com##[id^="ads_"] +http://ifeng.com##[id^="cl"] +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##[id^="spreadad_"] +http://sinolub.com##[id^="xker"] +http://lyreader.com##[onclick^="loadDownloadAPP"] +http://kisssub.org##a > img[src*=".0o0.ooo/"] +http://5dm.tv##a > img[src*=".sinaimg."] +http://ruanyifeng.com##a > img[src*="wangbase.com/blogimg/asset/"] +http://acgnx.se##a > img[src^="/images/"] +http://ainuody.com##a > img[src^="http://wx"] +http://doub.io##a > img[src^="https://img.doub.pw/thumbs/"] +http://tieba.baidu.com,wapp.baidu.com##a.fixed_bar +http://maiche.com##a.some-img +http://chexun.com##a[attr-outside-ad] +http://wenku.baidu.com##a[class*="tiger-"][class*="-dialog"] +http://hao123.com##a[class^="gameyixing-link-"] +http://csai.cn##a[class^="gg"] +http://ditu.so.com##a[class^="index-bcItem-"] +http://focus.cn##a[data-ad-pos-id] +http://caibaojian.com##a[data-href*="aliyun"] +http://oschina.net##a[data-traceid$="_ad"] +http://oschina.net##a[data-traceid*="_detail_above_text_link_"] +http://oschina.net##a[data-traceid="explore_right_bar_70"] +http://oschina.net##a[data-traceid^="questionbanner"] +http://oschina.net##a[data-tracepid^="index_banner_"] +http://feed.baidu.com##a[data-type="ec_ad"] +http://bilibili.com##a[href$="_suning.html"] +http://acg12.com##a[href*="%2F"] +http://17173.com##a[href*="&ad_code="] +http://neatstudio.com##a[href*="&cps_key="] +http://ruanyifeng.com##a[href*=".100offer.com"] +http://dilidili.wang,~h5.dilidili.wang##a[href*=".11h5."] img +http://cctv.com##a[href*=".17fengyou.com"] +http://quanmin.tv##a[href*=".2144.cn/"] +http://backchina.com##a[href*=".21usdeal.com"] +http://qu.la##a[href*=".350.com"] +http://halihali.me##a[href*=".9game.cn/"] +http://163.com,bilibili.com,longzhu.com##a[href*=".admaster."] +http://ip.cn##a[href*=".ali"] +http://techweb.com.cn##a[href*=".aliyun.com"] +http://zhanqi.tv##a[href*=".bfun.cn/ad."]:not([href*=".zhanqi."]) +http://backchina.com##a[href*=".cardbenefit.com/"] +http://cnbeta.com##a[href*=".ctyun."] +http://idanmu.at##a[href*=".datealive.com.cn"] +http://bilibili.com##a[href*=".doubleclick."] +http://wigcw.cn##a[href*=".gwents.com"] +http://ctfile.com##a[href*=".henghost.com"] +http://hanjutv.com##a[href*=".hujiang.com"] +http://cctv.com##a[href*=".jaeapp.com"] +http://chinanews.com##a[href*=".jiuxianfeng.com"] +http://tiexue.net##a[href*=".junp"] +http://doudoudm.com##a[href*=".kxyike.com/"] +http://apprcn.com,yeyulingfeng.com##a[href*=".lizhi."] +http://ifkjx.com##a[href*=".lolbaicai.com"] +http://mumujita.com##a[href*=".makeding.com/"] +http://sina.cn##a[href*=".maozhuar.com"] +http://ifkdy.com##a[href*=".me/aff/"] +http://zimuzu.tv##a[href*=".paojiao.com/"] +http://zhibo8.cc##a[href*=".rd-game."] +http://makepolo.com##a[href*=".rong360.com"] +http://ccav5.com##a[href*=".sinaimg."] +http://ifeng.com##a[href*=".sm.cn"] +http://chdbits.co,hdcmct.org##a[href*=".taobao"] +http://cnbeta.com,sojson.com##a[href*=".upyun."] +http://zhibo8.cc##a[href*=".wanjiashe."] +http://dm5.com,dm5.hk##a[href*=".wannaplay.cn"] +http://tiexue.net##a[href*=".wx359.cn/"] +http://cnzol.com##a[href*=".youa.net"] +http://108.62.192.122,23.81.209.214,plus28.com##a[href*="/?Extend="] +http://ctanet.cn##a[href*="/GoTo.asp?ID="] > img +http://instrument.com.cn##a[href*="/ad/"] +http://fanjian.net##a[href*="/ad_click?"] +http://xitek.com##a[href*="/adclick"] +http://webkaka.com##a[href*="/click/a_d_"] +http://cangku.in,cangku.moe,galacg.me##a[href*="/game"] +http://ccav1.com##a[href*="/go"] +http://cgown.com##a[href*="/go.php?"] +http://dy2018.com,xiaopian.com##a[href*="/htmlcode/"] +http://cableabc.com##a[href*="/img1/"] +http://tucao.one##a[href*="/index.php?m=poster&"] +http://ithome.com##a[href*="/lapin."] +http://6park.com##a[href*="/link.php?key="] +http://tingvoa.com##a[href*="?adid="] +http://haxiu.com##a[href*="?aid="] +http://ruanyifeng.com##a[href*="?utm_source="] +http://dilidili.wang##a[href*="Game"] +http://eworldship.com##a[href*="ad_click&"] +http://xitek.com##a[href*="adclick"] + .info +http://159i.com##a[href*="ai69"] +http://bejson.com,fastadmin.net##a[href*="aliyun"] +http://r3sub.com##a[href*="bit.ly"] +http://cnbeta.com,ruyo.net##a[href*="cloud.tencent."] +http://china.com.cn##a[href*="dwz.cn"] +http://tiexue.net##a[href*="game.tiexue."] +http://i-part.com.tw##a[href*="goo.gl%2FW9SXr1&"] +http://v.sogou.com##a[href*="iwan.sogou.com/"] +http://bejson.com##a[href*="layui.com"] +http://m.baidu.com##a[href*="m.lecai.com"] +http://ccav1.com##a[href*="meidebi."] +http://kafan.cn##a[href*="nameidi."] +http://6park.com##a[href*="out.php?"] +http://ifeng.com##a[href*="popoxiu.com"] +http://ifeng.com##a[href*="popoxiu.com"] + h3 +http://ifeng.com##a[href*="popoxiu.com"] + h3 + p +http://6park.com##a[href*="qq.php?"] +http://cgown.com##a[href*="tb.am"] +http://fastadmin.net##a[href*="tencent"] +http://58.com##a[href*="to8to.com"] +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##a[href*="www.clinique."] +http://csdn.net##a[href="//gitbook.cn/new/gitchat/activity?utm_source=csdnblog1"] +http://kukudm.com##a[href="/exit/exit.htm"] > img[src="/images/d.gif"] +http://ithome.com##a[href="/html/363216.htm"] +http://ziqiangxuetang.com##a[href="/j/coding/"] +http://ziqiangxuetang.com##a[href="/j/coding/"] + .w-text-red +http://bejson.com##a[href="/tolayui.php"] +http://bilibili.com##a[href="/video/av8587236/?tg"] +http://ip.cn##a[href="hb.php"] +http://moyu16.com##a[href="http://71979.com"] +http://cari.com.my##a[href="http://banner.cari.com.my/daybanner/?page=promotion"] +http://ccav1.com##a[href="http://duan.es/1v"] +http://muchong.com##a[href="http://muchong.com/bbs/purchase.php?f=index&w=top"] +http://xinmin.cn##a[href="http://sbiz.xinmin.cn/new/"] +http://ck180.net##a[href="http://www.L7da.com"] +http://6park.com##a[href="http://www.b2ship.com"] +http://bejson.com##a[href="http://www.bejson.com/ui/tuchuang/"] ~ a[style] +http://iidvd.com##a[href="http://www.crc6789.com/iidvd.htm"] +http://playtv.com.cn##a[href="http://www.sdhanrui.cn/"] +http://wikdy.cn##a[href="http://www.tbb168.com"] +http://ainuody.com##a[href="http://www.zhuzhuquan.com.cn"] +http://wandhi.com##a[href="http://www1.huizhek.com"] +http://autohome.com.cn##a[href="https://m.autohome.com.cn/activity/special/autohome29.html"] +http://2dway.com##a[href="https://www.2dway.com/5244/"] +http://jandan.net##a[href^="//api.jandan.net/money.php?"] +http://bigear.cn##a[href^="/?module=dantian&"] +http://sdgundam.cn##a[href^="/aclk/"] +http://liuli.pw##a[href^="/gg2/"] +http://96weixin.com##a[href^="/show/ads/"] +http://fx112.com##a[href^="/union."] +http://muchong.com##a[href^="adlog."] > img[height="90"] +http://muchong.com##a[href^="adlog.php?adid="] +http://muchong.com##a[href^="alog.php?id="] +http://8boniu.com##a[href^="http"] > img[src*="/bn_"] +http://yigujin.cn##a[href^="http"]:not([href$=".html"]) > img[src*="/abc/"] +http://chapaofan.com##a[href^="http"]:not([href*=".chapaofan."]) > img[src*=".sinaimg."] +http://css88.com##a[href^="http"]:not([href*=".css88.com"]) > img +http://jrzj.com##a[href^="http"]:not([href*=".jrzj."]) > img[src^="https://img."] +http://peizimenhu.com##a[href^="http"]:not([href*=".peizimenhu."]) > img[src^="data/attachment/portal/"] +http://qqhzg.com##a[href^="http"]:not([href*=".qqhzg."]) > img[src^="/upload/1/"] +http://wn789.com##a[href^="http"]:not([href*="://www.wn789."]) > img +http://it1352.com##a[href^="http"]:not([href*="it1352."]) > img +http://xiaoheizy.com##a[href^="http"]:not([href*="xiaoheizy.com"]) > img +http://107cine.com##a[href^="http://107cine.com/ads/"] +http://hepuwang.com##a[href^="http://ad."] +http://m.nownews.com##a[href^="http://ad1.nownews.com"] +http://wenxuecity.com##a[href^="http://bbs.wenxuecity.com/bbs/advpost/"] +http://big5.china.com.cn##a[href^="http://big5.china.com.cn/gate/big5/"]:not([href*="/science."]) +http://chinaz.com,cnbeta.com,oschina.net##a[href^="http://click.aliyun.com/"] +http://52che.com##a[href^="http://count.52che.com/goto.html?"] +http://ithome.com##a[href^="http://e.cn.miaozhen."] +http://hc360.com##a[href^="http://e.cn.miaozhen.com/"] +http://news.163.com##a[href^="http://g.163.com/"] +http://moe-acg.cc##a[href^="http://game.moehuan.com/"] > img +http://zhuhai.gd.cn##a[href^="http://hd.zhuhai.gd.cn/ad/"] > img +http://nicotv.me##a[href^="http://img.kingsnug.cn/gamecenter/"] +http://pconline.com.cn##a[href^="http://ivy.pconline."] +http://sm.cn##a[href^="http://m.sm.cn/adclick?"] +http://wangqianfang.cn##a[href^="http://mai.qnfuli.com/"] +http://muchong.com##a[href^="http://muchong.com/bbs/a"] > img +http://cnbeta.com##a[href^="http://note.youdao.com/"] +http://wenxuecity.com##a[href^="http://oascentral.wenxuecity.com/"] +http://163.com##a[href^="http://popme.163.com/"] +http://pctowap.com##a[href^="http://ptw.la/"] +http://ruanyifeng.com,techug.com,vaikan.com,webhek.com##a[href^="http://t.cn/"] +http://mtrend.cn##a[href^="http://tao.mtrend.cn/"] +http://zhlzw.com##a[href^="http://u.ctrip.com/"] +http://9tour.cn##a[href^="http://union.zhuna.cn/"] +http://yeyulingfeng.com##a[href^="http://woaigouwu.top"] +http://zhanqi.tv##a[href^="http://www.2133."] +http://allyingshi.com,zimuzu.tv##a[href^="http://www.6.cn/coop/"] +http://v.baidu.com##a[href^="http://www.602.com/"] +http://jcrb.com##a[href^="http://www.abchina.com/"] +http://cgown.com##a[href^="http://www.aec4d.com/"] +http://wapwenku.baidu.com,wk.baidu.com##a[href^="http://www.baidu.com/cpro.php?"] +http://beephone.com.tw##a[href^="http://www.beephone.com.tw/adlink.php?id="] +http://cnbeta.com##a[href^="http://www.dangbei.com/"] +http://win007.com##a[href^="http://www.edewin.com/"] +http://loldk.com##a[href^="http://www.esportsclub.cn/home/"] +http://hmog.me##a[href^="http://www.masadora.net/"] +http://6park.com##a[href^="http://www.vava8.com"] +http://dy2018.com,xiaopian.com##a[href^="http://www.xiacai.com/"] +http://muchong.com##a[href^="http://www.zhuanyejun.com/"] +http://ifeng.com##a[href^="http://yemei.tv/"] +http://hexieshe.cn##a[href^="http://zd.zhiketong.cn/"] +http://cnbeta.com##a[href^="https://915.im/"] +http://yahoo.com##a[href^="https://beap.gemini.yahoo.com/"] + .NoTextDecoration +http://oschina.net##a[href^="https://citiccard.wjx.cn/"] +http://acfun.cn##a[href^="https://click.dsp.com/"] +http://chongbuluo.com##a[href^="https://cn.udacity.com/"] +http://gitee.io##a[href^="https://coding.net/?"] +http://nownews.com##a[href^="https://goo.gl/"] +http://linux.cn##a[href^="https://linux.cn/go/"] +http://cjjjs.com,fastadmin.net,itboth.com,itkeyword.com##a[href^="https://promotion.aliyun.com/"] +http://shufazidian.com##a[href^="https://weidian.com/"] +http://weebly.com##a[href^="https://www.ebay.com"] +http://fastadmin.net##a[href^="https://www.fastadmin.net/go/"] +http://fastadmin.net##a[href^="https://www.fastadmin.net/go/"][style="color:#fff"] +http://howbuy.com##a[href^="https://www.howbuy.com/advertisement/"] +http://sojson.com##a[href^="https://www.sojson.com/ad/"] +http://zhiboba.org##a[href^="igg."] +http://5118.com##a[id][href^="http"]:not([href*=".5118.com"]) > img +http://5118.com##a[id^="default-"] +http://5118.com##a[id^="home-"] +http://360-bo.com##a[name="thegg"] +http://frdic.com,godic.net##a[onclick*="/ads/"] +http://xiazaiba.com##a[onclick*="GSDown"] +http://pcsoft.com.cn##a[onclick*="_ad"] +http://caibaojian.com##a[onclick*="aliyun"] +http://5g0a.com##a[onclick*="banner"] +http://tvapk.net##a[onclick*="thread_banner"] +http://house365.com##a[style*="1200px;"] +http://gamersky.com##a[style*="display:inline-block;"][style*="z-index:1;"] +http://hdzone.org##a[style*="fixed"] +http://huaren.tv##a[style*="height:"] +http://36dm.club,36dm.com,acgsou.com##a[style="color:red;"][href^="show-"] +http://70bt.cn,qmaile.com,wandhi.com##a[style="display: inline-block;position: relative"] +http://hanjutv.com##a[style="width: 1120px;height: 70px;overflow: hidden;display: block;"] +http://houdao.com##a[style^="background:url"] +http://html-js.com##a[style^="margin-top:20px;"] +http://dybee.tv##a[style^="position: fixed;bottom:"] +http://aishoujizy.com,xd0.com##a[target="_blank"] > img[src^="/upload/1/"] +http://18board.com,18p2p.com##a[target="_blank"] > img[width="330"] +http://18board.com,18p2p.com##a[target="_blank"] > img[width="728"] +http://muchong.com##a[target="_blank"][style="display: inherit!important;"] +http://doub.io##a[title*="Toyo"] +http://creaders.net##a[title^="www.136888.com/"] +http://duba.com##a[w="topad"] +http://amazon.cn#?#.s-result-item:-abp-has(> .s-item-container > h5 .s-sponsored-info-icon) +http://cn.bing.com#?##b_results > li:-abp-has(.b_adProvider) +http://baidu.com#?#.ec_wise_ad +http://api.so.lianmeng.360.cn,pos.baidu.com##body +http://qzwb.com##body > .area[style^="height:60px;"] +http://bkill.com##body > a:first-child +http://tiexue.net##body > div[onclick] +http://m.mydrivers.com##body > div[style="padding:0px 0px 0px 0px;text-align:center;"] +http://hdwan.net##body > div[style] +http://wendu.cn##body > div[style^="width:1000px;"] +http://18h.avmimi.com##body > p[align="center"]:first-child +http://ahtv.cn##body > table[style^="text-align:center; width:960px;"] +http://18h.avmimi.com##body > table[width="100%"]:nth-child(2) +http://62422.cn##body > table[width="778"][align="center"] +http://cnbeta.com#?#.cnbeta-swiper-container-285x360 .swiper-slide:-abp-has(a[href^="http"]:not([href^="http://www.cnbeta."])) +http://cnbeta.com#?#.item:-abp-has(> dL > a[href^="https://ad.doubleclick.net/"]) +http://dilidili.wang#?#article:first-child +http://ip.cn##div > img +http://bitauto.com##div > ins[data-type="ad_play"] +http://324324.cn##div > script ~ a +http://win0168.com##div.item +http://weibo.com##div[ad-data] +http://toutiao.com##div[ad_name] +http://tw.stock.yahoo.com##div[align="center"][style="height:90px"] +http://zongheng.com##div[alog-group="index_04_game"] +http://anjuke.com##div[class$="-ad"] +http://elecinfo.com##div[class$="-advert"] +http://baidu.com##div[class$="-ecom-ads"] +http://eprice.com.tw##div[class$="-popup-g"] +http://anjuke.com##div[class$="-poster"] +http://oschina.net##div[class$="Content"] > p[style="margin:0 0 10px 0;"] +http://qqread.com##div[class$="ad"] +http://19lou.com##div[class$="ad-cycle"] +http://pixnet.net##div[class*="-Ad-"] +http://pixnet.net##div[class*="-ad-"] +http://ganji.com##div[class*="-recommend"] +http://ifeng.com##div[class*="SlideAd"] +http://ganpapa.com##div[class*="_9cb0d"] +http://makepolo.com##div[class*="_ad"] +http://silver.org.cn##div[class*="_gg"] +http://vpser.net##div[class*="_textlink"] +http://2345.com,hao774.com##div[class*="act-navspec"] +http://2345.com##div[class*="act-open"] > :not(.close):not([class*="mask"]) +http://hupu.com##div[class*="ad200-200"] +http://hupu.com##div[class*="ad240-200"] +http://hupu.com##div[class*="ad728-90"] +http://hupu.com##div[class*="ad980-60"] +http://zhibo8.cc##div[class*="advert"] +http://efu.com.cn##div[class*="banner-"] +http://autohome.com.cn##div[class*="game"] +http://qinbing.cn##div[class*="gg"] +http://chinatimes.com##div[class*="googlead_"] +http://steamcn.com##div[class*="liz_"] +http://wenku.baidu.com##div[class*="tiger-"][class*="-dialog"] +http://ifeng.com##div[class="adbox02"] +http://moonbt.com##div[class="box mb"] > a +http://ithome.com.tw##div[class="span4"] +http://r3sub.com##div[class] > a[href^="show.php?id="] +http://bdimg.com,tieba.baidu.com,tieba.com##div[class][lgoinprompt="prompt"] +http://cyol.com##div[class^="AD"] +http://ix8.la##div[class^="ADTOPLB_"] > .bd +http://ali213.net##div[class^="GG"] +http://mbd.baidu.com##div[class^="_"][style="visibility: visible;"] +http://chengdu.cn,oeeee.com##div[class^="ad-"] +http://yesky.com##div[class^="ad1"] +http://yesky.com##div[class^="ad2"] +http://yesky.com##div[class^="ad3"] +http://yesky.com##div[class^="ad6"] +http://yesky.com##div[class^="ad7"] +http://yesky.com##div[class^="ad9"] +http://ifeng.com##div[class^="adList"] +http://16668.biz,16668.cc,16668.com,16668.info,16668.net,16668.org,16668tu.com,alibuybuy.com,chewen.com,faloo.com,newhua.com,ph66.com,tv.cntv.cn##div[class^="ad_"] +http://uuu9.com##div[class^="ad_140"] +http://ifeng.com##div[class^="ad_box"] +http://megatime.com.tw,pchome.com.tw##div[class^="ad_ec"] +http://fang.com##div[class^="add2"] +http://weather.com.cn##div[class^="adpos"] +http://silver.org.cn##div[class^="ads_"] +http://xcar.com.cn##div[class^="adset"] +http://hybbs.com##div[class^="adtop"] +http://8684.cn,8684.com,kugou.com,solarzoom.com,yesky.com##div[class^="adv"] +http://ifeng.com##div[class^="adv0"] +http://ifeng.com##div[class^="adv1"] +http://whinfo.net.cn##div[class^="adw"] +http://kumi.cn##div[class^="adz"] +http://jj59.com##div[class^="art_a"] +http://265g.com##div[class^="ban"] +http://cztv.com##div[class^="banner_"] +http://elecfans.com##div[class^="banner_ad"] +http://ifeng.com##div[class^="container-"][content^="[object"] +http://78dm.net##div[class^="couple-"] +http://ifeng.com##div[class^="coupletBox"] +http://fx678.com##div[class^="dl_"] +http://orsoon.com##div[class^="down-sect"] +http://syd.com.cn##div[class^="eap"] +http://cbg.cn##div[class^="erweima"] +http://loveshang.com##div[class^="float-ad-"] +http://fx678.com##div[class^="fx_fa_"] +http://idanmu.at##div[class^="g "] +http://jjckb.cn##div[class^="g"] > a:first-child:last-child +http://hqew.com##div[class^="g-ad-"] +http://ifeng.com##div[class^="games_ad_"] +http://163.com,csai.cn,miercn.com##div[class^="gg"] +http://enorth.com.cn##div[class^="guanggao"] +http://fx678.com##div[class^="hc_ad_"] +http://ditu.so.com##div[class^="index-adflag-"] + a +http://5iyq.com##div[class^="index_ad"] +http://meiguoshenpo.com##div[class^="info_"] +http://jzhome.cn##div[class^="main_gg"] +http://ifeng.com##div[class^="middleAd"] +http://nba.hupu.com##div[class^="nba-ad"] +http://sun0769.com##div[class^="pagecenter sungg"] +http://wasu.cn##div[class^="play_ads"] +http://ifeng.com##div[class^="pplive"] +http://ifeng.com##div[class^="ppx_wrap-"] +http://infoq.com##div[class^="related_sponsors"] +http://ifeng.com##div[class^="rightContent-"] a[href^="//health.ifeng."] +http://7654.com##div[class^="sidebarimg"] +http://ifeng.com##div[class^="slideBannerBox"] +http://86wan.com##div[class^="tonglan"] +http://ifeng.com##div[class^="topAd-"] +http://21cn.com##div[class^="topAds"] +http://gpsuu.com##div[class^="top_96"] +http://gamme.com.tw##div[class^="topad_"] +http://narutom.com##div[class^="wrap2 vtg"] +http://msn.com##div[data--adqjyluqt] +http://yahoo.com##div[data-ad-feedback-beacon] +http://baidu.com##div[data-ad] +http://sina.cn##div[data-adid] +http://cqmmgo.com##div[data-id*="_adv_"] +http://m.cnbeta.com##div[data-role="content"] > div[style^="text-align:"] +http://oschina.net##div[data-traceid*="_ad_"] +http://oschina.net##div[data-tracepid="question_detai_above"] +http://le.com##div[data-type="bottomLayerView"] +http://weibo.com##div[feedtype="ad"] +http://mail.126.com,mail.163.com##div[id$="_AdDiv"] +http://mail.126.com,mail.163.com##div[id$="_BannerDiv"] +http://mail.126.com,mail.163.com##div[id$="_FooterDiv"] +http://dmhy.org##div[id$="_ad"] +http://mail.126.com,mail.163.com##div[id$="_dvBlockInfo"] +http://58.com##div[id$="_gdbg"] +http://mail.126.com,mail.163.com##div[id$="_succAd"] +http://pixnet.net##div[id*="-AD-"] +http://pixnet.net##div[id*="-Ad-"] +http://pixnet.net##div[id*="-aD-"] +http://mcdulll.com,pixnet.net##div[id*="-ad-"] +http://baby-kingdom.com##div[id*="Banner Zone"] + script + a +http://baby-kingdom.com##div[id*="Banner Zone"] + script + iframe +http://baby-kingdom.com##div[id*="Banner Zone"] + script + object +http://lalilali.com##div[id*="_"] +http://feiwan.net,kcili.com##div[id*="_"][style] +http://moneyweekly.com.tw##div[id*="_ScupioHomeAD"] +http://sm.cn##div[id*="_Shopping_Etao_"] +http://8684.cn,8684.com##div[id*="adid"] +http://e23.cn##div[id*="adv"] +http://v.baidu.com,v.duba.com##div[id*="categoryPageColumn"] +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##div[id*="lottery"] +http://yaolan.com##div[id*="underHdAd"] +http://kuaidi100.com##div[id][style="width: 300px;float: right;"] +http://fengniao.com##div[id^="AD"] +http://house365.com##div[id^="AD-bottom"] +http://it168.com##div[id^="ADV"] +http://hc360.com##div[id^="Adv"] +http://tiexue.net##div[id^="Baidu_"] +http://www.zol.com.cn##div[id^="Bar"] +http://airav.cc##div[id^="Billing"] +http://16668.biz,16668.cc,16668.com,16668.info,16668.net,16668.org,16668tu.com##div[id^="Div"] +http://ganji.com##div[id^="GcnADId"] +http://tigtag.com##div[id^="Home942x70_"] +http://2345.com,hao774.com##div[id^="J_Topic"] +http://jin10.com##div[id^="J_wdgg_"] +http://tzfdc.com.cn##div[id^="LMT_"] +http://360che.com##div[id^="PAGE_AD_"] +http://0594.com##div[id^="PCMSAD_"] +http://tigtag.com##div[id^="Show300x"] +http://90bifen.com##div[id^="ShowTopAds_"] +http://dianyingbar.com##div[id^="Tmall"] +http://icpmp.com##div[id^="__"] +http://mail.126.com,mail.163.com##div[id^="_mail_popup_"] +http://vod1769.com##div[id^="a"] +http://ettoday.net##div[id^="abp"] +http://makepolo.com,mycar168.com,mysteel.com,pchome.net,qz828.com##div[id^="ad"] +http://58.com,pcpop.com##div[id^="ad_"] +http://lenovo.com.cn##div[id^="ad_bd_"] +http://lenovo.com.cn##div[id^="ad_bd_"] + .ad-mark +http://megatime.com.tw,pchome.com.tw##div[id^="ad_div_"] +http://cheshi.com##div[id^="ad_pos_"] +http://tgfcer.com##div[id^="ad_thread"] +http://yam.com##div[id^="adgshp"] +http://weather.com.cn##div[id^="adpos"] +http://cbmland.com##div[id^="ads_"] +http://actoys.net,hualongxiang.com##div[id^="ads_d_"] +http://eyuyan.com##div[id^="ads_r_"] +http://xiancn.com##div[id^="adv"] +http://v.baidu.com##div[id^="adv_asp_"] +http://ali213.net##div[id^="ali-ad-js-"] +http://qbiao.com##div[id^="aup"] +http://qianzhan.com##div[id^="baidu_ad_"] +http://shm.com.cn##div[id^="baidu_clb_slot_"] +http://ncnews.com.cn##div[id^="ban"] +http://recruit.com.hk##div[id^="banner"] +http://2345.com##div[id^="bd-search-ad"] +http://yaolan.com##div[id^="bot_ad"] +http://sinolub.com##div[id^="bs_"] +http://chajiaotong.com##div[id^="cjtad_"] +http://kankan.com##div[id^="cm"].banner +http://66rd.cn##div[id^="comiis_xizi_gg"] +http://nanrenwo.net##div[id^="content"] +http://ifeng.com##div[id^="couplet3_"] +http://jmnews.com.cn##div[id^="couplet_"] +http://banma.com##div[id^="disapper"] +http://gohome.com.hk##div[id^="div-gpt-ad"][style] +http://zyue.com##div[id^="divad_"] +http://chinafix.com##div[id^="diy_vk_ad_"] +http://fx678.com##div[id^="dl_"] +http://lysq.com##div[id^="followDiv_"] +http://512ms.com,gusuwang.com##div[id^="fy_"] +http://tiexue.net##div[id^="g_d_"] +http://doyo.cn,keleyi.com,lgmi.com##div[id^="gg"] +http://51240.com##div[id^="ggwz"] +http://fx110.com##div[id^="ghz"] +http://so.com##div[id^="guang-"] +http://hinews.cn##div[id^="hi_gg_"] +http://fx678.com##div[id^="hta_"] +http://wenku.baidu.com##div[id^="html-reader-AD-"] +http://wenku.baidu.com##div[id^="html-reader-banner-"] +http://fjlyfdc.com.cn##div[id^="hxhad"] +http://4c.cn##div[id^="mid_ad"] +http://pcauto.com.cn##div[id^="middle_ad_"] +http://ksbbs.com##div[id^="mimi_"] +http://hk.yahoo.com##div[id^="my-ads"] +http://elecfans.com##div[id^="new-listAd"] +http://ifeng.com##div[id^="padhide_"] +http://muchong.com##div[id^="paper"] +http://ksbbs.com,kshot.com##div[id^="read_ad_"] +http://kshot.com##div[id^="read_m_yytf"] +http://image.baidu.com##div[id^="relecom"] +http://www.rkanr.com##div[id^="rkrCp"] +http://eol.cn##div[id^="s1_"] +http://secretmine.net##div[id^="secre-"] +http://159i.com##div[id^="sidebar"] > :not(form) +http://douyu.com,douyutv.com##div[id^="sign_p_"] +http://suizhoushi.com##div[id^="sznew_ad"] +http://ottawazine.com##div[id^="text-"] +http://e0575.cn##div[id^="tid_"] +http://4c.cn##div[id^="top_ad"] +http://my0511.com##div[id^="topad"] +http://u17.com##div[id^="u17-advert"] +http://lnd.com.cn##div[id^="wflash"] +http://eyuyao.com##div[id^="x_ad_"] +http://oschina.net##div[name="detail_show_footer"] +http://oschina.net##div[name="floatAdbox"] +http://oschina.net##div[name="index_banner_bigger"] +http://muchong.com##div[onclick^="location.href='http://muchong.com/bbs/a"] +http://sydneytoday.com##div[style$="-144px;top: 115px;"] +http://cbber.com##div[style$=":0px;top:200px;z-index:9999;"] +http://tuwan.com##div[style$="height:90px;"] +http://baike.com##div[style$="text-align:center; width: 1000px;"] +http://avonline.org##div[style$="width:570px;margin-left:50px;"] +http://mpyit.com##div[style*=".sinaimg."] +http://mydrivers.com##div[style*="/ad/"] +http://ilxdh.com##div[style*="1000px"] +http://25xz.com##div[style*="1002px;"] +http://da-fan-shu.cn##div[style*="468"][style*="60"] +http://25xz.com##div[style*="724px;"] +http://pchome.com.tw##div[style*="982"][style*="85"] +http://blog.sina.com.cn##div[style*="WiDTH: 200px;"][style$="HeiGHT: 300px"] +http://m.halihali.me##div[style*="fixed"] +http://bilibili.com##div[style*="height:"][data-loc-id] +http://taiwan.cn##div[style*="height:250px;padding:5px 17px 5px 18px;"] +http://dfpan.com##div[style*="img.com/"] +http://ilxdh.com,ruanyifeng.com##div[style*="important"] +http://esu.moe,esu.wiki##div[style*="position: relative; max-height: 400px;"] +http://1010jiajiao.com##div[style*="position:fixed;"][style*="bottom:1px;"] +http://huarenjie.net##div[style*="top: 50px;"] +http://kkj.cn,mydrivers.com##div[style*="width:1"][style*="height:90px;"] +http://iplaysoft.com##div[style*="width:3"][style*="height:2"] +http://divcss5.com,iplaypy.com##div[style*="width:336px;height:280px;"] +http://iplaysoft.com##div[style*="width:6"][style*="height:1"] +http://dmzj.com##div[style*="width:9"][style*="height:60px;"] +http://gamersky.com##div[style*="width:970px;height:90px;"] +http://lawtv.com.cn##div[style=" width:664px; height:260px; margin-top:10px;"] +http://aohua.com.au##div[style="WIDTH: 960px; HEIGHT: 60px"] +http://nowscore.com##div[style="background-color:#F0F0F0;line-height:25px;height:25px;text-align:center"] +http://chinaz.com##div[style="background:#C91521;height:90px;"] +http://xilu.com##div[style="border-right:1px solid red; width:629px;height:300px; margin-top:10px;overflow:hidden;"] +http://housefindeasy.com##div[style="display:inline-block; vertical-align:top; font-size:12px; margin-top:2px"] +http://housefindeasy.com##div[style="display:inline-block; vertical-align:top; font-size:12px; margin-top:2px"] + div[style="display:inline-block"] +http://sinolub.com##div[style="float:left; padding-right:20px;"] +http://gamefy.cn,sitv.com.cn##div[style="float:left; width:220px; padding-top:15px;"] +http://sinoca.com##div[style="float:right;height:280px;width:336px;clear:left;background:#FFF;margin:15px 15px 15px 15px;"] +http://qixingquan.com##div[style="float:right;margin-bottom:6px;"] +http://ckdzb.com##div[style="float:right;margin:10px 10px;clear:right;height:310px;width:336px;"] +http://m.wallstreetcn.com##div[style="height: 130px;"] +http://jijidown.com##div[style="height: 462px;"] +http://beianbeian.com##div[style="height: 62px;margin-bottom: 20px;"] + .layui-table +http://360doc.com##div[style="height: 90px; padding-top: 13px;"] +http://huabian.com##div[style="height:250px;"] +http://ipcfun.com##div[style="height:280px;width:336px;margin:-10px auto 20px auto"] +http://housefindeasy.com##div[style="height:90px"] +http://pythontab.com##div[style="margin-bottom: 4px;"] +http://bbs.my0511.com##div[style="margin-left:auto;margin-right:auto;text-align:center;margin-top:5px;"] +http://yn-dove.cn##div[style="margin-top: 10px; padding: 10px; "] +http://108.62.192.122,23.81.209.214,plus28.com##div[style="margin: auto;width: 960px;margin-bottom: 10px;"] +http://iplaysoft.com##div[style="margin:-10px 0 0 0;overflow:hidden"] +http://lanyes.org##div[style="margin:0 auto 10px;height:76px;overflow:hidden"] +http://xcmh.cc##div[style="margin:0 auto 12px; adding:0;width:980px;height:250px;overflow:hidden;"] +http://gpsuu.com##div[style="margin:0 auto; padding-bottom:10px;width:960px;height:60px;"] +http://gamersky.com##div[style="margin:0 auto;width:620px;height:75px;overflow:hidden;position:relative;"] +http://dzwww.com##div[style="margin:0;padding:0;width:620px;height:345px;overflow:hidden;background-color:#fff;"] +http://morningpost.com.cn##div[style="margin:0;padding:0;width:648px;height:345px;overflow:hidden;background-color:#fff;"] +http://html-js.com##div[style="margin:10px auto;width:1000px;"] +http://kaifu.tw##div[style="margin:15px; padding:2px;width:304px; height:254px; clear:both; margin:5px auto 20px;"] +http://tucao.one##div[style="margin:auto;margin-top:0px;width:964px;height:105px;"] +http://gamer.com.tw##div[style="min-height:250px;margin-bottom:10px;"] +http://ref.so##div[style="overflow:hidden; height:auto; width:1002px; margin:0 auto; "] +http://eworldship.com##div[style="padding: 0px;position: fixed;left: 7px; top: 150px;"] +http://baidu.com##div[style="padding: 20px 9px 20px 10px;widget:250px;height:250px;"] +http://zuanke8.com##div[style="padding:0px 0 10px 0;background-color:#F1F1F1;"] +http://muchong.com##div[style="padding:15px 0;border:1px solid #648EB2;width:760px;text-align:center;"] +http://win007.com##div[style="padding:6px 0; width:950px; height:45px"] +http://muchong.com##div[style="padding:8px 10px;font-size:14px; background: #fff; border: 1px solid #648EB2;"] > table > tbody > tr > td:first-child +http://7junshi.com##div[style="position: fixed; right: 0px; bottom: 0;z-index:999;width: 300px;height: 250px;"] +http://jijidown.com##div[style="position: fixed;right: 0;bottom: 0;"] +http://ys168.com##div[style="position:fixed; width:200px; top: 330px;right:10px;font-size:9pt;text-align:left;"] +http://1ting.com##div[style="position:fixed;bottom:0;z-index:999"] +http://up01.cc##div[style="position:fixed;width:468px;left: 50%;transform:translate(-50%,0);height:60px;background:#fff;bottom:0px;text-align:center;z-index:9"] +http://lanzou.com##div[style="text-align: center;border: 1px solid #eee;"] +http://subhd.com##div[style="text-align:center;height:270px;padding:10px 0;"] +http://buzzhand.com##div[style="text-align:left;margin-top:0px;height:600px;"] +http://halihali.me##div[style="width: 100%;height: 90px;position: relative;"] +http://rfidworld.com.cn##div[style="width: 100%;position: fixed;top: 0;margin:0;"] +http://v2ex.com##div[style="width: 240px; margin: 0px auto 0px auto; text-align: left;"] +http://eastmoney.com##div[style="width: 300px; height: 250px; margin-top: 10px;"] +http://jijidown.com##div[style="width: 500px;"]:last-child +http://jijidown.com##div[style="width: 525px;"]:last-child +http://pixnet.net##div[style="width: 620px; height: 250px; padding-bottom: 10px;"] +http://0573ren.com##div[style="width:1000px; margin:10px auto; background:#F8F8F8"] +http://jq-school.com##div[style="width:1060px; height:auto; margin:0 auto;overflow:hidden;"] +http://108.62.192.122,23.81.209.214,plus28.com##div[style="width:270px; height:180px;"] +http://liaoxuefeng.com##div[style="width:336px;height:280px;float:left;"] +http://auto-online.com.tw##div[style="width:336px;height:280px;margin:0;background:#000000"] +http://isanxia.com##div[style="width:340px;height:284px;float:left;"] +http://yantuchina.com##div[style="width:618px;height:150px;margin: 0 auto; display:block;"] +http://auto-online.com.tw##div[style="width:728px;height:130px;margin:0;background:#000000"] +http://xbooks.to##div[style="width:900px; height:250px; margin: -15px auto 15px auto;"] +http://isanxia.com##div[style="width:958px;height:90px;overflow:hidden;"] +http://cqnews.net##div[style="width:960px; height:90px; overflow:hidden; padding:0 20px; background:#fafafa; margin-bottom:15px"] +http://0597kk.com##div[style="width:960px; overflow:hidden; margin:2px auto; "] +http://chinacbe.com##div[style="width:960px; padding:0px; margin:4px 0; border:0px solid #CCC;"] +http://stnn.cc##div[style="width:960px;height:90px;float:left;"] +http://gfan.com##div[style="width:960px;height:90px;margin-top:10px;"] +http://youth.cn##div[style="width:960px;height:90px;margin:0 auto;"] +http://108.62.192.122,23.81.209.214,plus28.com##div[style="width:960px;margin: auto;"] +http://se533.com##div[style="width:960px;margin:0 auto;text-align:center;"] +http://cool3c.com##div[style="width:98%;border:1px solid #ddd;padding:5px;margin-top:5px;"] +http://duowan.com##div[style="width:980px;height:60px;margin:0 auto 10px;"] +http://pc360.net##div[style^="border:none;height:90px;width:728px;"] +http://123cha.com##div[style^="float:left;margin:8px 0;width:790px;border:1px dashed #ccc;"] +http://eefocus.com##div[style^="float:left;width:300px;height:250px;"] +http://gaoqing.fm##div[style^="height:258px;background-image:"] +http://jisilu.cn##div[style^="height:60px; width:960px;"] +http://ttzmz.vip##div[style^="margin-top:2"] +http://52ch.net##div[style^="margin-top:5px; height:60px;"] +http://zimuku.cn##div[style^="position:fixed; text-align:"] +http://mydrivers.com##div[style^="position:fixed;left:50%;bottom:200px;"] +http://v.163.com##div[style^="width: 140px; height: 199px;"] +http://ieche.com##div[style^="width: 298px;height:250px;"] +http://elecfans.com##div[style^="width: 960px;height: 40px;"] +http://zddream.com##div[style^="width:100%;height:100%;border:2px"] +http://pcsoft.com.cn##div[style^="width:100px;height:300px;position:fixed;"] +http://house365.com##div[style^="width:1200px;height:"] +http://backchina.com##div[style^="width:300px; min-height: 250px;"] +http://pc0359.cn##div[style^="width:301px;height:250px;"] +http://avonline.org##div[style^="width:613px; height:"] +http://mydrivers.com##div[style^="width:728px; height:90px;"] +http://jpwind.com##div[style^="width:730px; height:90px;"] +http://zimuku.cn##div[style^="width:8"] +http://memexie.com##div[style^="width:9"][style$="#C8E4F0"] +http://21yq.com##div[style^="width:980px;height:80px;"] +http://zuoye.baidu.com##dl[class="card related"] +http://douban.com#?#.rec_topics:-abp-has(>.rec_topics_name[href^="https://erebor.douban."]) +http://dysfz.tv,dysfz.vip#?#li:-abp-has(> h2 > a:-abp-contains(红包)) +http://dysfz.tv,dysfz.vip#?#li:-abp-has(> h2 > a[href*="t.cn"]) +http://bbs.my0511.com##embed[width="970"][height="70"] +http://hiapk.com##font.jammer +http://ifeng.com#?#.box_list:-abp-has(.tuig) +http://sina.cn##iframe[id^="sinaadtk_"] +http://image.so.com#?#.imgcell:-abp-has(.txt:-abp-contains(广告)) +http://50yxw.com##img[height="50"] +http://eworldship.com##img[height="70"] +http://moyu16.com##img[height="85px"] +http://wishdown.com##img[href*=".41gw.com/"] +http://szhk.com##img[id^="adp"] +http://nicemoe.com##img[src*=".sinaimg."][style="width:100%;margin-top:0px;"] +http://moyu16.com##img[style="width:1238px;height:100px"] +http://scsn.cn##img[style^="height:70px;width:"] +http://cnstock.com,hall123.com,hc360.com,hi.people.com.cn,xizi.com##img[width="1000"] +http://jmbbs.com##img[width="1100"] +http://5eplay.com##img[width="1240"] +http://54new.com##img[width="1280"][height="100"] +http://javjunkies.com##img[width="160"][height="600"] +http://chysg.com##img[width="232"][height="90"] +http://36dm.club,36dm.com,acgsou.com##img[width="250"][height="250"] +http://uschinapress.com##img[width="290"] +http://5eplay.com##img[width="290"][height="360"] +http://2chcn.com##img[width="300"] +http://guitarchina.com##img[width="420"][height="60"] +http://aguitar.cn##img[width="470"][height="60"] +http://china.com.cn##img[width="665"] +http://36dm.club,36dm.com,acgsou.com##img[width="700"][height="60"] +http://gpshk.cc##img[width="770"] +http://cnjxol.com,pt80.net##img[width="960"] +http://biz.zjol.com.cn,cgown.com##img[width="980"] +http://chyangwa.net,motorfans.com.cn##img[width^="1200"] +http://0597kk.com##img[width^="37"][height="30"] +http://apk.tw##ins.adsbygoogle +http://bitauto.com##ins[type="ad_play"] +http://ithome.com#?#.placeholder:-abp-has(> a > .plc-con > .plc-footer > .tip-gray) +http://ithome.com#?#li:-abp-has(>.block a[href*="/lapin."]) +http://jianshu.com#?#div[id]:-abp-has(> .ad-badge) +http://jin10.com#?#.jin-timeline:-abp-has(.jin-tag) +http://hk.yahoo.com##li[class="js-stream-content Cf Pos-r RevealNested "][data-uuid]:not([data-uuid*="-"]) +http://1111.baidu.com,bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##li[data-daid] +http://0573ren.com##li[data-sort] > a[href^="http://app-api.0573ren.com/store-view/store/detail/id/"] +http://m.thepaper.cn#?#.t_news:-abp-has(img[alt="广告"]) +http://muchong.com#?#.forum_Post_index:-abp-has(nobr:-abp-contains(18)) +http://muchong.com#?#A[target="_blank"][style="display: inherit!important;"] +http://news.baidu.com#?#.index-list-item:-abp-has(.tip-time:-abp-contains(广告)) +http://news.sohu.com,www.sohu.com#?#.list16 > ul > li:-abp-contains(广告) +http://china.com##object[width="360"][height="300"] +http://sina.com.cn##p + .article-video +http://bbs.6park.com##p > font[color="E6E6DD"] +http://muchong.com##p[onclick="view_ok();"] +http://aeink.com##p[style*=".alicdn.com/"] +http://aeink.com##p[style*="82px;background:"] +http://itkeyword.com##p[style="line-height:1.4; margin-top:8px; margin-bottom:10px;"] +http://samsung.com#?#.template-item:-abp-has(> .wrap-sub-title > div > .ad) +http://dilidili.name,gdot.me,sc115.com##script + a +http://logo160.com##script + a[href="/"] +http://xingkbjm.com##script + div + .excerpt +http://xingkbjm.com##script + div + .excerpt + .excerpt +http://news.lyd.com.cn##script + table[width="300"] > tbody > tr:first-child > td > table[width="300"] +http://vs.cm##section[id^="ad_"] +http://r3sub.com##source + img +http://bbs.my0511.com##span.smalltxt +http://163.com##span[class^="gg"] +http://gamebase.com.tw##span[id^="aid_"] +http://hkgolden.com##span[id^="lineImage"] +http://bilibili.com##span[style*="height:"][data-loc-id] +http://typecho.wiki##span[style="height: 17px;margin-left: 10px;background: #000;border: 1px solid #000;"] +http://yivian.com##span[style^="color: #ff0000;"] +http://hanzify.org##span[style^="float:right;"] +http://power.baidu.com,zhidao.baidu.com##style[id^="s-m"] + div[id^="m"] +http://cnjxol.com##table[background$="/searchbg.gif"] ~ table[height="5"] +http://udn.com##table[bgcolor="#FFFFFF"][width="298"][height="375"] +http://my0511.com##table[bordercolor="#C0C0C0"][border="1"] +http://pt80.net##table[cellpadding="2"][bordercolor="#DFC5A4"] +http://bbs.fobshanghai.com##table[cellpadding="4"][style="background: #D6E0EF"] +http://jpfans.com,jpseek.com##table[cellspacing="1"][cellpadding="6"] +http://news.lyd.com.cn##table[cellspacing="5"]:nth-child(3) +http://jdbbs.com##table[cellspacing="5"][bordercolor="#9dbedd"] +http://angelweb.cn##table[height="250"] +http://guidaye.com##table[height="280"] +http://sdzbcg.com##table[height="41"]:last-child +http://bcbay.com##table[id] + table[style="margin:3px auto;"] +http://playtv.com.cn##table[id] > tbody > tr > td[colspan="2"][width^="32"] +http://win007.com,win0168.com##table[id^="table_Ad"] +http://bbs-tw.com##table[ondragstart="window.event.returnValue=false"] +http://zhuji.net##table[style="border-bottom:1px solid #dfdfdf; border-left:1px solid #dfdfdf; border-right:1px solid #dfdfdf; "] ~ table +http://52life.cc##table[style="margin-top:0"] +http://28xl.com##table[style^="width:678px; height:280px;"] +http://jjwxc.net##table[style^="width:984px;"] +http://hcbbs.com##table[width="100%"][bordercolor="#CCCCCC"] +http://pt80.net##table[width="1150"] +http://net767.com##table[width="320"][height="252"] +http://lbx777.com,lbx777.net##table[width="325"][height="280"] +http://mitbbs.ca,mitbbs.com##table[width="336"][height="280"] +http://nick20.com##table[width="702"][bgcolor="#D1DDAA"] +http://cartonmad.com,cartoomad.com##table[width="728"][height="110"] +http://cartoonmad.com##table[width="737"] > tbody > tr > td[valign="top"][height="100"] +http://cartomad.com,cartoonmad.com##table[width="737"] > tbody > tr > td[valign="top"][height="118"] +http://pt80.net##table[width="760px"] +http://5156edu.com##table[width="770"][bordercolordark="#FFFFFF"] +http://cartoonmad.com##table[width="877"] > tbody > tr > td > a[href^="https://fun8.us/"] +http://6park.com##table[width="89%"][height="60"] +http://cartoonmad.com##table[width="890"] > tbody > tr > td > table[height="110"] +http://mitbbs.ca,mitbbs.com##table[width="915"] > tbody > tr:first-child > td[width] +http://cartoonmad.com##table[width="950"] > tbody > tr > td > table[width="210"] > tbody > tr > td > table[width="210"] +http://16sucai.com,bbxxbbs.net##table[width="960"] +http://esnai.com##table[width="960"] > tbody > tr > td[height="90"] +http://cnjxol.com##table[width="960"][bgcolor="#FFFFFF"] +http://fpdisplay.com##table[width="960"][height="110"] +http://gpcxw.com##table[width="960"][height="90"] +http://you85.cn##table[width="980"] +http://yxfdc.com##table[width="980"] > tbody > tr > td[height="70"] +http://zuanke8.com##tbody[id^="normalthread_"] + tbody > tr > td[colspan="5"] +http://51credit.com,ck101.com,hkepc.com##tbody[id^="normalthread_"] + tbody:not([id]) +http://xici.net##td.doc_sign +http://cartomad.com,cartonmad.com,cartoonmad.com,comicnad.com,conicsmad.com##td[align="center"][height="102"] +http://sinoca.com##td[align="center"][height="90"] +http://90bifen.com##td[bgcolor="#FFFEE0"][height="22"] +http://win007.com##td[height="18"][bgcolor="#FFFFE8"] +http://tianshui.com.cn##td[height="420"] +http://webkaka.com##td[id$="_SPONSOR"] +http://win007.com##td[id^="Ad"] +http://muchong.com##td[style="padding-right:15px;border-right:1px solid gray;"] + td[style="padding-left:15px;"] +http://muchong.com##td[style="padding:10px;font-size:14px;"] > div > [style="color:green;"]:first-child +http://muchong.com##td[style="padding:10px;font-size:14px;"] > div > a[href^="creditshow.php?action=view&logid="] +http://muchong.com##td[style="padding:5px 10px;"] + td + td[style="padding-left:10px;"]:last-child +http://findprice.com.tw##td[style="width: 342px; padding:0px 0px 0px 5px;border-left:1px solid #c9d7f1;"] > table > tbody > tr:nth-last-child(n+3) +http://ningmengzhibo.com##td[style="width: 50px;font-size: 12px;"] +http://hkgolden.com##td[style="width: 999px; vertical-align: top;"] > div[style="height:291px;"] +http://tvboxnow.com##td[style="width:15%;height:100%;"] +http://hkgolden.com##td[style^="background-color: #F3F2F1; height: 100px;"] +http://zhuji.net##td[valign="top"][height="66"] +http://zhuji.net##td[valign="top"][height="96"] +http://spbo1.com##td[width="100%"][height="18"][bgcolor="#ffffff"][align="center"][colspan="13"] +http://sdzbcg.com##td[width="297"] img +http://mp4ba.la##td[width="300"][height="300"] +http://enread.com##td[width="326"][height="250"] +http://sdzbcg.com##td[width="580"][height="279"] > table:nth-child(2n-1) +http://62422.cn##td[width="760"][height="75"] +http://cartoonmad.com##td[width="890"] > table > tbody > tr > td[valign="top"][height="118"] +http://verycd.gdajie.com##th[colspan="3"] +http://ningmengzhibo.com##th[style="width: 80px;"][colspan="3"] +http://toutiao.com#?#.J_ad +http://toutiao.com#?#.has_action:-abp-has(> .icon_ad) +http://cartoomad.com##tr:last-child > td[align="right"] > table[width="732"] +http://cartomad.com,cartoonmad.com##tr:nth-child(n+5) > td > table[width="732"] +http://17ce.com##tr[id^="tr"] > td > a[href^="http"] +http://firefoxchina.cn##ul[track-key="adv_links"] +http://yahoo.com#?#.js-stream-content:-abp-has(p:-abp-contains(熱門搜尋)) +http://yahoo.com#?#.js-stream-content:-abp-has(span:-abp-contains(即日熱搜)) +http://zhangxinxu.com#?#.top_da_out +http://game735.com#@##AdDiv +http://the-sun.on.cc#@##ContentAd1 +http://greedio.com#@##adBox +http://abbao.cn#@##adContent +http://gohome.com.hk,idv.st#@##adFrame +http://wangnba.com#@##adSet +http://two.game.tw#@##ad_02 +http://fx678.com#@##ad_8 +http://dpp.org.tw,shuaijiao.com#@##ad_big +http://zhibo8.cc#@##ad_box +http://chanet.com.cn#@##ad_content +http://dpp.org.tw#@##ad_small +http://timesdata.com#@##adbody +http://tt1069.com#@##adbrite +http://abbao.cn,tt1069.com,xietui.com#@##adcontent +http://cgvoo.com,hongrentao.cc,houhuayuan.pink,mcfuns.com.tw,mrmad.com.tw,myself-bbs.com,paltv.top,pbhz.com,sportsyeah.hk,ugediao.com,youneed.win,zhaoze.party,zhuihd.com#@##adsense +http://wenku8.net#@##adtop +http://union.58.com#@##advertise +http://nyaa.pt,pantsu.cat#@##banner_ad +http://biznetvigator.com#@##container_ad +http://szxx.com.cn#@##divAd +http://knowlet3389.blogspot.com,knowlet3389.blogspot.hk,knowlet3389.blogspot.jp,knowlet3389.blogspot.tw#@##gAds +http://game.macx.cn#@##google-ad +http://codejie.net,mo.babytoyhome.com#@##google-ads +http://apk.tw#@##google_ad +http://soft.macx.cn,tunesp.com#@##googlead +http://soft.macx.cn#@##googlead1 +http://52vfx.com#@##head_ad +http://29yyl.com#@##index_ad +http://xxt.cn#@##mainAd +http://www.zol.com.cn#@##search_ad +http://wangnba.com#@##showAd +http://u2mtv.com#@##slider-ad +http://buy.ccb.com#@##top_ad +http://520cc.cc,520cc.me,5278.cc#@#.a_cn +http://help.xunlei.com#@#.a_fr +http://520cc.me,sewangchao.com,sewangchao3.com#@#.a_mu +http://xinmin.cn#@#.a_p +http://haha.mx#@#.ad-1 +http://mobile01.com#@#.ad-a +http://diantai.ifeng.com#@#.ad-b +http://pptstore.net#@#.ad-big +http://baidu.com,comefromchina.com#@#.ad-block +http://pdflibr.com#@#.ad-center +http://liumingye.cn#@#.ad-column +http://digitalocean.com#@#.ad-content +http://pixiv.net#@#.ad-footer +http://juxiangyou.com,senao.com.tw#@#.ad-img +http://ntm.gov.tw#@#.ad-left +http://polyapt.com#@#.ad-one +http://pipi.cn#@#.ad-root +http://da-fan-shu.cn#@#.ad-s +http://beanfun.com#@#.ad-slider +http://senao.com.tw#@#.ad-wrap +http://mucanwenxue.com#@#.ad250 +http://apk.tw#@#.ad300 +http://2ujj.com#@#.ad350 +http://012.tw#@#.ad728 +http://520tingshu.com#@#.ad960 +http://cw.com.tw#@#.adActive +http://czbj.js.cn#@#.adArea +http://poedb.tw#@#.adBanner +http://cmbc.com.cn#@#.adBox +http://bbs-mychat.com#@#.adContent +http://huanqiu.com#@#.adHead +http://icbc.com.cn#@#.adLeft +http://icbc.com.cn#@#.adRight +http://10jqka.com.cn,faxingw.cn,gdmm.com#@#.ad_1 +http://dnwx.com#@#.ad_250 +http://psahz.com#@#.ad_960 +http://workercn.cn#@#.ad_content +http://mx-fm.com,ts.21cn.com#@#.ad_img +http://yxdown.com#@#.ad_l +http://workercn.cn#@#.ad_main +http://fxedu.com.cn#@#.ad_r +http://howbuy.com#@#.ad_wrapper +http://hibox.hinet.net#@#.adarea +http://en8848.com.cn#@#.adcenter +http://china.com#@#.adclass +http://hc360.com,qqread.com#@#.adcont +http://51cto.com#@#.addarea +http://ggdoc.com.cn#@#.addiv +http://poba.com.tw,poba.hk#@#.adlist +http://weather.com.cn,wed114.cn#@#.adpic +http://ltn.com.tw#@#.adright +http://money18.on.cc#@#.ads-bg +http://159i.com,techroomage.com,zhaopin.com#@#.adsBox +http://liumingye.cn#@#.adsTest +http://alotof.software,android-doc.com,apk.tw,battlecats-db.com,epinv.com,ff14angler.com,fxpan.com,haoweichi.com,moa.tw,playok.com,tingfm.com#@#.adsbygoogle +http://gdmm.com,gkstk.com,youquba.net#@#.adtop +http://bdp.cn#@#.adv-list +http://liumingye.cn#@#.advText +http://anjia365.com#@#.adv_bg +http://htmlsucai.com,sucai8.cn,ui.cn#@#.adv_img +http://zalora.com.hk#@#.advertisement-block +http://lm-us.com#@#.advertisement_above_footer +http://8maple.ru,bilibili.to,oldpig.org#@#.afs_ads +http://epubit.com#@#.article_share +http://dingdong.ganji.com#@#.banner +http://10.10.5.12#@#.banner_ad +http://ishangman.com#@#.bottom_ad +http://douban.com#@#.download-ad +http://typecho.wiki#@#.downloadad +http://petrochina.com.cn#@#.ggbox +http://btbttv.net#@#.google-ad +http://mo.babytoyhome.com#@#.google-ads +http://apk.tw#@#.google_ad +http://adbug.cn#@#.google_ads +http://mobile01.com#@#.googlead +http://58pic.com,v.baidu.com#@#.has-ad +http://wangzheli.com#@#.headad +http://popo.tw#@#.header_ad +http://hbee.edu.cn#@#.headerad +http://i-pass.com.tw#@#.homead +http://vmall.com#@#.iframeAd +http://sohu.com#@#.label-ad +http://jsbooks.com.cn#@#.left-ads +http://36.cn#@#.mainAd +http://fsjoy.com#@#.main_adv +http://gdrc.com#@#.midAd +http://hc360.com#@#.midad +http://ntust.edu.tw,sjsmitaa.org#@#.module-ads +http://mobile01.com#@#.navad +http://eprice.com.hk#@#.one-ad +http://weiyun.com#@#.page-ad +http://chinatimes.com#@#.page_ad +http://fjsen.com,nuomi.com#@#.right-ad +http://perfectmatch.tw#@#.right_ad +http://360-bo.com#@#.rightad +http://zdface.com#@#.top-ad +http://bee.coupons,blogspot.com,blogspot.hk,blogspot.jp,blogspot.tw,comic.tw,jasonblog.tw#@#.vertical-ads +http://i-cable.com#@#.video_ad +http://bitauto.com,yinyuetai.com#@#a[href^="http://ad.doubleclick.net/"] +http://brandsales.58.com#@#div[id^="ad_"] +http://gohome.com.hk#@#div[id^="div-gpt-ad"] +http://7255.com###J_search_bd > div:last-child +http://7255.com###right > div:first-child +http://7255.com##.act-search-tab +http://7255.com##.chc-dzoem +http://7255.com##.mod-txtred +http://7255.com##.mzdh_bottom +http://7255.com##div[id^="J_Topic"] +http://58.com###rightRetui +http://58.com##.S_table_ding_box +http://58.com##.topinfos +http://58.com##.zhiding-border +http://58.com#?#.ac_item:-abp-has(.jingpin) +http://58.com#?#.business_main:-abp-has(> .business_desc > .left > .ding_icon) +http://58.com#?#.zzinfo:-abp-has(.zhiding_icon) +http://58.com#?#LI[sortid]:-abp-has(.icon-jingxuan) +http://58.com#?#LI[sortid]:-abp-has(.icon-zhiding) +http://58.com#?#LI[sortid]:-abp-has(.jinico) +http://58.com#?#TR[logr]:-abp-has(> .t > .mt-p-tit > .jingpin) +http://58.com#?#tr[sortid]:-abp-has(> .t > .ico.accurate) +http://xin99r2.com##.dmcenter +http://xin99r2.com##.spots +http://ahri-dva.club,ahri-hentai.com,ahri.online,ahri8.online,ashe.site,xayah.top#@#.adsbox +http://ck101.com,gamer.com.tw,pili.com.tw#@#.pub_300x250 +http://ck101.com,gamer.com.tw,pili.com.tw#@#.pub_300x250m +http://ck101.com,gamer.com.tw,pili.com.tw#@#.pub_728x90 +http://ck101.com,gamer.com.tw,pili.com.tw#@#.text-ad +http://ck101.com,gamer.com.tw,pili.com.tw#@#.text-ad-links +http://ck101.com,gamer.com.tw,pili.com.tw#@#.text-ads +http://ck101.com,gamer.com.tw,pili.com.tw#@#.textAd +http://ck101.com,gamer.com.tw,pili.com.tw#@#.text_ad +http://ck101.com,gamer.com.tw,pili.com.tw#@#.text_ads +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com#?##content_left > [class]:-abp-has(span[data-tuiguang]) +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com#?##content_left > [style*="important"] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com#?#div[id$="_canvas"] +http://ipv6.baidu.com,xueshu.baidu.com,www.baidu.com,www1.baidu.com#?#.c-container:-abp-has(.t > a[data-landurl]) +http://ipv6.baidu.com,xueshu.baidu.com,www.baidu.com,www1.baidu.com#?#div:not([id]) > style[id^="s-"] + style + div + div[id] +http://ipv6.baidu.com,xueshu.baidu.com,www.baidu.com,www1.baidu.com#?#div:not([id]) > style[id^="s-"] + style + div[id] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > [class] > [id*="00"] > div +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > [class] > [id*="00"] > tbody +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > [class] > [id*="00"] > ul +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > [class] > a[href*="//e.baidu.com/?refer="] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > [id*="00"]:not(.result):not(.result-op) > div +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > [id*="00"]:not(.result):not(.result-op) > tbody +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > [id*="00"]:not(.result):not(.result-op) > ul +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > div:not([id]) > div[id][data-rendered="true"] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > div[class][style]:not([id]) +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > div[id*="00"]:not(.result):not(.result-op) + div[class]:not(.result):not(.result-op) +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > style[id^="s-"] + div[id]:nth-child(2) +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_left > style[id^="s-"] + style + div[id]:nth-child(3) +http://baidu.com###content_right > div > div[id^="m"] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_right > table > tbody > tr > td > div:not(#con-ar):not([class]) +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###content_right > table > tbody > tr > td > table +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###ecl-temai-category +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###ecl-temai-general +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###ecl-weigou-view-container +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###lm +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###op_wiseapp +http://ipv6.baidu.com,m.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com###results > div[class]:not(.result):not(.result-op):not(.sp-rslt-bar):not(.s-group-result) +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.EC_newppim +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ec_bdtg +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ecl-car-powerful-container +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ecl-health-pagelist-wrapper +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ecl-health-poplist-wrapper +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ecl-loan-list-card +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ecl-tg-content +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ecl-wealth-list-card-container +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ecl-weigou-nav-buy +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ecom-result +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.op_tvplay_main +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.opr-xmas-game-container +http://baidu.com##.opr-zhaopin-ad-ctn +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.res_top_banner +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.result-op[data-click*="\"rsv_srcid\":\"10090\""] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.result-op[tpl="right_chris_prize_list"] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.result-op[tpl="right_timeliness2"] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.tools > .shouji +http://baidu.com##.wa-zp-exact-new-border +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##.ylbx_game_desc +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div:not([id]) > style[id^="s-"] + div[id] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div:not([id]) > style[id^="s-"] + style + div + div[id] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div:not([id]) > style[id^="s-"] + style + div[id] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[class^="EC_pla_"] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[class^="ecl"][class*="game"] > .c-border +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[class^="ecl-edu-"] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[class^="ecr"][class*="game"] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[data-click="\7b \"rsv_srcid\":49516\7d "] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[id$="2"] ~ #\31 [data-click^="\7b \"rsv_bdr\":\"0\",\"p5\":"] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[id$="_canvas"] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[id^="ecl-pc-game-"] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[srcid="13602"] > .c-border +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[tpl="app_normal"] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[tpl="b2b_straight"] > .c-border +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[tpl="houses_new"] > .c-border +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[tpl^="ecl_health"] > .c-border +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[tpl^="job"] > .c-border +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[tpl^="qunar_hotel"] > .c-border +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[tpl^="right_qunar_hotel"] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##div[tpl^="soft"] > .c-border +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##style[data-for] + style ~ #\31 [data-click^="\7b \"rsv_bdr\":\"0\",\"p5\":"] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##style[id^="s-"] + script + div[id] +http://ipv6.baidu.com,www.baidu.com,www1.baidu.com,xueshu.baidu.com##style[id^="s-"] + script + script + div[id] +http://bingfeng.tw##.wow-ad-link +http://bingfeng.tw##div[style="position: fixed; left: 0px; top: 0px; width: 100%; height: 100%; z-index: 999;"] +http://btzhongzifuli.com,cililianbt.org,maomaobt.cc,sousoucili.com,zhainanzhongzi.cc##.photos +http://2c2.website,2p8.space,adultgao.com,caopop.com,caoporn.com,caouoo.com,caox.cc,h3e.pw,h3y.pw,k88.club,me88.pw,p5p.space,se88.space,t2p.space,tb001.xyz,te88.pw,vwan.xyz,xhao1.com##div[style="margin-top:5px;margin-bottom:5px;"]:first-child +http://cilimao.co,cilimao.one##div[class^="FixBanner"] +http://dlkoo.cc##ins[id^="tanxssp-outer-conmm_"] +http://dlkoo.com##ins[id^="tanxssp-outer-conmm_"] +http://ifun.tv##vg-pause-ads +http://dnvod.tv##[data-code] > :not([pluginspage="http://www.macromedia.com/go/getflashplayer"]) +http://dnvod.tv##[data-code] > :not(object) +http://dnvod.tv##[data-code] > [target="_blank"] +http://dnvod.tv#?#[data-code] > :not([pluginspage="http://www.macromedia.com/go/getflashplayer"]) +http://dnvod.tv#?#[data-code] > :not(object) +http://dnvod.tv#?#[data-code] > [target="_blank"] +http://dnvod.tv###box +http://dnvod.tv###msg_win +http://dnvod.tv###msg_winw +http://dnvod.tv###myaudient +http://dnvod.tv###myaudient2 +http://dnvod.tv##.bfq-r +http://dnvod.tv##.clickbg +http://dnvod.tv##.dnpub +http://dnvod.tv##.gg +http://dnvod.tv##.ggw-l +http://dnvod.tv##.r-gg +http://dnvod.tv##:not(#video) > div[data-code] +http://dnvod.tv##[style*="important"] +http://dnvod.tv##a[href^="http://yoyou."] +http://dnvod.tv##a[style="display:inline;visibility:visible"] > img +http://dnvod.tv##div[class][data-type="popup"] +http://dnvod.tv##div[data-code][data-img] +http://dnvod.tv##div[id][style*="top:"][style*="block"] +http://dnvod.tv#?#:not(#video) > div[data-code] +http://dnvod.tv#?#[style*="important"] +http://dnvod.tv,dnwyb.tv##vg-pause-ads +http://fuliba.net,uliba.net###focusslide +http://fuliba.net,uliba.net##.asb +http://fuliba.net,uliba.net##.widget_custom_html:nth-child(2) +http://fuliba.net,uliba.net##.widget_ui_textasb +http://hh010.com##.a_h1t_t +http://hh010.com##.a_h_h +http://hh010.com##.a_hongc_c +http://hpjav.tv##body > div[style^="position: fixed;"] +http://verystream.com#@#.adsbox +http://ifeng.com###golddigger_bottom +http://ifeng.com###linkrat_bottom +http://ifeng.com##.i_con + :not(.i_con):not([href="javascript:void(0);"]) +http://ifeng.com##.i_con[href*=".ifeng.com/go?"] +http://ifeng.com##.newbagicon +http://ifeng.com##[data-cl] +http://ifeng.com##[id^="dl"] +http://ifeng.com##[id^="mobile_gg"] +http://ifeng.com##[iscl] +http://ifeng.com##[style*="position"][style*="fixed"]:not([id]) +http://ifeng.com##a[href*=".deliver."][style*="block"] +http://ifeng.com,~imall.ifeng.com##a[href*="imall.ifeng."] +http://ifeng.com#?#.i_con + div:-abp-has(span:-abp-contains(告)) +http://ifeng.com#?#.i_con:-abp-has(span:-abp-contains(告)) +http://ifeng.com#?#.slLis > li:-abp-has(span:-abp-contains(告)) +http://googleads.g.doubleclick.net###mys-wrapper +http://52biquge.com##a[href^="http://html.350.com/"] +http://duanwenxue.com##.qgzdwx +http://520cc.club,getrelax.club,playno1.club,sexylove.club,xn--a-ko6aq37itxj.com##.loaded-popup-wrapper +http://520cc.club,getrelax.club,playno1.club,sexylove.club,xn--a-ko6aq37itxj.com#@#.google-ad +http://rjno1.com##div[style="display:none"] +http://173.192.147.21,iu91.co,ozxw.co,sejie.com,sejie2.us,sejie3.us,thesoccerline.com,ukhuaren.co###wp > br +http://173.192.147.21,iu91.co,ozxw.co,sejie.com,sejie2.us,sejie3.us,thesoccerline.com,ukhuaren.co###wp > center > a +http://rvlev.com,t66y.com#?#.tpc_content:-abp-has(>b:nth-child(n+40)>span>a[onmouseover="this.style.background='#DEF5CD';"]:-abp-contains(91TV)) > :nth-child(-n+45) +http://rvlev.com,t66y.com#?#.tpc_content:-abp-has(>b:nth-child(n+50)>span>a[onmouseover="this.style.background='#DEF5CD';"]:-abp-contains(91TV)) > :nth-child(-n+55) +http://rvlev.com,t66y.com#?#[class]:-abp-has(>a[onmouseover="this.style.background='#DEF5CD';"]:nth-child(n+150):-abp-contains(/赌|娱|澳/)) > :nth-child(-n+155) +http://rvlev.com,t66y.com#?#[class]:-abp-has(>a[onmouseover="this.style.background='#DEF5CD';"]:nth-child(n+160):-abp-contains(/赌|娱|澳/)) > :nth-child(-n+170) +http://rvlev.com,t66y.com#?#[class]:-abp-has(>a[onmouseover="this.style.background='#DEF5CD';"]:nth-child(n+180):-abp-contains(/赌|娱|澳/)) > :nth-child(-n+188) +http://rvlev.com,t66y.com#?#[class]:-abp-has(>a[onmouseover="this.style.background='#DEF5CD';"]:nth-child(n+190):-abp-contains(/赌|娱|澳/)) > :nth-child(-n+195) +http://rvlev.com,t66y.com#?#div:-abp-has(> script + table) a +http://rvlev.com,t66y.com#?#div:-abp-has(> script + table) h4 +http://thz5.cc###fwin_content_imc_attachad > .f_c > div > div:first-child +http://dota2.com.cn#@##bdshare +http://eastday.com#@##leftShare +http://gfan.com,gfan.net.cn#@##shareBox +http://sogou.com#@##shareContent +http://zdzdm.com#@##share_list +http://harrynull.tech#@##sharelist +http://freecodecamp.cn,freecodecamp.one#@#.btn-social +http://cokemine.com,jubuzz.com,tianfateng.cn#@#.category-share +http://carousell.com#@#.fb-b +http://sui.com#@#.fb-btn +http://douyu.com,oschina.net#@#.follow-btn +http://bilibili.com#@#.follow-wrapper +http://ffxiv.xin,fotor.com.cn,weiyun.com#@#.icon-share +http://gamersky.com#@#.like2 +http://readmoo.com#@#.navbar-social +http://music.163.com#@#.p-share +http://weiyun.com#@#.page-share +http://dongtw.com#@#.post-share-container +http://zhidao.baidu.com#@#.share-area +http://baidu.com,youdao.com#@#.share-content +http://baidu.com#@#.share-line +http://189.cn,vua.sh,weiyun.com#@#.share-link +http://baidu.com,meidebi.com#@#.share-list +http://kuaishou.com#@#.share-page +http://zhidao.baidu.com#@#.share-section +http://youdao.com#@#.share-text +http://wantgoo.com#@#.shareBtns +http://laosiji.com#@#.sns-wrapper +http://5dm.tv#@#.tm-share-this +http://fqsousou.com,kengso.com#@#.user-share +http://abpchina.org#$#log Hello +http://acfun.cn##.appguideBox +http://mmbang.com##.footer_adver-warp +http://tsdm.live###ts_sidebar_base +http://m.qu.la#?#ul:-abp-has(> li > a[href*=".bcebos."]) +http://m.qu.la#?#:-abp-has(> a[href*=".bcebos."]) +http://sanhao.com###reg-bar +http://lenovo.com.cn##.game-bd +http://zybang.com##.navigationBar-below-banner +http://m.07073.com##.new_heads +http://m.07073.com##.new_heads_bg +http://blog.csdn.net##SCRIPT[src^="https://csdnimg.cn/release/phoenix/vendor/linkCatcher/linkCatcher.js"] + .t0 +http://9312.net##.pop-up +http://gdmm.com##img[width="1200"] +http://ifeng.com##div[class^="qrCode"] +http://mafengwo.cn###float-pannel-gloable +http://mafengwo.cn###smartGuideFeng +http://bigbigwork.com##.pinterestbox +http://kuakao.com##.addTQBar +http://renren.com###videoAd12 +http://weather.com.cn##.tuiguang +http://douyu.com##.video-info-download +http://docer.com##.popup +http://voachinese.com##.slide-in-wg +http://gitee.com##.gitee-stars-main-widget +http://ooopic.com##.fix-newUser +http://itheima.com##.nav1 +http://thmz.com###floatdivids +http://soyoung.com###pubWideBanner +http://soyoung.com##.cash_back +http://soyoung.com##.pop_center_box +http://163.com##.redpacket-footer +http://163.com##.redpacket-subbox +http://worldve.com###fdkDiv +http://worldve.com###img +http://zybang.com###bottomBannerLink +http://ludashi.com##.div_text +http://ludashi.com##.div_mask +http://7k7k.com##.page-right-side-btns-img-link +http://ttmeiju.me##DIV[style="float:left;margin-bottom:27px;margin-top:27px;"] +http://4399.com###ads1_1 +http://xitonghe.com##.sidebar-wx +http://chinaacc.com##.leftBox +http://58pic.com##.activitySettings-Fixed +http://58pic.com##.activitySettings-fixedBottom +http://gdmm.com###diy3 +http://cnblogs.com###div_digg +http://cnblogs.com###xiaociguai +http://nowcoder.com###jsSideTopicList +http://mafengwo.cn###ad1 +http://mafengwo.cn###ad2 +http://eastday.com##.drain_app +http://pconline.com.cn###JnoLoginFixedBottom +http://hao123.com###bottom-be +http://kankanmi.com##.listnewli +http://epwk.com##.collect-info-icon +http://epwk.com##.collect-info-wrap +http://epwk.com##.head_banner +http://appledaily.com###ebBannerTopDiv + A[href^="http://bit.ly/"] +http://360kan.com###js-eb-bottomad +http://tianyancha.com###banner_web +http://vdianying.cc##div[style^="display:block !important;"] +http://aoji.cn##.xiaoxi_phone +http://gaodun.com###LRdiv1q +http://51cto.com##DIV[id^="topbanner"] +http://3d66.com###botfocus-soft +http://meijuniao.com###widget-weixin +http://meijuniao.com##.player-ad1 +http://wiseway.com.cn##.float-kefu +http://ixigua.com##.banner-section +http://jiakaobaodian.com##.com-footer-flex-panel +http://btime.com##.shop-guid +http://csdn.net##.blog_star_enter +http://ganji.com##.footer-b +http://evget.com###popelevencenter +http://sac.net.cn###ad +http://sac.net.cn###leftDiv +http://sac.net.cn###rightDiv +http://ibaotu.com##.bg-feedback +http://wantgoo.com###FixModal +http://csdn.net##.post_recommend +http://zuowen.com##.dialogP +http://mcmod.cn###McmodDonate +http://pupudy.com##.asst-post_header +http://pupudy.com##.sidebar +http://douyu.com###js-room-activity +http://gdmm.com##a[href="http://www.gdmm.com/appdown/"] +http://kingkong.com.tw##.public-activity +http://kingkong.com.tw##.room-banner-wrap +http://xhd.cn##.xinad +http://163.com##.gkk_bj_yw +http://163.com##.gkk_default_yw +http://jianshu.com###note-fixed-ad-container +http://jianshu.com###web-note-ad-1 +http://776dm.com,qiqidongman.com##.topAA +http://liepin.com##DIV[id^="nodetpl_g_"] +http://med66.com##.coach_pic +http://kekenet.com###bottomlink +http://download.csdn.net##.quake-slider +http://china.cn##.ltp_box +http://qidian.com##div[style="background: rgba(0,0,0,0.4);position: fixed;left:0;right:0;top:0;bottom:0;z-index:9999;"] +http://qidian.com##div[style^="width: 426px; height: 644px; background:"] +http://qidian.com##span[style^="display: inline-block;width: 150px; height: 291px;"] +http://zhufaner.com###dist_footer +http://zhufaner.com##.book +http://91wenmi.com###xiezuo +http://91wenmi.com###xzsp +http://91wenmi.com##a[href^="http://www.91wenmi.com/xiezuo/"] +http://med66.com##.banner +http://9game.cn###btInfo +http://ld0766.com###diy4 +http://tw.yahoo.com###tabTemplate +http://aliyun.com###yq-a-r-bottom +http://aliyun.com##.yq-ads-blog +http://aliyun.com##.yq-main-left > a:first-child +http://csdn.net##.fourth_column +http://taoguba.com.cn###joinTGB +http://jin10.com##.jin-popularize +http://acfun.cn###appguideBox +http://zglww.net##.tool +http://zhongyiju360.com###bottom-float +http://zhongyiju360.com###bottom-float2 +http://dianping.com##.QQlink +http://dianping.com##.bao-jia-form +http://dianping.com##.button_bao-jia +http://dianping.com##.layer-container[data-view-bid="b_njcmobox"] +http://dianping.com##.weixin1 +http://smzdm.com##.foot-banner +http://itheima.com##.tanchang +http://house365.com###AD-coup-left +http://cheaa.com###AD002 +http://cheaa.com###ADText +http://bing.com###BottomAppPro +http://ck365.cn###Dmids +http://baidu.dj###ETE +http://setn.com###FBAnchor +http://alipay.com###J-cooperant-banner +http://letv.com###JS_banner01 +http://letv.com###JS_banner02 +http://sina.com.cn###J_forAutoShow +http://pconline.com.cn###JtlBestA +http://zhiding.cn###MgBox +http://pcauto.com.cn###PcPoPmarket +http://qidian.com###QDCode_float +http://zuoye.baidu.com,zybang.com###QRinside +http://gov.cn###ZhiXuwFloatWindow +http://mmonly.cc###\32 vm_box +http://soku.com###\5f xbox_ad +http://ifeng.com###a_code +http://tianya.cn###a_qiu +http://mydrivers.com###a_showhotnews_list_dia +http://tw.yahoo.com###abu-live +http://zhidao.baidu.com###act-link-banner +http://baidu.com###activateGuidePopupOuter +http://8591.com.tw###active_enter +http://dongao.com,zgsyz.com###ad +http://fengniao.com###ad-head +http://4399.com,sxrtv.com,yundaex.com###ad1 +http://4399.com,sxrtv.com,zgsyz.com###ad2 +http://bitauto.com###advCarsumType1 +http://rrjc.com###alertBox +http://5253.com###android-qr +http://sohu.com###apkBanner +http://pconline.com.cn###app-ewm-tg +http://neihanshequ.com###appDownload +http://qidian.com###app_download_blank_show +http://zuoye.baidu.com,zybang.com###aside +http://jpwind.com###asideNav +http://bilibili.com###b_app_link +http://58.com###banjiaAD +http://3g.baidu.com,m.baidu.com,m5.baidu.com,www.baidu.com###banner_call + div[id] +http://tianya.cn###bbs_login_div +http://pcauto.com.cn###bgbao +http://bing.com###bingBrand +http://163.com###bobo +http://zhiyoo.com###body-bg +http://sogou.com###bottom_appad +http://haosou.com,so.com###bottom_ask +http://so.com###bqPromote +http://zol.com.cn###btmLoginLayer +http://golinksworld.com###btn_download +http://lvmama.com###centerDialog +http://ifeng.com###client-spread +http://ichunqiu.com###cnzz168_Login +http://ck365.cn###content_login +http://yahoo.com###crazyad_mask +http://9miao.com###deanrlc22 +http://news.baidu.com###detail-HotScrollNews-wrapper +http://zhiyoo.com###dialog1 +http://fx168.com###diaochaBg +http://fx168.com###diaochaBox +http://tw.yahoo.com###discount +http://douguo.com###dlayer +http://kongzhong.com###dn +http://btime.com###download +http://ibm.com###dw-regbar +http://xcar.com.cn###eMeng +http://udn.com###ec +http://51cto.com###edu_adver +http://58.com###erweimaAd +http://guancha.cn###ewm_app +http://baidu.com###exp-fixed-bottom +http://sina.com.cn###f_ask +http://51cto.com###f_close_box +http://news.baidu.com###favoriteTips +http://zhidiy.com###festival_float_bottom +http://ci123.com###fixed-recom +http://bilibili.com###fixed_app_download +http://yesky.com###flayer +http://7808.cn###float-chat +http://163.com###floatLayer +http://x-mol.com###floatWindow +http://qianlima.com###float_mask +http://scsjgjj.com###floatinfo +http://mayi.com###floatingLayer +http://tw.beanfun.com###flybeanfun +http://ofweek.com###flybox-db +http://miercn.com###foot_return_foot +http://xtuan.com###foot_zhaobiao_bar +http://smzdm.com###footer_layer +http://7808.cn###force-popup +http://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###forum_recommend +http://eastmoney.com###fp1 +http://house365.com###ft-login +http://goodcome.com.tw###fulljad +http://eastmoney.com###fundtg-fb +http://ifeng.com###g_code +http://yesky.com###gfapp1 +http://guancha.cn###goapp +http://haosou.com###haosou-banner-left +http://thepaper.cn###head_ask_app_down +http://zhiyoo.com###header_app +http://finance.sina.com.cn###hq_main_top_tgWrap +http://51zxw.net###idSlider +http://youth.cn###identifier-pannel +http://zol.com.cn###iframe_zmall +http://las.ac.cn###img +http://dditblog.com###income_div +http://pptv.com###installApp +http://gov.cn###ippad01 +http://gov.cn###ippad02 +http://gov.cn###ippad03 +http://study.163.com###j-newpeople +http://fwxgx.com###jPpo_sc +http://goodcome.com.tw###jad-float +http://goodcome.com.tw###jad-right +http://goodcome.com.tw###jad-top +http://dianyingbar.com###jihuaslide +http://douyu.com###js-fix-download +http://douyu.com,douyutv.com###js-live-room-recommend +http://163.com###js_a_bobo +http://ifeng.com###js_red +http://0439.com###kanfang +http://163.com###layout-bobo +http://163.com###layout-love +http://163.com###layout-shop +http://fh21.com.cn###lbzxM +http://lvmama.com###leftDialog +http://instrument.com.cn###leftFlash +http://66rpg.com###left_overlay +http://duba.net###login_alert +http://tianya.cn###login_mask +http://zhibo8.cc###m_adv +http://zhidao.baidu.com###main-content > div[class]:first-child > a +http://house365.com###marryD +http://goodcome.com.tw,sporttery.cn###mask +http://meitu.com###meipaiFixed +http://ifeng.com###minefields_bottom +http://neihanshe.cn###mobile_client +http://stc.gov.cn###mov +http://aoshitang.com###msg_win +http://so.com###msocomBottomBanner +http://sporttery.cn###newDiv +http://baike.com###newsfix-on +http://finance.sina.com.cn###ny-link-r +http://finance.sina.com.cn###ny-link-r0 +http://autohome.com.cn###packetsWrap +http://neihanshequ.com###pageletBottomBanner +http://neihanshequ.com###pageletTopBanner +http://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###pagelet_frs-aside\/pagelet\/hottopic +http://kaopu001.com###pokemon +http://meituan.com###pop +http://52wmb.com###popContent +http://wbiao.cn###popupImgCorner +http://acfun.cn###prompt-box +http://infoq.com###psa-note +http://360.cn###pushbar-festival +http://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###questionnaire_bg +http://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###questionnaire_contianer +http://blog.163.com###r_m163news +http://blog.163.com###r_mlofteriframe +http://blog.163.com###r_mlofteriframe2 +http://yy.com###rbappend +http://15w.com###rec +http://mydrivers.com###recommend +http://tv.sohu.com###referr_bd_box +http://hjenglish.com###regscrollcontainer +http://66rpg.com###right_overlay +http://eastmoney.com###rightadvert +http://pchome.net###rightbar +http://cskaoyan.com###scanWxQrCode +http://wasu.cn###scan_qrcode +http://po.baidu.com###shareBoxBlank +http://xcar.com.cn###show_car +http://360.cn###sidebar +http://hao123.com###slidetoolbarContainer +http://suning.com###sn-sidebar-change-code +http://haosou.com###so_feb +http://sogou.com###sogou_vr_21222401_wrap_0 +http://ifeng.com###swiper_bottom +http://msn.com###taboola-above-homepage-thumbnails +http://sina.com.cn###tg_app_w +http://17173.com###topAlert +http://blog.163.com###topbar_gachaArea +http://blog.163.com###topbar_lofterDldArea +http://blog.163.com###topbar_yxpArea +http://ifeng.com###upApp1 +http://ifeng.com###upApp2 +http://51cto.com###upopbox_bot +http://51cto.com###upopbox_mid +http://tw.yahoo.com###util-top-promotion +http://fydisk.com###vbox +http://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com###video_aside +http://ithome.com###wapddfda21 +http://qudao.com###wechat +http://360.cn###weishi-alert +http://kekenet.com###weixinwz +http://kekenet.com###weixinwz1 +http://taoguba.com.cn###wrap_footer > div[style^="width: 957px;"] +http://ganji.com###write_resume_id +http://ifeng.com###wx +http://bendibao.com###wxbox +http://anjuke.com###xajk_down_new +http://muchong.com###xd_popbox +http://wenmi114.com###xiezuo +http://163.com###yjj_pop_wrapper +http://house365.com###youXFsmall +http://gmw.cn###ysp_gmrbAppLayer +http://1010jiajiao.com###yueyu3 +http://appchina.com###yyh-bottom +http://qyer.com###zpui-head-ad +http://3d66.com##.King_Chance_LayerCont +http://douyu.com##.PaladinPop +http://goodcome.com.tw##.Phase2_BigAdbox +http://newsmth.net##.Smthtwenty_float +http://pcgames.com.cn##.aFollowb +http://infoq.com##.ab_detect +http://auto.ifeng.com##.acquire_1 +http://apowersoft.cn##.activity-poster +http://huaban.com,zcool.com.cn##.ad +http://to8to.com##.ad-commom +http://iciba.com##.ad-sign +http://igo.cn##.adBG +http://pcauto.com.cn##.ad_onlyone +http://pixiv.net##.ads_anchor +http://medsci.cn##.adv1201 +http://2cto.com##.adv980 +http://2cto.com##.adv980box +http://8264.com##.advSection__wrapper +http://eastmoney.com##.advertisement +http://cngold.org##.ag_fwindow_ywp +http://dianyingbar.com##.alert_windows +http://jiankang.com##.all_eye +http://baidu.com##.app-guide +http://qidian.com##.app_download_ad +http://qidian.com##.app_download_ad02 +http://loldk.com##.appfix +http://baidu.com##.apphint +http://uisdc.com##.archive-pm-top +http://sina.com.cn##.article-bottom-tg +http://itmo.com##.aside-game-icon-box +http://to8to.com##.ask_side_opa +http://yaofangwang.com##.bad +http://fwxgx.com##.baibaoxiang +http://baidu.com##.baiduapp-ad-container +http://baike.baidu.com##.baike-dynamic-wrapper +http://51cto.com,chinaacc.com,yidianzixun.com##.banner +http://baidu.com##.banner-active +http://m.toutiao.com##.banner-top +http://pinggu.org##.banner2015 +http://55haitao.com##.bbs-bottom-popup +http://sina.com.cn##.blk_APP_JSl +http://sina.com.cn##.blk_APP_JSr +http://163.com##.bobo-area +http://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.bonus_forum_aside +http://tianya.cn##.book-box +http://douban.com##.bottom_ad_download +http://to8to.com##.bottom_slide_box +http://shejiben.com##.bottom_zb_box +http://sogou.com##.bottombar +http://to8to.com##.btm-float +http://ck101.com##.btn_dw_app +http://uuu9.com##.c_box +http://iciba.com##.cb-downmask +http://zuowen.com##.cj +http://hao123.com##.cjcard2017Container +http://mumayi.com##.clientBox +http://php.cn##.close_id +http://miercn.com##.color-box +http://ibaotu.com##.comVip-tg +http://baidu.com##.commentEmbed-backHomeCard +http://to8to.com##.common-tender-wrapper +http://ithome.com##.con_2 > .img_listbox +http://kaopu001.com##.coupleBannerAdv +http://rrjc.com##.coupletbox +http://yahoo.com##.crazyad +http://taoguba.com.cn##.ct_app +http://feng.com##.dd305 +http://youdao.com##.dialog-guide-download +http://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.dialogJ.umoney-promotion-dialog +http://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.dialogJmodal +http://youdao.com##.dict-dl +http://163.com##.doc-footer-wrapper +http://douyu.com##.double-festival-pop +http://finance.sina.com.cn##.downLink +http://caijing.com.cn##.downdiv +http://baidu.com##.download-app-parent +http://kdnet.net##.download-bar +http://wallstreetcn.com##.download-coantainer +http://km.com##.downloadApp +http://gfan.com##.downs +http://taizhou.com.cn##.duilian +http://taizhou.com.cn##.duilian2 +http://csdn.net##.edu-promotion +http://cw.com.tw##.emailorder +http://dajie.com##.envelop_layer +http://ettoday.net##.etvideo_collect_1 +http://baidu.com##.eye-catching-tpl-container +http://ifeng.com##.fhsd +http://baidu.com##.first-card-container +http://douyu.com##.firstpay-modal +http://xiushuang.com##.fix_app +http://hjenglish.com##.fix_questionnaire_btn +http://pcauto.com.cn##.fix_sinup_box +http://1010jiajiao.com##.fixed-bar +http://ye120.com##.fixed_bottom +http://1010jiajiao.com##.fixedbox2 +http://autohome.com.cn##.fixqbot +http://letv.com##.fl_app_bot_wrap +http://letv.com##.fl_app_wrap +http://ganji.com##.fl_pop +http://to8to.com##.float +http://www.163.com##.float-bar +http://gitee.com##.float-left-box +http://kaoyan.com##.floatQrcode +http://fwxgx.com##.float_ad +http://ifeng.com##.foot_top_box +http://xdf.cn##.footadv +http://m.zhanqi.tv##.footer +http://me360.com##.footer-booking-open +http://miaopai.com##.footer_banner +http://51cto.com##.footer_mask +http://nen.com.cn##.for3gagzy +http://it168.com##.fu1020_box +http://eastmoney.com##.fund-pop +http://hanjutv.com##.ggw_fr +http://55haitao.com##.global-dialog +http://1kkk.com,dm5.com##.guide +http://baixing.com##.guide-video-app +http://ifeng.com##.h_top_box +http://huke88.com##.hand-once +http://hao123.com##.hao123-search > .notice-fixed +http://jiemian.com##.header-container > div > section[style="width: 100%;"] +http://setn.com##.header-left-banner +http://setn.com##.header-right-banner-b +http://ucptt.com##.hidden-sm +http://baidu.com##.home-app-promotion +http://miercn.com##.hongbao +http://mafengwo.cn##.hotel-banner +http://huize.com##.hz-bottom-reserve-link +http://zhcw.com##.hzg60 +http://163.com##.imglist-bobo-app +http://focus.cn##.index-app-download +http://heirui.cn##.index711-mask +http://aiyuke.com##.index_app_down_ad +http://iciba.com##.info-product +http://58.com##.invokeApp +http://17173.com##.js-lol-pop +http://lofter.com##.js-promote-itm +http://pconline.com.cn##.juletao +http://163.com##.kaola-ad +http://to8to.com##.kgjr-wrap +http://zhcw.com##.khdpc +http://hjenglish.com,hujiang.com##.lamu_banner +http://yidianzixun.com##.layer-download +http://house365.com##.left_fudong_ad +http://xiaoma.com##.leftewm_topa +http://zhidao.baidu.com##.link +http://17173.com##.list-beauty +http://baixing.com##.listing-fixed-bottom-promo +http://duowan.com##.lolboxapps-qrcode +http://ltn.com.tw##.ltn_ad +http://ifeng.com##.luckybag +http://eic.org.cn##.lx-btm-box +http://163.com##.m-adv +http://hupu.com##.m-app-info +http://blog.163.com##.m-regGuideLayer.f-trans +http://163.com##.m-slider-footer +http://pclady.com.cn##.mdxyAppEnter +http://xdf.cn##.middleadv +http://ifeng.com##.mr_top_box +http://maiziedu.com##.msg +http://pinggu.org##.mui-mbar-tabs +http://3g.163.com##.ne_rps +http://koolearn.com##.news_pf +http://hao123.com##.newskin-tip +http://letv.com##.newyear_red_bot_wrap +http://letv.com##.newyear_red_wrap +http://douyu.com##.noble-up-guide +http://163.com##.ns-side-qrcode +http://ithome.com##.open-app-banner +http://baidu.com##.openAppCarsouselTpl +http://baidu.com##.openAppCommonTpl-100 +http://baidu.com##.openBox-shareEntry +http://csdn.net##.p4course_target +http://mobile.baidu.com##.p_fixed_lb +http://csdn.net##.padb0 +http://yamol.tw##.panel[style="text-align:left;width:100%;padding:0px;background-color:white"] +http://csdn.net##.panel_body > div[style^="position:fixed;bottom: 0;"] +http://iciba.com##.pc-entry +http://douyu.com##.pendant-wrap +http://jikexueyuan.com##.pewm2 +http://jikexueyuan.com##.pewm3 +http://mumu.163.com##.pic-con +http://17173.com##.pic[href*="Room"] +http://96weixin.com##.pop +http://longzhu.com##.pop-up-button +http://touzi.com##.pop720-bg +http://touzi.com##.pop720-box +http://ifanr.com##.popup-app-download +http://uisdc.com##.post-pm-content +http://zhiyoo.com##.prompt +http://csdn.net##.pulllog-box +http://qdmm.com,qidian.com##.qdRead_client +http://qdmm.com,qidian.com##.qdRead_redscan +http://tianya.cn##.qhb-Box +http://focus.cn##.qhb-fixed +http://wasu.cn##.qp +http://kuwo.cn##.qr_wrapper +http://qihoo.com##.qrcode +http://163.com##.quickmark +http://to8to.com##.quoted-outside +http://news.baidu.com##.recommend-animate +http://juejin.im##.recommend-box +http://m.babytree.com##.recommend-brand +http://m.babytree.com##.recommend-img-box +http://news.baidu.com##.recommend-mask +http://longzhu.com##.recommend-pop-up +http://m.toutiao.com##.recommendation-container + div[class] +http://dianyingbar.com##.recover +http://oschina.net##.recruitment +http://p2peye.com##.red-box +http://baixing.com##.red-package +http://baidu.com##.redenvelope-small +http://dajie.com##.register_layer +http://blog.51cto.com##.relatedArt.box +http://163.com##.rg_ad +http://itmo.com##.right-side-pop +http://setn.com##.rightFloat +http://baidu.com##.rmb-carsousel-position-bottom +http://baidu.com##.rmb-growth-common-tpl-1-wrapper +http://baidu.com##.s-news-banner-wrap +http://baidu.com##.s-tutorial-tip +http://baihe.com##.scrollULeft +http://baihe.com##.scrollUpf +http://koolearn.com##.show_ad +http://sina.com.cn##.side-btns-2wm +http://firefox.com.cn,firefoxchina.cn##.side-mod[track-key="side_tpth"] +http://babytree.com##.side-text-slider +http://hexun.com##.side618 +http://sogou.com##.side_adv_wrap +http://tianya.cn##.slider_box +http://56.com##.sohu-app +http://ctfile.com##.speedydown-info-box +http://jingyu.com##.stream-app +http://douyu.com##.summer_enter +http://co188.com##.suspen +http://51cto.com##.suspend +http://news.baidu.com##.swipe-backflow-container +http://miaopai.com,renren.com##.swiper-container +http://touzi.com##.tck-cover +http://sogou.com##.tg-box-1 +http://zhcw.com##.tgtc +http://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.thread_recommend +http://jiankang.com##.three_hot +http://pc841.com,zol.com.cn##.today-hot-layer +http://jianshu.com##.top +http://163.com,zybang.com##.top-banner +http://btime.com##.top-bar +http://sogou.com##.top_adv_wrap +http://zybang.com##.top_download +http://1111.baidu.com,jump.bdimg.com,tieba.baidu.com,tieba.com,xingqu.baidu.com##.topic_list_box +http://renren.com##.toplive +http://163.com##.topnav_ad +http://kuwo.cn##.tuiguang +http://hao123.com##.tvtip +http://163.com##.txt-bobo +http://yd.baidu.com##.ui-distribution-bar +http://51cto.com##.upopbg +http://letv.com##.vip_popBox +http://nen.com.cn##.w610 +http://wbiao.cn##.wb-panel +http://jrj.com.cn##.wbyy +http://cnbeta.com##.wdj_box +http://feng.com##.wea_d_panel_980 +http://hehagame.com##.webad_bottom +http://hehagame.com##.webad_right +http://kdslife.com,pchome.net##.weixin +http://to8to.com##.whan-ad +http://w3cschool.cn##.widget-main +http://m.babytree.com##.wrap > section[class*="0"],.wrap > div[class*="0"] +http://m.babytree.com##.wrap > section[class*="4"],.wrap > div[class*="4"] +http://m.babytree.com##.wrap > section[class*="9"],.wrap > div[class*="9"] +http://m.autohome.com.cn##.wrapper > section[class^="box_"] +http://yahoo.com##.wrapper-border > .Pos\(r\) > .VideoPlayer.D\(b\).Pos\(r\) +http://56.com##.x-download-panel +http://wallstreetcn.com##.xinren-wrapper +http://1010jiajiao.com##.xiti_content + .xiti +http://56.com##.xiu_mm +http://ifeng.com##.yc_con_r +http://8264.com##.zhidemaibox +http://zol.com.cn##.zolapp +http://1905.com##.zx-pic +http://1905.com##.zx-small-pic +http://m.babytree.com##a[class$="-join"] +http://m.56.com##a[data-statkey="newad_banner"] +http://loldk.com##a[href$=".html?from=video_right"] +http://ifeng.com##a[href*=".app"] +http://163.com##a[href*=".kaola.com"]:first-child:last-child +http://sina.com.cn##a[href="https://finance.sina.com.cn/mobile/comfinanceweb.shtml"] +http://crsky.com##a[href^="http://count."][href$=".exe"] +http://163.com,~love.163.com##a[href^="http://love.163.com/"] +http://ltn.com.tw##A[href*="draw.ltn.com.tw"] +http://baidu.com#?#.rec-item:-abp-has(> .vbox > div > .appad-relate-rectpl) +http://baijiahao.baidu.com,feed.baidu.com##body > div[id$="-container"]:last-child +http://cnbeta.com#?#div[style^="display:block !important;"] +http://cnbeta.com##div[style^="display:block !important;"] +http://dongao.com##div[class^="fu_"] +http://ifeng.com##div[class^="h"] > div[class$="-main"] +http://thenewslens.com##div[class^="help-tnl-container-"] +http://cntv.cn##div[class^="tchmk_"] +http://feng.com##div[class^="wea_d_"] +http://feng.com##div[class^="wep_e_"] +http://eastmoney.com##div[id^="em_important_"] +http://finance.sina.com.cn##div[id^="st01_cont0"] +http://ci123.com##div[onclick^="window.location="] +http://subhd.com##div[style="position:fixed;bottom:20px;left:20px;"] +http://xdf.cn##div[style="position:fixed;top:120px;left:4px;width:210px;height:298px;isplay:block;background-position:initial initial;background-repeat:no-repeat no-repeat;"] +http://fmdisk.com##div[style="width: 960px; margin: 0 auto; height:900px; color: #F00; font-size: 14px; text-align:left;"] > p +http://2cto.com##div[style^="float:left;width:300px;"] +http://ithome.com##div[style^="width:960px;height:60px;"] +http://m.babytree.com##script + a[class] +http://weibo.com###v6_pl_content_hometip +http://weibo.com###v6_pl_rightmod_attfeed +http://weibo.com###v6_pl_rightmod_noticeboard +http://weibo.com###v6_trustPagelet_recom_member +http://weibo.com###v6_pl_rightmod_rank +http://weibo.com##.S_txt1[nm="game"] +http://weibo.com##.WB_footer > .footer_link +http://weibo.com##.WB_footer > .other_link +http://weibo.com##.send_weibo > .title_area +http://weibo.com##div[node-type="recommendTopic"] +http://weibo.com##.W_tips.tips_warn +http://weibo.com##.WBIM_news +http://weibo.com###v6_pl_rightmod_updatev6 +http://weibo.com##.WB_main_r > div[style^="position: fixed;"] +http://weibo.com##.PCD_event_red2014 +http://weibo.com###v6_pl_rightmod_hongbaoentrance +http://weibo.com###v6_pl_rightmod_feedback +http://weibo.com###v6_pl_rightmod_helpat +http://weibo.com###v6_pl_rightmod_helpcomment +http://weibo.com###v6_pl_rightmod_helplike +http://weibo.com###v6_pl_rightmod_helpnotebox +http://weibo.com###v6_pl_rightmod_helpgroupchatnotice +http://weibo.com###v6_pl_rightmod_favyoudao +http://weibo.com###v6_pl_rightmod_helpfav +http://weibo.com###Pl_Core_P7MultiPicPlay__7 +http://weibo.com##.apps_PCD_reco_detail_right +httpcn.com###ie6fixedTL +! ******************************* koolproxy 语法******************************* +! 一行一个,请必须标注清楚http与https +! https 必须为域名,不能使用 * 不然会GG的。 +! 例如 ||users.51.la^$third-party 写成 ||http://users.51.la^$third-party 即可。只需要在 +! "!" 为行注释符,注释行以该符号起始作为一行注释语义,用于规则描述 +! "@@" 为白名单符,白名单具有最高优先级,放行过滤的网站,https 需要四个 @@@@ 例如:@@@@||https://taobao.com +! ------------------------------------------------------------------------------------------ +! "*" 为字符通配符,能够匹配0长度或任意长度的字符串,该通配符不能与正则语法混用。 +! "^" 为分隔符,可以是除了字母、数字或者 _ - . % 之外的任何字符。 +! "~" 为排除标识符,通配符能过滤大多数广告,但同时存在误杀, 可以通过排除标识符修正误杀链接。 +! 注:通配符仅在 url 规则中支持,html 规则中不支持 +! ------------------------------------------------------------------------------------------ +! "|" 为管线符号,来表示地址的最前端或最末端 +! "||" 为子域通配符,方便匹配主域名下的所有子域 +! ------------------------------------------------------------------------------------------- +!驱动之家 首页广告 +https://news.mydrivers.com###dangbei_down > IMG +https://news.mydrivers.com###aswift_1 +!驱动之家 去广告补充(去空白页,页面更美观) +||https://news.mydrivers.com##.baidu_left > .adsbygoogle +||https://news.mydrivers.com##.news_right > div:nth-of-type(2) +||https://news.mydrivers.com##div.side_ad_top.ad_warp:nth-of-type(8) +||https://news.mydrivers.com###taobao_add > div:nth-of-type(3) +||https://news.mydrivers.com##.news_left > div:nth-of-type(5) +||https://news.mydrivers.com##.news_info > div:nth-of-type(5) +||https://news.mydrivers.com##.news_info > div:nth-of-type(6) +||https://news.mydrivers.com###taobao_add +||http://www.mydrivers.com##.main_right > div:nth-of-type(3) +||http://www.mydrivers.com##body > div:nth-of-type(11) +||http://www.mydrivers.com##div:nth-of-type(13) +||http://www.mydrivers.com##div:nth-of-type(17) +||http://www.mydrivers.com##body > div:nth-of-type(7) +||https://googlesyndication.com^$third-party +||https://tanx.com^$third-party,domain=~1688.com|~alimama.com|~taobao.com|~tmall.com +! 2 +||mydrivers.com##div[class="baidu"],[style="width:580px;margin:auto; padding:10px 0"],[style="padding:4px 0;"],[id^="mynews"],[class="ad_warp side_ad_top"],[class="ad_warp side_ad_top"],ins[class="adsbygoogle"],[class="taobao_add"],[style="padding:3px 0;"],[id="a_showhotnews_list_dia"] +||mydrivers.com$s@@
@ +||mydrivers.com$s@style="width:728px; height:90px;@style="width:0px; height:0px;@ +||https://mydrivers.com##div[class="baidu"],[style="width:580px;margin:auto; padding:10px 0"],[style="padding:4px 0;"],[id^="mynews"],[class="ad_warp side_ad_top"],[class="ad_warp side_ad_top"],ins[class="adsbygoogle"],[class="taobao_add"],[style="padding:3px 0;"],[id="a_showhotnews_list_dia"] +||https://mydrivers.com$s@
@
@ +||https://mydrivers.com$s@style="width:728px; height:90px;@style="width:0px; height:0px;@ +!btbtt 首页广告 +http://*btbtt.*##.wrapper_bg_c.hidden-xs +http://*btbtt.*###wrapper_right_bg +|http://*btbtt.*/view/image/QT_* +http://*btbtt.*###wrapper_left_bg +http://*btbtt.*###wrapper2 > DIV.width:nth-child(2) > DIV.error +||http://www.btbtt.co/view/image/QT_QT.jpg$image +http://www.btbtt.co###wrapper_right_bg +http://www.btbtt.co###wrapper_left_bg +||http://www.btbtt.co##div.width:nth-of-type(2) +||http://*btbtt.*/slade.js +!天天美剧 +http://ttmeiju.me##DIV:nth-child(2) > P > A > IMG +http://ttmeiju.me###footer > DIV:first-child > P > IMG +! 谷歌网盘放行 +@@@@|https://drive.google.com +! macx.cn +@@@@|https://www.macx.cn +! 直播吧 +||https://pcgg.qiumibao.com/webAdvert.php$subdocument +https://www.zhibo8.cc##.ad_box_250 +https://www.zhibo8.cc###popautoapp +! 5173首页补充去广告 +||http://www.5173.com##body > .top +||http://www.5173.com##.gg_130 > .close_btn +||http://www.5173.com###ggFloat > .inner +||http://www.5173.com##.gt-wrapimg-signin +! 巨超值 去下方弹框 +||https://best.pconline.com.cn###JnoLoginFixedBottom +! 斗鱼去播放器解码弹窗广告 +https://www.douyu.com##.LotteryContainer +https://www.douyu.com##.UPlayerLotteryEnter-giftImg +https://www.douyu.com##.is-baodeng.is-active.UPlayerLotteryEnter +https://www.douyu.com##.PaladinWeek-toast +https://www.douyu.com##.closeBg-998534 +||https://www.douyu.com##.PaladinWeek-toast +! 游侠游戏论坛 去首页上方广告 +||http://game.ali213.net###wp > div:nth-of-type(1) +||http://game.ali213.net###hd_ad +! 豆瓣电影搜索 +@@@@|https://erebor.douban.com +! 115部分放行 +@@@@https://uplb.115.com +@@@@https://home.115.com +@@@@https://fhnfile.oss-cn-shenzhen.aliyuncs.com +@@@@https://webapi.115.com +@@@@https://115.com +@@@@https://cdnres.115.com +! MIUI骚扰拦截库更新功能放行 +@@@@https://api.sec.miui.com +!微博分享图片放行 +@@@@||https://sinaimg.cn +! jsdelivr放行 +@@@@||https://cdn.jsdelivr.net +! 小米电视去广告 ------------------ 来自网友分享---------------------------- +||http://package.box.xiaomi.com +||https://package.box.xiaomi.com +||package.box.xiaomi.com +@@http://cesu.cdn.pandora.xiaomi.com +@@http://b0.market.xiaomi.com +@@@@https://cesu.cdn.pandora.xiaomi.com +@@@@https://b0.market.xiaomi.com +@@http://pandora.mi.com +||market.mi-img.com +||http://market.mi-img.com +||https://market.mi-img.com +||ad.mi.com +||ad.xiaomi.com +||http://ad.mi.com +||http://ad.xiaomi.com +||https://ad.mi.com +||https://ad.xiaomi.com +||ad1.xiaomi.com +||http://ad1.xiaomi.com +||https://ad1.xiaomi.com +||o2o.api.xiaomi.com +||pandora.mi.com +||pandora.xiaomi.com +||http://o2o.api.xiaomi.com +||http://pandora.mi.com +||http://pandora.xiaomi.com +||https://o2o.api.xiaomi.com +||https://pandora.mi.com +||https://pandora.xiaomi.com +||data.mistat.xiaomi.com +||tracking.miui.com +||http://data.mistat.xiaomi.com +||http://tracking.miui.com +||https://data.mistat.xiaomi.com +||https://tracking.miui.com +!播放出现问题时 可以删减 此区域的 Host 地址 +||http://img.cdn.mvideo.xiaomi.com +||img.cdn.mvideo.xiaomi.com +||https://img.cdn.mvideo.xiaomi.com +!===== 通用型:广告投放商 拦截规则 所有电视都可以用 ==== +!友盟+ +||http://umeng.com +||https://umeng.com +||umeng.com +!酷云监播 +||http://ikuyun.com +||https://ikuyun.com +||kuyun.com +!广东南方新媒体股份 +||http://atianqi.com +||https://atianqi.com +||atianqi.com +@@@@https://tv.aiseet.atianqi.com +@@http://tv.aiseet.atianqi.com +@@http://vv.play.aiseet.atianqi.com +@@@@https://vv.play.aiseet.atianqi.com +@@@@https://e.crashlytics.com +@@http://e.crashlytics.com +!银河互联网电视 +||auth.api.gitv.tv +||appstore.ptmi.gitv.tv +||gamecenter.ptmi.gitv.tv +@@http://pl.cp31.ott.cibntv.net +! 上海贞安精硕广告有限公司 +||admaster.com.cn +||v.admaster.com.cn +||79t2.admaster.com.cn +||397c0.admaster.com.cn +! 小米电视去广告结束 -------------------- 分享结束-------------- +! speedtest.cn (国内) +@@@@https://forge.speedtest.cn +! 一个看电视剧的网站 +||https://yueyuju.com##.tp_reccomend_banner,[style="margin:8px 0;box-shadow: 0 1px 2px rgba(0,0,0,0.2);"],[ id="HMDownBox" ],[style="height: auto;"] +|https://iek.jiekc.com +! 远景论坛 +||bbs.pcbeta.com$s@{width:980px; position:relative; height:171px; padding:10px;@{width:0px; position:relative; height:0px; padding:0px;@ +||bbs.pcbeta.com$s@{padding:9px;width:980px;height:4??px;@{padding:9px;width:980px;height:260px;@ +! 淘宝,天猫其余部分域名放行 +@@@@https://ecpm.tanx.com +@@@@https://g.alicdn.com +@@@@https://img.alicdn.com +! paypal API放行 +@@@@https://api-m.paypal.com +!百度网盘登录 +@@@@https://passport.baidu.com +@@@@https://pan.baidu.com +@@@@https://d.pcs.baidu.com +!支付宝苹果设备放行 +@@@@https://mygw.alipay.com +!微信公众号放行 +@@@@https://mmbiz.qpic.cn +@@@@https://mp.weixin.qq.com +! IT之家 +@@@@https://api.ithome.com +@@@@https://dyn.ithome.com +! 小说网站补充 +|http://m.quduwv.com/17mb/script/wap* +|http://m.quduwv.com/yukeqwer +! PSN CDN放行 +@@@@https://gss0.bdstatic.com +@@@@https://gss1.bdstatic.com +@@@@https://id.sonyentertainmentnetwork.com +! 腾讯云开发者平台 +@@@@https://dev.tencent.com +¡ 淘宝优惠券及苏宁签到 +@@@@https://dcbpm.suning.cn +@@@@https://temai.m.taobao.com +! 23us小说网 +||https://t5i0pb.cn +|https://m.x23us.com/wap/ajax.js +|https://m.x23us.com/wap/read.js +! 网易 +||https://www.163.com##div[class^="mod_index_ad"],[class^="mod_r_ad"],[class^="hp_textlink_ad"],[class^="mod_ad_text"],[class^="head_ad"],[class="yc_ft"] +! 360杀毒更新 +@@http://sdup.update.360safe.com +@@@@https://sdup.update.360safe.com +! 建设银行app登录放行 +@@@@https://ibsbjstar.ccb.com.cn +! 迅雷登录放行 +!只看小姐姐, [6/2/19, 11:09 AM] +@@@@https://mobile-login.xunlei.com +!只看小姐姐, [6/2/19, 11:09 AM] +@@@@https://mobile-login-2.xunlei.com +!只看小姐姐, [6/2/19, 11:09 AM] +@@@@https://mobile-login-3.xunlei.com +!阿里云搜索放行 +!只看小姐姐, [6/2/19, 12:12 PM] +@@@@https://oa-panther.data.aliyun.com +!只看小姐姐, [6/2/19, 12:15 PM] +@@@@https://promotion.aliyun.com +! LOFTER(乐乎) 无法显示登陆框 +@@http://urswebzj.nosdn.127.net +@@http://analytics.163.com +! v2ex.com +![In reply to 白告] +||https://v2ex.com###Rightbar > DIV.box:nth-child(4) +||https://v2ex.com###Rightbar > DIV.box:nth-child(6) +||https://v2ex.com###Rightbar > DIV.sep20:nth-child(5) +||https://v2ex.com###Rightbar > DIV.sep20:nth-child(3) +||https://v2ex.com###Wrapper > DIV.content > DIV.box:last-child +! 快递100放行 +@@@@||https://p.kuaidi100.com +! 谷歌云gcp日志放行 +!只看小姐姐, [6/10/19, 11:38 PM] +@@@@https://console.cloud.google.com +!只看小姐姐, [6/10/19, 11:39 PM] +@@@@||https://clients6.google.com +!网易我的世界客户端, [6/11/19, 00:46 AM] +@@@@||https://netease.com +!ios谷歌相册备份放行 +@@@@|https://photos.googleapis.com +! 126 163邮箱放行 +!只看小姐姐, [6/16/19, 10:27 PM] +@@@@||https://126.com + +!只看小姐姐, [6/16/19, 10:27 PM] +@@@@||https://163.com +!游民星空 +||https://ja1.gamersky.com +||https://ja2.gamersky.com +||https://gamersky.com##div[class="ad_r"],[class="MidR_ad"] +!恩山 +||https://right.com.cn##.a_t,div#diy1.area,div.a_p,div.a_pr,DIV.column.frame-1-c,div.wp.a_f,div.a_cn,.a_mu,.a_pt,.a_pb,div.wp.a_h +||https://right.com.cn##img[src^="static/image/common/logo2.gif"] +||https://right.com.cn/logo/*.gif$image +!威锋 +|https://bbs.feng.com##DIV[class="wrap"],[class^="a_pt"] +! 简书广告 +||https://jianshu.com###web-note-ad-fixed +||https://jianshu.com###web-note-ad-1 +||https://jianshu.com##div[class="recommended-author-wrap"] +||https://static.thefifthera.com/h5/wapSdk/asset/sdk +||https://jianshu.com###recommended-notes +! YouTube 网页版 +||https://youtube.com###masthead-ad +||https://youtube.com/youtubei/v1/log_event +|https://googleads.g.doubleclick.net/pagead/id +||https://youtube.com/get_midroll_info +||https://youtube.com/youtubei/v1/log_event +||https://googleads.g.doubleclick.net/pagead/ads +! 百度文库去广告 +||https://baidu.com/xpage/interface/get +||https://eduad.baidu.com^ +||https://wk.baidu.com##div[class="bottom-bar-global"] +||https://cpro.baidustatic.com^ +|https://wkstatic.bdimg.com/static/wkview/widget/ad +|https://wenku.baidu.com/view$s@/third_party/fengchao_plugin@/third_party@ +|https://wk.baidu.com/view$s@component/foldPage@component@ +! 手机百度首页去广告 +|https://www.baidu.com##div[class="center-content"] +|https://m.baidu.com##div[class="center-content"] +|https://m.baidu.com###index-box +|https://www.baidu.com###index-box +|https://www.baidu.com##div[class="baiduappcall-wrap"] +|https://m.baidu.com##div[class="baiduappcall-wrap"] +|https://www.baidu.com###header > div:nth-child(7) > div +|https://m.baidu.com###header > div:nth-child(7) > div +|https://www.baidu.com##.index-banner.square-banner-icon +|https://www.baidu.com###index-card > div.blank-frame +! 新浪邮箱 +||https://mail.sina.com.cn##div[class="connMod"] +||https://mail.sina.com.cn##div[class="ad1"] +||https://mail.sina.com.cn##div[class="extendAd"] +! 草榴社区 去除60秒等待 去除连接30秒等待,去除广告屏蔽不显示内容(kpr原则上不过滤黄网广告,但是草榴曾经封了我三个月的账号,得罪了方丈还想跑?) +||http://t66y.com$s@r2aeadS(){@noads(){@ +||https://t66y.com$s@r2aeadS(){@noads(){@ +||https://cnzz.com^$third-party +||http://cnzz.com^$third-party +||http://viidii.info$s@if(waittime==0)@if(waittime==29)@ +||https://viidii.info$s@if(waittime==0)@if(waittime==29)@ +||http://t66y.com##div[class^="tpc_icon"] +||https://t66y.com##div[class^="tpc_icon"] +||http://t66y.com##div[class^="sptable_do"] +||https://t66y.com##div[class^="sptable_do"] +||http://viidii.info/web$s@JSON.parse(spJson);@noad@ +||https://viidii.info/web$s@JSON.parse(spJson);@noad@ +||http://viidii.info/web$s@spinit(){@noad(){@ +||https://viidii.info/web$s@spinit(){@noad(){@ +||https://viidii.info/web$s@if(cnt!=1){@if(1!=1){@ +||http://viidii.info/web$s@if(cnt!=1){@if(1!=1){@ +!fodm +||fodm.net/$s@solid;width:960px;height:90px@solid;width:0px;height:0px@ +||https://vip.51hyper.com +||fodm.net/##div[class="m-ads"] +||fodm.net/###content_box_60090 +||fodm.net/###content_box_72890_out +||fodm.net/###forum_btn +|https://og.ylxxf.top +!站长之家 +||https://chinaz.com##div[id^="side-media"] +||https://chinaz.com##div[id^="content-media"] +||https://chinaz.com###toolsIntro +||https://chinaz.com###head > div.main.pr > div.CClose +||https://chinaz.com###bgad +||https://chinaz.com$s@style="margin-top:80px;"@style="margin-top:0px;"@ +||https://chinaz.com##div.wrapper.ptb10.mt10,div.txtAdBox.mb10,div.adtext,div.recommendsoft,div.plate-layout.img_wrap_l.goTop,div.red,div.adbox,div[class^="mb"],div#loc.Mnav-right02.fr,div.CClose,div#topTxt.fr.topTsRight.ml10,div#bottomImg.fotatxtd.auto +||http://chinaz.com##div[id^="side-media"] +||http://chinaz.com##div[id^="content-media"] +||http://chinaz.com###toolsIntro +||http://chinaz.com###head > div.main.pr > div.CClose +||http://chinaz.com###bgad +||http://chinaz.com$s@style="margin-top:80px;"@style="margin-top:0px;"@ +||http://chinaz.com##div.wrapper.ptb10.mt10,div.txtAdBox.mb10,div.adtext,div.recommendsoft,div.plate-layout.img_wrap_l.goTop,div.red,div.adbox,div[class^="mb"],div#loc.Mnav-right02.fr,div.CClose,div#topTxt.fr.topTsRight.ml10,div#bottomImg.fotatxtd.auto +! 百度搜索广告 +@@@@https://ss1.bdstatic.com +|https://ss1.bdstatic.com/*/r/www/cache/static/protocol/https/global/js +! 殁漂遥 +||https://mpyit.com###sidebar > div > div[class="box"] +||https://mpyit.com/$s@

合作伙伴

@@ +! 91wii +||https://91wii.com##img[id^="img_"],div[class^="a_"],[style^="display:inline-block;"] +! 蓝点网 +||https://landiannews.com##section[class="ad"],div[class="NOTICE"],div[id^="metaslider_container"],ins[class="adsbygoogle"],section[id^="metaslider_widget"],div[class="slider-wrapper theme-default"],section[id^="custom_html"],section[id^="media_image"] +! 搜狗输入法 +@@http://config.pinyin.sogou.com +!baidu贴吧 +!|https://tieba.baidu.com/$s@
+ + + + + +
+
+
+
    +
  • <%_0 hosts%>
  • +
  • <%_0 download%>
  • +
  • <%_0 upload%>
  • +
  • <%_0 connections%>
  • +
+
+
+ + + + + + + + +
<%:Host%><%:MAC%><%:Connections%><%:Download (Bytes / Packets)%><%:Upload (Bytes / Packets)%>
+
+ + + + + + + +<%+footer%> diff --git a/package/ctcgfw/luci-app-onliner/luasrc/view/onliner/onliner.htm b/package/ctcgfw/luci-app-onliner/luasrc/view/onliner/onliner.htm new file mode 100644 index 0000000000..b6d9f3d9ff --- /dev/null +++ b/package/ctcgfw/luci-app-onliner/luasrc/view/onliner/onliner.htm @@ -0,0 +1,99 @@ +<%# + Copyright 2008 Steven Barth + Copyright 2008-2011 Jo-Philipp Wich + Licensed to the public under the Apache License 2.0. +-%> + +<% +local util = require "luci.util" +local function online_data() + local rv = { } + local fd = util.execi('/usr/bin/awk \'BEGIN{while ((getline < "/tmp/dhcp.leases") > 0){a[$2]=$4;}while ((getline < "/proc/net/arp") > 0){if (!a[$4]){a[$4]="\?";}if (match($3,"0x[26]")){"ping -q -c 1 "$1" &";if (b[$4]){b[$4]=b[$4]"/"$1;}else{b[$4]=$1;}c[$4]=$6;}}while (("ip -6 neighbor show | grep -v fe80" | getline) > 0){if (b[$5]) {"ping -q -c 1 "$1" &";b[$5]=b[$5]"/"$1;}}for (mac in b){print(a[mac],b[mac],mac,c[mac]);}}\' ') + while true do + local ln = fd() + if ln == nil then break end + local name,ip,mac,dev = ln:match("^(%S+) (%S+) (%S+) (%S+)") + if mac and ip and name and dev then + rv[#rv+1] = { + hostname = name, + device = dev, + macaddr = mac, + ipaddr = ip + } + end + end + return rv +end + + +if luci.http.formvalue("status") == "1" then + local rv = { + onlines = online_data() + } + luci.http.prepare_content("application/json") + luci.http.write_json(rv) + return +end +-%> + +<%+header%> + + + + +

<%:Status%>

+ +
+ <%:Online User%> + + + + + + + + + + + +
<%:Hostname%><%:IPv4-Address%><%:MAC-Address%><%:Interface%>

<%:Collecting data...%>
+
+ +<%+footer%> diff --git a/package/ctcgfw/luci-app-onliner/po/zh-cn/onliner.po b/package/ctcgfw/luci-app-onliner/po/zh-cn/onliner.po new file mode 100644 index 0000000000..2c858f6539 --- /dev/null +++ b/package/ctcgfw/luci-app-onliner/po/zh-cn/onliner.po @@ -0,0 +1,14 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8\n" + +msgid "Connection info" +msgstr "连接信息" + +msgid "Online User" +msgstr "在线用户" + +msgid "Speed monitor" +msgstr "宽带监视" + +msgid "There is no one online now." +msgstr "当前无任何设备在线。" diff --git a/package/ctcgfw/luci-app-onliner/root/usr/share/onliner/setnlbw.sh b/package/ctcgfw/luci-app-onliner/root/usr/share/onliner/setnlbw.sh new file mode 100755 index 0000000000..cd49e40b48 --- /dev/null +++ b/package/ctcgfw/luci-app-onliner/root/usr/share/onliner/setnlbw.sh @@ -0,0 +1,20 @@ +#!/bin/sh +PATH="/usr/sbin:/usr/bin:/sbin:/bin" +echo "1">/var/run/onsetnlbw +interval=$(uci get nlbwmon.@nlbwmon[0].refresh_interval) +uci set nlbwmon.@nlbwmon[0].refresh_interval="2s" +/etc/init.d/nlbwmon reload +while true +do + sleep 12 + watchdog=$(cat /var/run/onsetnlbw) + if [ "$watchdog"x == "0"x ]; then + uci set nlbwmon.@nlbwmon[0].refresh_interval=$interval + uci commit nlbwmon + /etc/init.d/nlbwmon reload + rm -f /var/run/onsetnlbw + exit 0 + else + echo "0">/var/run/onsetnlbw + fi +done diff --git a/package/ctcgfw/luci-app-openclash/Makefile b/package/ctcgfw/luci-app-openclash/Makefile new file mode 100644 index 0000000000..c09597b7ea --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/Makefile @@ -0,0 +1,156 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=luci-app-openclash +PKG_VERSION:=0.36.2 +PKG_RELEASE:=beta +PKG_MAINTAINER:=vernesong + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) + +include $(INCLUDE_DIR)/package.mk + +define Package/$(PKG_NAME) + CATEGORY:=LuCI + SUBMENU:=3. Applications + TITLE:=LuCI support for clash + PKGARCH:=all + DEPENDS:=+iptables +dnsmasq-full +coreutils +coreutils-nohup +bash +wget + MAINTAINER:=vernesong +endef + +define Package/$(PKG_NAME)/description + A LuCI support for clash +endef + +define Package/$(PKG_NAME)/postinst +endef + +define Build/Prepare + $(foreach po,$(wildcard ${CURDIR}/i18n/zh-cn/*.po), \ + po2lmo $(po) $(PKG_BUILD_DIR)/$(patsubst %.po,%.lmo,$(notdir $(po)));) + chmod 0755 ${CURDIR}/files/etc/init.d/openclash + chmod -R 0755 ${CURDIR}/files/usr/share/openclash/ + mkdir -p ${CURDIR}/files/etc/openclash/config >/dev/null 2>&1 + mkdir -p ${CURDIR}/files/etc/openclash/proxy_provider >/dev/null 2>&1 + mkdir -p ${CURDIR}/files/etc/openclash/backup >/dev/null 2>&1 +endef + +define Build/Configure +endef + +define Build/Compile +endef + +define Package/$(PKG_NAME)/preinst +#!/bin/sh +if [ -f "/etc/config/openclash" ]; then + cp "/etc/config/openclash" "/tmp/openclash.bak" >/dev/null 2>&1 + cp "/etc/config/openclash_custom_rules.list" "/tmp/openclash_custom_rules.list.bak" >/dev/null 2>&1 + cp "/etc/config/openclash_custom_hosts.list" "/tmp/openclash_custom_hosts.list.bak" >/dev/null 2>&1 + cp "/etc/config/openclash_custom_fake_black.conf" "/tmp/openclash_custom_fake_black.conf.bak" >/dev/null 2>&1 +fi +if [ -f "/etc/openclash/custom/openclash_custom_rules.list" ]; then + cp "/etc/openclash/custom/openclash_custom_rules.list" "/tmp/openclash_custom_rules.list.bak" >/dev/null 2>&1 + cp "/etc/openclash/custom/openclash_custom_hosts.list" "/tmp/openclash_custom_hosts.list.bak" >/dev/null 2>&1 + cp "/etc/openclash/custom/openclash_custom_fake_black.conf" "/tmp/openclash_custom_fake_black.conf.bak" >/dev/null 2>&1 +fi +endef + +define Package/$(PKG_NAME)/postinst +#!/bin/sh +uci delete ucitrack.@openclash[-1] >/dev/null 2>&1 +uci add ucitrack openclash >/dev/null 2>&1 +uci set ucitrack.@openclash[-1].init=openclash >/dev/null 2>&1 +uci commit ucitrack >/dev/null 2>&1 +uci delete firewall.openclash >/dev/null 2>&1 +uci set firewall.openclash=include >/dev/null 2>&1 +uci set firewall.openclash.type=script >/dev/null 2>&1 +uci set firewall.openclash.path=/var/etc/openclash.include >/dev/null 2>&1 +uci set firewall.openclash.reload=1 >/dev/null 2>&1 +uci commit firewall >/dev/null 2>&1 +mkdir -p /etc/openclash/config >/dev/null 2>&1 +mkdir -p /etc/openclash/proxy_provider >/dev/null 2>&1 +mkdir -p /etc/openclash/backup >/dev/null 2>&1 +if [ -f "/tmp/openclash.bak" ]; then + mv "/tmp/openclash.bak" "/etc/config/openclash" >/dev/null 2>&1 + mv "/tmp/openclash_custom_rules.list.bak" "/etc/openclash/custom/openclash_custom_rules.list" >/dev/null 2>&1 + mv "/tmp/openclash_custom_hosts.list.bak" "/etc/openclash/custom/openclash_custom_hosts.list" >/dev/null 2>&1 + mv "/tmp/openclash_custom_fake_black.conf.bak" "/etc/openclash/custom/openclash_custom_fake_black.conf" >/dev/null 2>&1 +fi +if [ -f "/tmp/config.yaml" ]; then + mv "/tmp/config.yaml" "/etc/openclash/config/config.yaml" >/dev/null 2>&1 +elif [ -f "/tmp/config.yml" ]; then + mv "/tmp/config.yml" "/etc/openclash/config/config.yaml" >/dev/null 2>&1 +elif [ -d "/tmp/openclash_config/" ]; then + rm -rf "/etc/openclash/config" >/dev/null 2>&1 + mv "/tmp/openclash_config" "/etc/openclash/config" >/dev/null 2>&1 +fi +if [ -d "/tmp/openclash_proxy_provider/" ]; then + rm -rf "/etc/openclash/proxy_provider" >/dev/null 2>&1 + mv "/tmp/openclash_proxy_provider" "/etc/openclash/proxy_provider" >/dev/null 2>&1 +fi +if [ -d "/tmp/openclash_game_rules/" ]; then + rm -rf "/etc/openclash/game_rules" >/dev/null 2>&1 + mv "/tmp/openclash_game_rules" "/etc/openclash/game_rules" >/dev/null 2>&1 +fi +mkdir -p /lib/upgrade/keep.d >/dev/null 2>&1 +cat > "/lib/upgrade/keep.d/luci-app-openclash" <<-EOF +/etc/openclash/custom/ +EOF +uci set openclash.config.enable=0 >/dev/null 2>&1 +uci commit openclash >/dev/null 2>&1 +chmod 0755 /etc/init.d/openclash >/dev/null 2>&1 +chmod -R 0755 /usr/share/openclash/ >/dev/null 2>&1 +rm -rf /tmp/luci* +endef + +define Package/$(PKG_NAME)/prerm +#!/bin/sh +if [ ! -f "/tmp/openclash_update.sh" ]; then + rm -rf /etc/openclash/clash >/dev/null 2>&1 +fi + mv "/etc/openclash/config.yaml" "/tmp/config.yaml" >/dev/null 2>&1 + mv "/etc/openclash/config" "/tmp/openclash_config" >/dev/null 2>&1 + mv "/etc/openclash/proxy_provider" "/tmp/openclash_proxy_provider" >/dev/null 2>&1 + mv "/etc/openclash/game_rules" "/tmp/openclash_game_rules" >/dev/null 2>&1 + cp "/etc/config/openclash" "/tmp/openclash.bak" >/dev/null 2>&1 + cp "/etc/config/openclash_custom_rules.list" "/tmp/openclash_custom_rules.list.bak" >/dev/null 2>&1 + cp "/etc/config/openclash_custom_hosts.list" "/tmp/openclash_custom_hosts.list.bak" >/dev/null 2>&1 + cp "/etc/config/openclash_custom_fake_black.conf" "/tmp/openclash_custom_fake_black.conf.bak" >/dev/null 2>&1 + cp "/etc/openclash/custom/openclash_custom_rules.list" "/tmp/openclash_custom_rules.list.bak" >/dev/null 2>&1 + cp "/etc/openclash/custom/openclash_custom_hosts.list" "/tmp/openclash_custom_hosts.list.bak" >/dev/null 2>&1 + cp "/etc/openclash/custom/openclash_custom_fake_black.conf" "/tmp/openclash_custom_fake_black.conf.bak" >/dev/null 2>&1 +endef + +define Package/$(PKG_NAME)/postrm +#!/bin/sh +if [ -f "/etc/openclash/clash" ]; then + rm -rf /etc/openclash/config >/dev/null 2>&1 + rm -rf /etc/openclash/backup >/dev/null 2>&1 + rm -rf /etc/openclash/proxy_provider >/dev/null 2>&1 + rm -rf /etc/openclash/game_rules >/dev/null 2>&1 +else + rm -rf /etc/openclash >/dev/null 2>&1 +fi + rm -rf /lib/upgrade/keep.d/luci-app-openclash >/dev/null 2>&1 + rm -rf /tmp/openclash.log >/dev/null 2>&1 + rm -rf /tmp/openclash_start.log >/dev/null 2>&1 + rm -rf /tmp/Proxy_Group >/dev/null 2>&1 + rm -rf /tmp/rules_name >/dev/null 2>&1 + rm -rf /tmp/openclash_last_version >/dev/null 2>&1 + rm -rf /tmp/clash_last_version >/dev/null 2>&1 + rm -rf /etc/openclash/dnsmasq_fake_block.conf >/dev/null 2>&1 + uci delete firewall.openclash >/dev/null 2>&1 + uci commit firewall >/dev/null 2>&1 + uci delete ucitrack.@openclash[-1] >/dev/null 2>&1 + uci commit ucitrack >/dev/null 2>&1 + rm -rf /tmp/luci* +endef + +define Package/$(PKG_NAME)/install + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/i18n + $(INSTALL_DATA) $(PKG_BUILD_DIR)/*.*.lmo $(1)/usr/lib/lua/luci/i18n/ + $(CP) ./files/* $(1)/ +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/package/ctcgfw/luci-app-openclash/files/etc/config/openclash b/package/ctcgfw/luci-app-openclash/files/etc/config/openclash new file mode 100644 index 0000000000..200d01265a --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/etc/config/openclash @@ -0,0 +1,58 @@ + +config openclash 'config' + option proxy_port '7892' + option enable '0' + option update '0' + option en_mode '0' + option auto_update '0' + option auto_update_time '0' + option cn_port '9090' + option dashboard_password '123456' + option rule_source '0' + option enable_custom_dns '0' + option ipv6_enable '0' + option enable_custom_clash_rules '0' + option other_rule_auto_update '0' + option core_version '0' + option en_mode 'redir-host' + option enable_redirect_dns '1' + option dns_advanced_setting '0' + option servers_if_update '0' + option disable_masq_cache '0' + option servers_update '0' + option log_level 'silent' + option proxy_mode 'Rule' + option intranet_allowed '0' + +config dns_servers + option group 'nameserver' + option type 'udp' + option ip '114.114.114.114' + option enabled '0' + +config dns_servers + option group 'nameserver' + option type 'udp' + option ip '119.29.29.29' + option enabled '0' + +config dns_servers + option ip '8.8.8.8' + option port '853' + option type 'tls' + option enabled '0' + option group 'fallback' + +config dns_servers + option ip '1.1.1.1/dns-query' + option type 'https' + option port '443' + option enabled '0' + option group 'fallback' + +config dns_servers + option ip '1.1.1.1' + option port '853' + option type 'tls' + option enabled '0' + option group 'fallback' diff --git a/package/ctcgfw/luci-app-openclash/files/etc/init.d/openclash b/package/ctcgfw/luci-app-openclash/files/etc/init.d/openclash new file mode 100755 index 0000000000..c0a464da6f --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/etc/init.d/openclash @@ -0,0 +1,946 @@ +#!/bin/sh /etc/rc.common +# Copyright (c) 2019 vernesong + +START=99 +STOP=15 + + +CLASH="/etc/openclash/clash" +CLASH_CONFIG="/etc/openclash" +CRON_FILE="/etc/crontabs/root" +CONFIG_FILE=$(uci get openclash.config.config_path 2>/dev/null) +LOG_FILE="/tmp/openclash.log" +START_LOG="/tmp/openclash_start.log" +BACKUP_FILE="/etc/openclash/backup/$(uci get openclash.config.config_path |awk -F '/' '{print $5}' 2>/dev/null)" +START_BACKUP="/tmp/config.sbak" +CHANGE_FILE="/tmp/yaml_change.yaml" +RULE_FILE="/tmp/yaml_rules.yaml" +DNS_FILE="/tmp/yaml_dns.yaml" +PROXY_FILE="/tmp/yaml_proxy.yaml" +PROXY_PROVIDER_FILE="/tmp/yaml_proxy_provider.yaml" +GROUP_FILE="/tmp/yaml_group.yaml" +GAME_RULE_FILE="/tmp/yaml_game_rule_group.yaml" +HOSTS_FILE="/etc/openclash/custom/openclash_custom_hosts.list" +PROXY_FWMARK="0x162" +PROXY_ROUTE_TABLE="0x162" + +add_cron() +{ + [ -z "$(grep "openclash.sh" "$CRON_FILE" 2>/dev/null)" ] && { + [ "$(uci get openclash.config.auto_update 2>/dev/null)" -eq 1 ] && echo "0 $(uci get openclash.config.auto_update_time 2>/dev/null) * * $(uci get openclash.config.config_update_week_time 2>/dev/null) /usr/share/openclash/openclash.sh" >> $CRON_FILE + } + [ -z "$(grep "openclash_rule.sh" "$CRON_FILE" 2>/dev/null)" ] && { + [ "$(uci get openclash.config.other_rule_auto_update 2>/dev/null)" -eq 1 ] && echo "0 $(uci get openclash.config.other_rule_update_day_time 2>/dev/null) * * $(uci get openclash.config.other_rule_update_week_time 2>/dev/null) /usr/share/openclash/openclash_rule.sh" >> $CRON_FILE + } + [ -z "$(grep "openclash_ipdb.sh" "$CRON_FILE" 2>/dev/null)" ] && { + [ "$(uci get openclash.config.geo_auto_update 2>/dev/null)" -eq 1 ] && echo "0 $(uci get openclash.config.geo_update_day_time 2>/dev/null) * * $(uci get openclash.config.geo_update_week_time 2>/dev/null) /usr/share/openclash/openclash_ipdb.sh" >> $CRON_FILE + } + crontab $CRON_FILE + nohup /usr/share/openclash/openclash_watchdog.sh & +} + +del_cron() +{ + sed -i '/openclash.sh/d' $CRON_FILE 2>/dev/null + sed -i '/openclash_rule.sh/d' $CRON_FILE 2>/dev/null + sed -i '/openclash_ipdb.sh/d' $CRON_FILE 2>/dev/null + /etc/init.d/cron restart +} + +change_dns() { + if [ "$1" -ne "0" ]; then + uci del dhcp.@dnsmasq[-1].server >/dev/null 2>&1 + uci add_list dhcp.@dnsmasq[0].server=127.0.0.1#"$dns_port" + uci delete dhcp.@dnsmasq[0].resolvfile + uci set dhcp.@dnsmasq[0].noresolv=1 + uci set openclash.config.redirect_dns=1 + else + uci delete openclash.config.redirect_dns + fi + if [ "$2" -eq "1" ]; then + uci set dhcp.@dnsmasq[0].cachesize=0 + uci set openclash.config.masq_cache=1 + else + uci delete openclash.config.masq_cache + fi + uci commit dhcp + uci commit openclash +} + +revert_dns() { + uci del_list dhcp.@dnsmasq[0].server=127.0.0.1#"$3" >/dev/null 2>&1 + [ "$1" = "1" ] && { + uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.auto + uci set dhcp.@dnsmasq[0].noresolv=0 + } + [ "$2" = "1" ] && { + uci delete dhcp.@dnsmasq[0].cachesize + } + uci commit dhcp + rm -rf /tmp/dnsmasq.d/dnsmasq_openclash.conf >/dev/null 2>&1 +} + +fake_block() { + if [ "$1" = "fake-ip" ]; then + if [ ! -f /etc/openclash/dnsmasq_fake_block.conf ]; then + /usr/share/openclash/openclash_fake_block.sh + elif [ "$(awk -F '/' '{print $3}' /etc/openclash/dnsmasq_fake_block.conf |head -1)" != "114.114.114.114" ] && [ -z "$2" ]; then + /usr/share/openclash/openclash_fake_block.sh + elif [ "$(awk -F '/' '{print $3}' /etc/openclash/dnsmasq_fake_block.conf |head -1)" != "$2" ] && [ ! -z "$2" ]; then + /usr/share/openclash/openclash_fake_block.sh + elif [ ! -z "$(grep "config servers" /etc/config/openclash)" ] && [ -z "$(grep -F '#Server Nodes' /etc/openclash/dnsmasq_fake_block.conf)" ]; then + /usr/share/openclash/openclash_fake_block.sh + fi + mkdir -p /tmp/dnsmasq.d + ln -s /etc/openclash/dnsmasq_fake_block.conf /tmp/dnsmasq.d/dnsmasq_openclash.conf + fi +} + +yml_check() +{ + #创建启动备份 + cp "$3" "$5" + + #创建原始备份 + if [ ! -f "$4" ]; then + cp "$3" "$4" + fi + + #替换tab + sed -i 's/\t/ /g' "$3" 2>/dev/null + + #检查关键字避免后续操作出错 + + [ ! -z "$(grep "^ \{0,\}'Proxy':" "$3")" ] || [ ! -z "$(grep '^ \{0,\}"Proxy":' "$3")" ] && { + sed -i "/^ \{0,\}\'Proxy\'/c\Proxy:" "$3" + sed -i '/^ \{0,\}\"Proxy\":/c\Proxy:' "$3" + } + + [ ! -z "$(grep "^ \{0,\}'proxy-provider':" "$3")" ] || [ ! -z "$(grep '^ \{0,\}"proxy-provider":' "$3")" ] && { + sed -i "/^ \{0,\}\'proxy-provider\'/c\proxy-provider:" "$3" + sed -i '/^ \{0,\}\"proxy-provider\":/c\proxy-provider:' "$3" + } + + [ ! -z "$(grep "^ \{0,\}'Proxy Group':" "$3")" ] || [ ! -z "$(grep '^ \{0,\}"Proxy Group":' "$3")" ] && { + sed -i "/^ \{0,\}\'Proxy Group\'/c\Proxy Group:" "$3" + sed -i '/^ \{0,\}\"Proxy Group\":/c\Proxy Group:' "$3" + } + + [ ! -z "$(grep "^ \{0,\}'Rule':" "$3")" ] || [ ! -z "$(grep '^ \{0,\}"Rule":' "$3")" ] && { + sed -i "/^ \{0,\}\'Rule\'/c\Rule:" "$3" + sed -i '/^ \{0,\}\"Rule\":/c\Rule:' "$3" + } + + [ ! -z "$(grep "^ \{0,\}'dns':" "$3")" ] || [ ! -z "$(grep '^ \{0,\}"dns":' "$3")" ] && { + sed -i "/^ \{0,\}\'dns\'/c\dns:" "$3" + sed -i '/^ \{0,\}\"dns\":/c\dns:' "$3" + } + + [ ! -z "$(grep "^ \{1,\}Proxy:" "$3")" ] && { + sed -i "/^ \{1,\}Proxy:/c\Proxy:" "$3" + } + + [ ! -z "$(grep "^ \{1,\}proxy-provider:" "$3")" ] && { + sed -i "/^ \{1,\}proxy-provider:/c\proxy-provider:" "$3" + } + + [ ! -z "$(grep "^ \{1,\}Proxy Group:" "$3")" ] && { + sed -i "/^ \{1,\}Proxy Group:/c\Proxy Group:" "$3" + } + + [ ! -z "$(grep "^ \{1,\}Rule:" "$3")" ] && { + sed -i "/^ \{1,\}Rule:/c\Rule:" "$3" + } + + [ ! -z "$(grep "^ \{1,\}dns:" "$3")" ] && { + sed -i "/^ \{1,\}dns:/c\dns:" "$3" + } + + #处理provider位置 + proxy_len=$(sed -n '/^Proxy:/=' "$3" 2>/dev/null) + group_len=$(sed -n '/^ \{0,\}Proxy Group:/=' "$3" 2>/dev/null) + provider_len=$(sed -n '/^proxy-provider:/=' "$3" 2>/dev/null) + if [ ! -z "$provider_len" ]; then + if [ "$provider_len" -ge "$proxy_len" ] && [ "$provider_len" -le "$group_len" ]; then + awk '/^proxy-provider:/,/^Proxy Group:/{print}' "$3" | sed '/^Proxy Group:/d' >/tmp/backprovider.yaml 2>/dev/null + sed -i '/^Proxy Group:/i\proxy-provider-tag' "$3" 2>/dev/null + sed -i '/^proxy-provider:/,/proxy-provider-tag/d' "$3" 2>/dev/null + sed -i '/^Rule:/i\proxy-provider:' "$3" 2>/dev/null + sed -i '/^proxy-provider:/d' /tmp/backprovider.yaml 2>/dev/null + sed -i '/proxy-provider:/r/tmp/backprovider.yaml' "$3" 2>/dev/null + rm -rf /tmp/backprovider.yaml 2>/dev/null + elif [ "$provider_len" -ge "$group_len" ]; then + awk '/^proxy-provider:/,/^Rule:/{print}' "$3" | sed '/^Rule:/d' >/tmp/backprovider.yaml 2>/dev/null + sed -i '/^Rule:/i\proxy-provider-tag' "$3" 2>/dev/null + sed -i '/^proxy-provider:/,/proxy-provider-tag/d' "$3" 2>/dev/null + if [ ! -z "$proxy_len" ]; then + sed -i '/^Proxy:/i\proxy-provider:' "$3" 2>/dev/null + else + sed -i '/^Proxy Group:/i\proxy-provider:' "$3" 2>/dev/null + fi + sed -i '/^proxy-provider:/d' /tmp/backprovider.yaml 2>/dev/null + sed -i '/proxy-provider:/r/tmp/backprovider.yaml' "$3" 2>/dev/null + rm -rf /tmp/backprovider.yaml 2>/dev/null + fi + fi + + + if [ ! -z "$provider_len" ]; then + proxy_provider_mode=1 + fi + + #自定义DNS还原 + if [ "$(grep -c '##Custom DNS##' "$3")" -gt 0 ] && [ "$2" = 0 ] && [ -f "$4" ]; then + if [ "$proxy_provider_mode" -eq 1 ]; then + awk '/^ {0,}nameserver:/,/proxy-provider:/{print}' "$4" | sed '/^proxy-provider:/d' >/tmp/backdns.config 2>/dev/null + else + awk '/^ {0,}nameserver:/,/Proxy:/{print}' "$4" | sed '/^Proxy:/d' >/tmp/backdns.config 2>/dev/null + fi + sed -i '/OpenClash-General-Settings/i\Custom DNS End' "$3" 2>/dev/null + sed -i '/^ \{0,\}nameserver:/,/^Custom DNS End$/d' "$3" 2>/dev/null + sed -i '/##Custom DNS##/r/tmp/bakdns.config' "$3" 2>/dev/null + rm -rf /tmp/backdns.config 2>/dev/null + fi + + yml_dns_check + + if [ ! -z "$(grep "^ \{1,\}port:" "$3")" ] || [ ! -z "$(grep "^ \{1,\}mode:" "$3")" ] || [ ! -z "$(grep "^ \{1,\}log-level:" "$3")" ]; then + cp "$3" /tmp/config.check 2>/dev/null + sed -i '/^dns:/,$d' /tmp/config.check 2>/dev/null + sed -i 's/^[ \t]*//' /tmp/config.check 2>/dev/null + sed -n '/^dns:/,$p' "$3" >> /tmp/config.check 2>/dev/null + mv /tmp/config.check "$3" 2>/dev/null + fi + + #添加标识 + sed -i '/OpenClash-General/d' "$3" 2>/dev/null + if [ "$proxy_provider_mode" -eq 1 ]; then + sed -i '/^proxy-provider:/i\#===================== OpenClash-General-Settings =====================#' "$3" 2>/dev/null + else + sed -i '/^Proxy:/i\#===================== OpenClash-General-Settings =====================#' "$3" 2>/dev/null + fi +} + +#检查DNS设置 +yml_dns_check() +{ + + if [ -z "$(grep '^dns:' $CONFIG_FILE)" ]; then + if [ "$proxy_provider_mode" -eq 1 ]; then + sed -i '/^proxy-provider:/i\dns:' "$CONFIG_FILE" 2>/dev/null + else + sed -i '/^Proxy:/i\dns:' "$CONFIG_FILE" 2>/dev/null + fi + fi + + if [ -z "$(grep '^ \{0,\}nameserver:' $CONFIG_FILE)" ]; then + if [ "$proxy_provider_mode" -eq 1 ]; then + sed -i '/^proxy-provider:/i\ nameserver:' "$CONFIG_FILE" 2>/dev/null + else + sed -i '/^Proxy:/i\ nameserver:' "$CONFIG_FILE" 2>/dev/null + fi + sed -i "/^ \{0,\}nameserver:/a\ - tls://8.8.8.8:853" "$CONFIG_FILE" 2>/dev/null + sed -i "/^ \{0,\}nameserver:/a\ fallback:" "$CONFIG_FILE" 2>/dev/null + sed -i "/^ \{0,\}nameserver:/a\ - 114.114.114.114" "$CONFIG_FILE" 2>/dev/null + fi + + dns_port=$(grep "^ \{0,\}listen:" $CONFIG_FILE |awk -F ':' '{print $3}' |awk -F '#' '{print $1}' |tr -cd "[0-9]" 2>/dev/null) + if [ -z "$dns_port" ] || [ "$dns_port" -eq 53 ]; then + dns_port=7874 + fi + + if [ ! -z "$(grep "^ \{0,\}listen:" "$CONFIG_FILE")" ]; then + sed -i "/^ \{0,\}listen:/c\ listen: 0.0.0.0:${dns_port}" "$CONFIG_FILE" 2>/dev/null + else + sed -i "/^dns:/a\ listen: 0.0.0.0:${dns_port}" "$CONFIG_FILE" 2>/dev/null + fi + + uci set openclash.config.dns_port="$dns_port" && uci commit openclash + +} + +#检查代理集文件防止启动失败 +yml_proxy_provider_check() +{ + +while ( [ ! -z "$(pidof clash)" ] && [ "$proxy_provider_path_exist" != 1 ] ) +do + if [ "$proxy_provider_mode" = 1 ]; then + proxy_provider_path_line=$(sed -n '/^ \{0,\}path:/=' "$1" 2>/dev/null) + proxy_provider_path_exist=1 + for n in $proxy_provider_path_line + do + provider_path=$(sed -n "${n}p" $1 |awk -F 'path:' '{print $2}' 2>/dev/null |sed 's/,.*//' 2>/dev/null |sed 's/^ \{0,\}//g' 2>/dev/null |sed 's/ \{0,\}$//g' 2>/dev/null |sed 's/ \{0,\}\}\{0,\}$//g' 2>/dev/null) + if [ "$(echo ${provider_path:0:1})" = "." ]; then + provider_path_check="/etc/openclash/$(echo ${provider_path:2})" + if [ -f "$provider_path_check" ]; then + if [ -z "$(grep "'proxies:':" "$provider_path_check")" ] && [ -z "$(grep '"proxies:":' "$provider_path_check")" ] && [ -z "$(grep 'proxies:' "$provider_path_check")" ]; then + proxy_provider_path_exist=0 + fi + else + proxy_provider_path_exist=0 + fi + else + provider_path_check="$provider_path" + if [ -f "$provider_path_check" ]; then + if [ -z "$(grep "'proxies:':" "$provider_path_check")" ] && [ -z "$(grep '"proxies:":' "$provider_path_check")" ] && [ -z "$(grep 'proxies:' "$provider_path_check")" ]; then + proxy_provider_path_exist=0 + fi + else + proxy_provider_path_exist=0 + fi + fi + done + else + proxy_provider_path_exist=1 + fi +done + +if [ -z "$(pidof clash)" ] && [ "$proxy_provider_mode" = 1 ]; then + echo "错误: OpenClash 启动失败,请到日志页面查看详细错误信息!" >$START_LOG + echo "${LOGTIME} OpenClash Can Not Start, Please Check The Error Info And Try Again" >> $LOG_FILE + sleep 10 + echo "" >$START_LOG + stop && echo "" >$START_LOG + exit 0 +fi + +} + +#切割配置文件以分开处理 +yml_cut() +{ + cp "$4" "$1" + sed -i '/^Rule:/,$d' "$1" 2>/dev/null + sed -n '/^ \{0,\}nameserver:/,$p' "$1" >"$3" 2>/dev/null + if [ "$proxy_provider_mode" -eq 1 ]; then + sed -n '/^ \{0,\}Proxy Group:/,$p' "$3" >"$7" 2>/dev/null + sed -n '/^ \{0,\}Proxy:/,$p' "$3" >"$5" 2>/dev/null + sed -n '/^ \{0,\}proxy-provider:/,$p' "$3" >"$6" 2>/dev/null + sed -i '/^ \{0,\}Proxy Group:/,$d' "$5" 2>/dev/null + sed -i '/^ \{0,\}Proxy:/,$d' "$6" 2>/dev/null + sed -i '/^ \{0,\}Proxy Group:/,$d' "$6" 2>/dev/null + else + sed -n '/^ \{0,\}Proxy Group:/,$p' "$3" >"$7" 2>/dev/null + sed -n '/^ \{0,\}Proxy:/,$p' "$3" >"$5" 2>/dev/null + sed -i '/^ \{0,\}Proxy Group:/,$d' "$5" 2>/dev/null + fi + sed -i '/^ \{0,\}nameserver:/,$d' "$1" 2>/dev/null + if [ "$proxy_provider_mode" -eq 1 ]; then + sed -i '/^ \{0,\}proxy-provider:/,$d' "$3" 2>/dev/null + else + sed -i '/^ \{0,\}Proxy:/,$d' "$3" 2>/dev/null + fi + sed -n '/^Rule:/,$p' "$4" >"$2" 2>/dev/null +} + +#获取自定义DNS设置 +yml_dns_get() +{ + + local section="$1" + local dns_type="" + local dns_address="" + config_get_bool "enabled" "$section" "enabled" "1" + config_get "port" "$section" "port" "" + config_get "type" "$section" "type" "" + config_get "ip" "$section" "ip" "" + config_get "group" "$section" "group" "" + + if [ "$enabled" = "0" ]; then + return + fi + + if [ -z "$ip" ]; then + return + fi + + if [ "$type" = "tcp" ]; then + dns_type="- tcp://" + elif [ "$type" = "tls" ]; then + dns_type="- tls://" + elif [ "$type" = "udp" ]; then + dns_type="- " + elif [ "$type" = "https" ]; then + dns_type="- https://" + fi + + if [ ! -z "$port" ] && [ ! -z "$ip" ]; then + dns_address="$ip:$port" + elif [ -z "$port" ] && [ ! -z "$ip" ]; then + dns_address="$ip" + else + return + fi + + if [ ! -z "$group" ]; then + if [ "$group" = "nameserver" ]; then + echo " $dns_type$dns_address" >>/etc/openclash/config.namedns + else + if [ -z "$(grep "fallback:$" /etc/openclash/config.falldns 2>/dev/null)" ]; then + echo " fallback:" >/etc/openclash/config.falldns + fi + echo " $dns_type$dns_address" >>/etc/openclash/config.falldns + fi + else + return + fi + +} + +#添加自定义DNS设置 +yml_dns_custom() +{ + if [ "$1" = 1 ]; then + echo " nameserver:" >/etc/openclash/config.namedns + config_load "openclash" + config_foreach yml_dns_get "dns_servers" + sed -i '/^ \{0,\}nameserver:/i\##Custom DNS##' "$2" 2>/dev/null + sed -i '/OpenClash-General-Settings/i\Custom DNS End' "$2" 2>/dev/null + sed -i '/^ \{0,\}nameserver:/,/^Custom DNS End$/d' "$2" 2>/dev/null + sed -i '/##Custom DNS##/r/etc/openclash/config.falldns' "$2" 2>/dev/null + sed -i '/##Custom DNS##/r/etc/openclash/config.namedns' "$2" 2>/dev/null + rm -rf /etc/openclash/config.namedns 2>/dev/null + rm -rf /etc/openclash/config.falldns 2>/dev/null + else + sed -i "/^ \{0,\}nameserver:/c\ nameserver:" "$2" 2>/dev/null + sed -i "/^ \{0,\}fallback:/c\ fallback:" "$2" 2>/dev/null + fi + +#fallback-filter + if [ ! -z "$(grep '^ \{0,\}fallback:' $2)" ]; then + if [ -z "$(grep '^ \{0,\}fallback-filter:' $2)" ]; then + awk '/^ {0,}fallback:/,/OpenClash-General-Settings/{print}' "$2" |sed '1d' |sed '$d' >/tmp/fallback.cache 2>/dev/null + sed -i '/fallback:/,$d' "$2" 2>/dev/null + echo " fallback:" >>"$2" + sed -i '/ fallback:/a\ - 240.0.0.0/4' "$2" 2>/dev/null + sed -i '/ fallback:/a\ ipcidr:' "$2" 2>/dev/null + sed -i '/ fallback:/a\ geoip: true' "$2" 2>/dev/null + sed -i '/ fallback:/a\ fallback-filter:' "$2" 2>/dev/null + sed -i '/ fallback:/r/tmp/fallback.cache' "$2" 2>/dev/null + rm -rf /tmp/fallback.cache 2>/dev/null + echo "#===================== OpenClash-General-Settings =====================#" >>"$2" + else + if [ -z "$(grep '^ fallback-filter:' $2)" ]; then + sed -i "/fallback-filter:/c\ fallback-filter:" "$2" 2>/dev/null + fi + if [ -z "$(grep '^ geoip: true' $2)" ]; then + sed -i "/geoip: true/c\ geoip: true" "$2" 2>/dev/null + fi + if [ -z "$(grep '^ ipcidr:' $2)" ]; then + sed -i "/ipcidr:/c\ ipcidr:" "$2" 2>/dev/null + fi + fi + if [ -z "$(grep "^ - " $2)" ]; then + sed -i '/^ \{0,\}nameserver:/,/^ \{0,\}fallback-filter:/ {s/^ \{0,\}- / - /}' "$2" 2>/dev/null #修改参数空格 + fi + if [ -z "$(grep "^ - " $2)" ]; then + sed -i '/^ \{0,\}ipcidr:/,/OpenClash-General-Settings/ {s/^ \{0,\}- / - /}' "$2" 2>/dev/null #修改参数空格 + fi +#删除fallback-filter + else + if [ ! -z "$(grep '^ \{0,\}fallback-filter:' $2)" ]; then + sed -i '/fallback-filter:/,$d' "$2" 2>/dev/null + echo "#===================== OpenClash-General-Settings =====================#" >>"$2" + fi + if [ ! -z "$(grep "^ \{0,1\}- " $2)" ]; then + #添加参数空格 + sed -i "s/^ \{0,\}- / - /" "$2" 2>/dev/null + fi + fi + +} + +#获取认证信息 +yml_auth_get() +{ + local section="$1" + config_get_bool "enabled" "$section" "enabled" "1" + config_get "username" "$section" "username" "" + config_get "password" "$section" "password" "" + + if [ "$enabled" = "0" ]; then + return + fi + + if [ -z "$username" ] || [ -z "$password" ]; then + return + else + echo " - $username:$password" >>/etc/openclash/config.auth + fi +} + +#添加认证信息 +yml_auth_custom() +{ + if [ ! -z "$(grep "^authentication:" "$1")" ]; then + sed -i '/^dns:/i\#authentication' "$1" 2>/dev/null + sed -i '/^authentication:/,/^#authentication/d' "$1" 2>/dev/null + fi + [ -f /etc/openclash/config.auth ] && { + sed -i '/^dns:/i\authentication:' "$1" 2>/dev/null + sed -i '/^authentication:/r/etc/openclash/config.auth' "$1" 2>/dev/null + rm -rf /etc/openclash/config.auth 2>/dev/null + } +} + +get_rule_file() +{ + if [ -z "$1" ]; then + return + fi + + GAME_RULE_FILE_NAME=$(grep -F $1 /etc/openclash/game_rules.list |awk -F ',' '{print $3}' 2>/dev/null) + + if [ -z "$GAME_RULE_FILE_NAME" ]; then + GAME_RULE_FILE_NAME=$(grep -F $1 /etc/openclash/game_rules.list |awk -F ',' '{print $2}' 2>/dev/null) + fi + + GAME_RULE_PATH="/etc/openclash/game_rules/$GAME_RULE_FILE_NAME" + sed '/^#/d' $GAME_RULE_PATH 2>/dev/null |sed '/^ *$/d' |awk '{print "- IP-CIDR,"$0}' |awk -v tag="$2" '{print $0","'tag'""}' >> $GAME_RULE_FILE 2>/dev/null + set_rule_file=1 +} + +yml_game_rule_get() +{ + local section="$1" + config_get_bool "enabled" "$section" "enabled" "1" + config_get "group" "$section" "group" "" + + if [ "$enabled" = "0" ]; then + return + fi + + if [ -z "$group" ]; then + return + fi + + config_list_foreach "$section" "rule_name" get_rule_file "$group" +} + +yml_game_group_get() +{ + local section="$1" + config_get_bool "enabled" "$section" "enabled" "1" + config_get "group" "$section" "group" "" + + if [ "$enabled" = "0" ]; then + return + fi + + if [ -z "$group" ]; then + return + fi + + if [ -z "$(grep "^ \{0,\}- name: $group" "$GROUP_FILE")" ]; then + /usr/share/openclash/yml_groups_set.sh "$group" + fi +} + +yml_game_custom() +{ +#处理游戏规则 +rm -rf $GAME_RULE_FILE 2>/dev/null +config_load "openclash" +config_foreach yml_game_rule_get "game_config" +if [ ! -z "$(grep "OpenClash-Game-Rules" "$RULE_FILE")" ]; then + sed -i '/OpenClash-Game-Rules/,/OpenClash-Game-Rules-End/d' "$RULE_FILE" 2>/dev/null +fi +sed -i '/OpenClash-Game-Rules/d' "$RULE_FILE" 2>/dev/null +sed -i '/OpenClash-Game-Rules-End/d' "$RULE_FILE" 2>/dev/null +[ "$set_rule_file" = 1 ] && { + if [ ! -z "$(grep "^ \{0,\}- GEOIP" "$RULE_FILE")" ]; then + sed -i '1,/^ \{0,\}- GEOIP,/{/^ \{0,\}- GEOIP,/s/^ \{0,\}- GEOIP,/#===================== OpenClash-Game-Rules =====================#\n&/}' "$RULE_FILE" 2>/dev/null + elif [ ! -z "$(grep "^ \{0,\}- MATCH," "$RULE_FILE")" ]; then + sed -i '1,/^ \{0,\}- MATCH,/{/^ \{0,\}- MATCH,/s/^ \{0,\}- MATCH,/#===================== OpenClash-Game-Rules =====================#\n&/}' "$RULE_FILE" 2>/dev/null + else + echo "#===================== OpenClash-Game-Rules =====================#" >> "$RULE_FILE" 2>/dev/null + fi + echo "#===================== OpenClash-Game-Rules-End =====================#" >> $GAME_RULE_FILE + sed -i '/OpenClash-Game-Rules/r/tmp/yaml_game_rule_group.yaml' "$RULE_FILE" 2>/dev/null +} + +#合并文件 +cat "$CHANGE_FILE" "$DNS_FILE" "$PROXY_PROVIDER_FILE" "$PROXY_FILE" "$GROUP_FILE" "$RULE_FILE" > $CONFIG_FILE 2>/dev/null + +#处理游戏节点与策略组 +config_load "openclash" +config_foreach yml_game_group_get "game_config" +sed -i '/^ \{0,\}Proxy Group:/r/tmp/yaml_groups.yaml' "$CONFIG_FILE" 2>/dev/null +sed -i '/^ \{0,\}Proxy:/d' /tmp/yaml_servers.yaml 2>/dev/null +sed -i '/^ \{0,\}proxy-provider:/d' /tmp/yaml_provider.yaml 2>/dev/null +if [ -z "$(grep "^ \{0,\}Proxy:" $CONFIG_FILE 2>/dev/null)" ] && [ -f "/tmp/yaml_servers.yaml" ]; then + sed -i '/^ \{0,\}Proxy Group:/i\Proxy:' "$CONFIG_FILE" 2>/dev/null + sed -i '/^ \{0,\}Proxy:/r/tmp/yaml_servers.yaml' "$CONFIG_FILE" 2>/dev/null +elif [ -f "/tmp/yaml_servers.yaml" ]; then + sed -i '/^ \{0,\}Proxy:/r/tmp/yaml_servers.yaml' "$CONFIG_FILE" 2>/dev/null +fi +if [ -z "$(grep "^ \{0,\}proxy-provider:" $CONFIG_FILE 2>/dev/null)" ] && [ -f "/tmp/yaml_provider.yaml" ]; then + sed -i '/OpenClash-General-Settings/a\proxy-provider:' "$CONFIG_FILE" 2>/dev/null + sed -i '/^ \{0,\}proxy-provider:/r/tmp/yaml_provider.yaml' "$CONFIG_FILE" 2>/dev/null +elif [ -f "/tmp/yaml_servers.yaml" ]; then + sed -i '/^ \{0,\}proxy-provider:r/tmp/yaml_provider.yaml' "$CONFIG_FILE" 2>/dev/null +fi +} + +start() +{ +#禁止多个实例 +status=$(ps|grep -c /etc/init.d/openclash) +[ "$status" -gt "3" ] && exit 0 + +if [ -z "$CONFIG_FILE" ]; then + CONFIG_NAME=$(ls -lt /etc/openclash/config/ | grep -E '.yaml|.yml' | head -n 1 |awk '{print $9}') + if [ ! -z "$CONFIG_NAME" ]; then + uci set openclash.config.config_path="/etc/openclash/config/$CONFIG_NAME" + uci commit openclash + CONFIG_FILE="/etc/openclash/config/$CONFIG_NAME" + elif [ -f "/etc/openclash/config.yaml" ]; then + mv "/etc/openclash/config.yaml" "/etc/openclash/config/config.yaml" + uci set openclash.config.config_path="/etc/openclash/config/config.yaml" + uci commit openclash + CONFIG_FILE="/etc/openclash/config/config.yaml" + elif [ -f "/etc/openclash/config.yml" ]; then + mv "/etc/openclash/config.yml" "/etc/openclash/config/config.yaml" + uci set openclash.config.config_path="/etc/openclash/config/config.yaml" + uci commit openclash + CONFIG_FILE="/etc/openclash/config/config.yaml" + fi +else + if [ ! -f "$CONFIG_FILE" ] && [ -f "$BACKUP_FILE" ]; then + cp $BACKUP_FILE $CONFIG_FILE + fi +fi + +enable=$(uci get openclash.config.enable 2>/dev/null) +LOGTIME=$(date "+%Y-%m-%d %H:%M:%S") +if [ "$enable" -eq 1 ] && [ -f "$CONFIG_FILE" ]; then +#检查是否存在核心文件 +[ ! -f "$CLASH" ] && { + echo "OpenClash 核心文件不存在,开始下载..." >$START_LOG + nohup /usr/share/openclash/openclash_core.sh & + exit 0 +} + echo "OpenClash 开始启动..." >$START_LOG + echo "第一步: 获取配置..." >$START_LOG + en_mode=$(uci get openclash.config.en_mode 2>/dev/null) + if [ "$en_mode" = "fake-ip-tun" ]; then + en_mode_tun="1" + en_mode="fake-ip" + fi + if [ "$en_mode" = "redir-host-vpn" ]; then + en_mode_tun="2" + en_mode="redir-host" + fi + if [ "$en_mode" = "fake-ip-vpn" ]; then + en_mode_tun="2" + en_mode="fake-ip" + fi + enable_custom_dns=$(uci get openclash.config.enable_custom_dns 2>/dev/null) + rule_source=$(uci get openclash.config.rule_source 2>/dev/null) + enable_custom_clash_rules=$(uci get openclash.config.enable_custom_clash_rules 2>/dev/null) + da_password=$(uci get openclash.config.dashboard_password 2>/dev/null) + cn_port=$(uci get openclash.config.cn_port 2>/dev/null) + proxy_port=$(uci get openclash.config.proxy_port 2>/dev/null) + ipv6_enable=$(uci get openclash.config.ipv6_enable 2>/dev/null) + http_port=$(uci get openclash.config.http_port 2>/dev/null) + socks_port=$(uci get openclash.config.socks_port 2>/dev/null) + enable_redirect_dns=$(uci get openclash.config.enable_redirect_dns 2>/dev/null) + lan_ip=$(uci get network.lan.ipaddr 2>/dev/null |awk -F '/' '{print $1}' 2>/dev/null) + lan_ip6=$(uci get network.lan.ip6addr 2>/dev/null) + direct_dns=$(uci get openclash.config.direct_dns 2>/dev/null) + disable_masq_cache=$(uci get openclash.config.disable_masq_cache 2>/dev/null) + log_level=$(uci get openclash.config.log_level 2>/dev/null) + proxy_mode=$(uci get openclash.config.proxy_mode 2>/dev/null) + intranet_allowed=$(uci get openclash.config.intranet_allowed 2>/dev/null) + echo "第二步: 配置文件检查..." >$START_LOG + yml_check "$en_mode" "$enable_custom_dns" "$CONFIG_FILE" "$BACKUP_FILE" "$START_BACKUP" + grep "^ \{0,\}Proxy Group:" $CONFIG_FILE >/dev/null 2>&1 && grep "^ \{0,\}Rule:" $CONFIG_FILE >/dev/null 2>&1 + if [ "$?" -eq "0" ]; then + grep "^ \{0,\}Proxy:" $CONFIG_FILE >/dev/null 2>&1 || grep "^ \{0,\}proxy-provider:" $CONFIG_FILE >/dev/null 2>&1 + if [ "$?" -ne "0" ]; then + nohup $CLASH -d "$CLASH_CONFIG" -f "$CONFIG_FILE" >> $LOG_FILE 2>&1 & + echo "错误: 配置文件完整性检查不通过,已自动还原配置文件,请根据日志信息对照模板格式检查修改配置文件!" >$START_LOG + mv $START_BACKUP $CONFIG_FILE + stop + sleep 5 + echo "" >$START_LOG + else + echo "第三步: 修改配置文件..." >$START_LOG + config_load "openclash" + config_foreach yml_auth_get "authentication" + yml_auth_custom "$CONFIG_FILE" + yml_cut "$CHANGE_FILE" "$RULE_FILE" "$DNS_FILE" "$CONFIG_FILE" "$PROXY_FILE" "$PROXY_PROVIDER_FILE" "$GROUP_FILE" + yml_dns_custom "$enable_custom_dns" "$DNS_FILE" + sh /usr/share/openclash/yml_change.sh "$LOGTIME" "$en_mode" "$enable_custom_dns" "$da_password" "$cn_port" "$proxy_port" "$CHANGE_FILE" "$ipv6_enable" "$http_port" "$socks_port" "$lan_ip" "$log_level" "$proxy_mode" "$intranet_allowed" "$en_mode_tun" & + sh /usr/share/openclash/yml_rules_change.sh "$LOGTIME" "$rule_source" "$enable_custom_clash_rules" "$RULE_FILE" & + wait + yml_game_custom + echo "第四步: DNS设置检查..." >$START_LOG + if [ ! -z "$(sed -n '/^ \{0,\}nameserver:/{n;p}' $CONFIG_FILE |grep '^ \{0,\}fallback:')" ] || [ ! -z "$(sed -n '/^ \{0,\}nameserver:/{n;p}' $CONFIG_FILE |grep 'OpenClash-General')" ]; then + echo "错误: 配置文件DNS选项下的Nameserver必须设置服务器,已自动还原配置文件,请重新设置!" >$START_LOG + echo "${LOGTIME} Nameserver Must Be Set, Please Change Your Configrations In Config.yaml" >>$LOG_FILE + mv $START_BACKUP $CONFIG_FILE + sleep 10 + echo "" >$START_LOG + else + echo "第五步: 启动 Clash 主程序..." >$START_LOG + nohup $CLASH -d "$CLASH_CONFIG" -f "$CONFIG_FILE" >> $LOG_FILE 2>&1 & + + #检测proxy_provider配置文件状态 + yml_proxy_provider_check "$PROXY_PROVIDER_FILE" + rm -rf /tmp/yaml_* 2>/dev/null + + echo "第六步: 设置控制面板..." >$START_LOG + ln -s /usr/share/openclash/yacd /www/openclash 2>/dev/null + + echo "第七步: 设置 OpenClash 防火墙规则..." >$START_LOG + if [ -z "$(uci get firewall.openclash 2>/dev/null)" ] || [ -z "$(uci get ucitrack.@openclash[-1].init 2>/dev/null)" ]; then + uci delete ucitrack.@openclash[-1] >/dev/null 2>&1 + uci add ucitrack openclash >/dev/null 2>&1 + uci set ucitrack.@openclash[-1].init=openclash >/dev/null 2>&1 + uci commit ucitrack >/dev/null 2>&1 + uci delete firewall.openclash >/dev/null 2>&1 + uci set firewall.openclash=include >/dev/null 2>&1 + uci set firewall.openclash.type=script >/dev/null 2>&1 + uci set firewall.openclash.path=/var/etc/openclash.include >/dev/null 2>&1 + uci set firewall.openclash.reload=1 >/dev/null 2>&1 + fi + + if [ ! -z "$en_mode_tun" ] && [ "$(uci get firewall.@defaults[0].forward)" != "ACCEPT" ]; then + uci set firewall.@defaults[0].forward=ACCEPT >/dev/null 2>&1 + uci commit firewall >/dev/null 2>&1 + /etc/init.d/firewall reload >/dev/null 2>&1 + fi + +mkdir -p /var/etc +cat > "/var/etc/openclash.include" <<-EOF +/etc/init.d/openclash restart +EOF + if [ "$en_mode_tun" != "2" ]; then + iptables -t nat -N openclash + + if [ "$en_mode_tun" = "1" ]; then + iptables -t nat -A openclash -d 198.18.0.0/16 -j RETURN + fi + + iptables -t nat -A openclash -d 0.0.0.0/8 -j RETURN + iptables -t nat -A openclash -d 10.0.0.0/8 -j RETURN + iptables -t nat -A openclash -d 127.0.0.0/8 -j RETURN + iptables -t nat -A openclash -d 169.254.0.0/16 -j RETURN + iptables -t nat -A openclash -d 172.16.0.0/12 -j RETURN + iptables -t nat -A openclash -d 192.168.0.0/16 -j RETURN + iptables -t nat -A openclash -d 224.0.0.0/4 -j RETURN + iptables -t nat -A openclash -d 240.0.0.0/4 -j RETURN + iptables -t nat -A openclash -p tcp -j REDIRECT --to-ports "$proxy_port" + + if [ -z "$(iptables -nvL zone_lan_prerouting -t nat)" ]; then + iptables -t nat -A PREROUTING -p tcp -j openclash + else + iptables -t nat -A zone_lan_prerouting -p tcp -j openclash + fi + + if [ "$en_mode_tun" != 1 ]; then + iptables -t nat -A OUTPUT -p tcp -d 198.18.0.0/16 -j REDIRECT --to-ports "$proxy_port" + fi + + if [ "$ipv6_enable" -eq 1 ]; then + ip6tables -t nat -N openclash + ip6tables -t nat -A openclash -p tcp -j REDIRECT --to-ports "$proxy_port" + if [ -z "$(ip6tables -nvL zone_lan_prerouting -t nat)" ]; then + ip6tables -t nat -A PREROUTING -p tcp -j openclash + else + ip6tables -t nat -A zone_lan_prerouting -p tcp -j openclash + fi + fi + else + #TUN2模式 + ipset create localnetwork hash:net + ipset add localnetwork 127.0.0.0/8 + ipset add localnetwork 10.0.0.0/8 + ipset add localnetwork 169.254.0.0/16 + ipset add localnetwork 192.168.0.0/16 + ipset add localnetwork 224.0.0.0/4 + ipset add localnetwork 240.0.0.0/4 + ipset add localnetwork 172.16.0.0/12 + #启动TUN + ip tuntap add user root mode tun clash0 + ip link set clash0 up + ip route replace default dev clash0 table "$PROXY_ROUTE_TABLE" + ip rule add fwmark "$PROXY_FWMARK" table "$PROXY_ROUTE_TABLE" + #设置防火墙 + iptables -t mangle -N openclash + iptables -t mangle -F openclash + iptables -t mangle -A openclash -d 198.18.0.0/16 -j MARK --set-mark "$PROXY_FWMARK" + iptables -t mangle -A openclash -m set --match-set localnetwork dst -j RETURN + iptables -t mangle -I OUTPUT -j openclash + iptables -t mangle -I PREROUTING -m set ! --match-set localnetwork dst -j MARK --set-mark "$PROXY_FWMARK" + #ipv6 + ip6tables -t mangle -I PREROUTING -j MARK --set-mark "$PROXY_FWMARK" + fi + + echo "第八步: 重启 Dnsmasq 程序..." >$START_LOG + if [ "$(iptables -t nat -nL PREROUTING --line-number |grep dpt:53 |wc -l)" -gt 2 ]; then + echo "发现53端口被劫持,如连接异常请将OpenClash设置为劫持53端口程序的上游DNS服务器!" >$START_LOG + echo "${LOGTIME} Warring: OpenClash May Can Not Take Over DNS, Please Use OpenClash for Upstream DNS Resolve Server" >> $LOG_FILE + sleep 5 + fi + change_dns "$enable_redirect_dns" "$disable_masq_cache" + fake_block "$en_mode" "$direct_dns" + /etc/init.d/dnsmasq restart >/dev/null 2>&1 + if pidof clash >/dev/null; then + echo "第九步: 添加 OpenClash 计划任务,启动进程守护程序..." >$START_LOG + add_cron + if [ -z "$(uci get dhcp.lan.dhcpv6 2>/dev/null)" ]; then + echo "OpenClash 启动成功,请等待服务器上线!" >$START_LOG + echo "${LOGTIME} OpenClash Start Successful" >> $LOG_FILE + sleep 5 + else + echo "OpenClash 启动成功,检测到您启用了IPV6的DHCP服务,可能会造成连接异常!" >$START_LOG + echo "${LOGTIME} OpenClash Start Successful, Please Note That Network May Abnormal With IPV6's DHCP Server" >> $LOG_FILE + sleep 10 + fi + echo "" >$START_LOG + else + if [ "$rule_source" != 0 ] || [ "$enable_custom_clash_rules" != 0 ]; then + echo "错误: OpenClash 启动失败,尝试还原规则并重新启动 Clash 主程序..." >$START_LOG + echo "${LOGTIME} OpenClash Can Not Start, Try Use Backup Rules Start Again" >> $LOG_FILE + mv "$BACKUP_FILE" /etc/openclash/configrules.bak + sed -i -n '/^Rule:/,$p' /etc/openclash/configrules.bak + sed -i '/^Rule:/,$d' "$CONFIG_FILE" + cat /etc/openclash/configrules.bak >> "$CONFIG_FILE" + rm -rf /etc/openclash/configrules.bak + nohup $CLASH -d "$CLASH_CONFIG" -f "$CONFIG_FILE" >> $LOG_FILE 2>&1 & + sleep 3 + if pidof clash >/dev/null; then + add_cron + if [ -z "$(uci get dhcp.lan.dhcpv6 2>/dev/null)" ]; then + echo "OpenClash 使用备份规则启动成功,请更新、检查变动的规则后重试!" >$START_LOG + echo "${LOGTIME} OpenClash Start Successful With Backup Rules Config, Please Check Or Update Other Rules And Retry" >> $LOG_FILE + sleep 10 + else + echo "OpenClash 使用备份规则启动成功,请更新、检查变动的规则后重试!" >$START_LOG + echo "${LOGTIME} OpenClash Start Successful With Backup Rules Config, Please Check Or Update Other Rules And Retry" >> $LOG_FILE + sleep 10 + echo "OpenClash 启动成功,检测到您启用了IPV6的DHCP服务,可能会造成连接异常!" >$START_LOG + echo "${LOGTIME} OpenClash Start Successful, Please Note That Network May Abnormal With IPV6's DHCP Server" >> $LOG_FILE + sleep 10 + fi + echo "" >$START_LOG + else + echo "错误: OpenClash 启动失败,请到日志页面查看详细错误信息!" >$START_LOG + echo "${LOGTIME} OpenClash Can Not Start, Please Check The Error Info And Try Again" >> $LOG_FILE + sleep 10 + echo "" >$START_LOG + stop && echo "" >$START_LOG + fi + else + echo "错误: OpenClash 启动失败,请到日志页面查看详细错误信息!" >$START_LOG + echo "${LOGTIME} OpenClash Can Not Start, Please Check The Error Info And Try Again" >> $LOG_FILE + sleep 10 + echo "" >$START_LOG + stop && echo "" >$START_LOG + fi + fi + fi + fi + else + nohup $CLASH -d "$CLASH_CONFIG" -f "$CONFIG_FILE" >> $LOG_FILE 2>&1 & + echo "错误: 配置文件完整性检查不通过,已自动还原配置文件,请根据日志信息对照模板格式检查修改配置文件!" >$START_LOG + mv $START_BACKUP $CONFIG_FILE + stop + sleep 5 + echo "" >$START_LOG + fi + rm -rf $START_BACKUP 2>/dev/null +else + subscribe_url=$(uci get openclash.config.subscribe_url 2>/dev/null) + if [ ! -f "$CONFIG_FILE" ] && [ ! -z "$subscribe_url" ]; then + echo "OpenClash 配置文件不存在,开始下载..." >$START_LOG + nohup /usr/share/openclash/openclash.sh & + exit 0 + elif [ ! -f "$CONFIG_FILE" ]; then + echo "错误: OpenClash 缺少配置文件,请上传或更新配置文件!" >$START_LOG + echo "${LOGTIME} Config Not Found" >> $LOG_FILE + sleep 5 + echo "" >$START_LOG + fi +fi +} + +stop() +{ + echo "OpenClash 开始关闭..." >$START_LOG + echo "第一步: 删除 OpenClash 防火墙规则..." >$START_LOG + rm -rf /var/etc/openclash.include 2>/dev/null +#ipv4 + iptables -t nat -F openclash >/dev/null 2>&1 + iptables -t nat -D PREROUTING -p tcp -j openclash >/dev/null 2>&1 + iptables -t nat -D zone_lan_prerouting -p tcp -j openclash >/dev/null 2>&1 + iptables -t nat -X openclash >/dev/null 2>&1 + + out_lines=$(iptables -nvL OUTPUT -t nat |sed 1,2d |sed -n '/198.18.0.0\/16/=' 2>/dev/null |sort -rn) + for out_line in $out_lines; do + iptables -t nat -D OUTPUT "$out_line" >/dev/null 2>&1 + done + +#ipv6 + ip6tables -t nat -F openclash >/dev/null 2>&1 + ip6tables -t nat -D PREROUTING -p tcp -j openclash >/dev/null 2>&1 + ip6tables -t nat -D zone_lan_prerouting -p tcp -j openclash >/dev/null 2>&1 + ip6tables -t nat -X openclash >/dev/null 2>&1 + +#TUN + ip link set dev clash0 down >/dev/null 2>&1 + ip tuntap del clash0 mode tun >/dev/null 2>&1 + ip route del default dev clash0 table "$PROXY_ROUTE_TABLE" >/dev/null 2>&1 + ip rule del fwmark "$PROXY_FWMARK" table "$PROXY_ROUTE_TABLE" >/dev/null 2>&1 + + iptables -t mangle -D OUTPUT -j openclash >/dev/null 2>&1 + iptables -t mangle -D PREROUTING -m set ! --match-set localnetwork dst -j MARK --set-mark "$PROXY_FWMARK" >/dev/null 2>&1 + ip6tables -t mangle -D PREROUTING -j MARK --set-mark "$PROXY_FWMARK" >/dev/null 2>&1 + iptables -t mangle -F openclash >/dev/null 2>&1 + iptables -t mangle -X openclash >/dev/null 2>&1 + ipset destroy localnetwork >/dev/null 2>&1 + + echo "第二步: 关闭 OpenClash 守护程序..." >$START_LOG + watchdog_pids=$(ps |grep openclash_watchdog.sh |grep -v grep |awk '{print $1}' 2>/dev/null) + for watchdog_pid in $watchdog_pids; do + kill -9 "$watchdog_pid" >/dev/null 2>&1 + done + + echo "第三步: 关闭 Clash 主程序..." >$START_LOG + kill -9 "$(pidof clash|sed 's/$//g')" 2>/dev/null + + echo "第四步: 重启 Dnsmasq 程序..." >$START_LOG + dns_port=$(uci get openclash.config.dns_port 2>/dev/null) + redirect_dns=$(uci get openclash.config.redirect_dns 2>/dev/null) + masq_cache=$(uci get openclash.config.masq_cache 2>/dev/null) + revert_dns "$redirect_dns" "$masq_cache" "$dns_port" + /etc/init.d/dnsmasq restart >/dev/null 2>&1 + + echo "第五步:删除 OpenClash 残留文件..." >$START_LOG + enable=$(uci get openclash.config.enable 2>/dev/null) + if [ "$enable" -eq 0 ]; then + rm -rf $LOG_FILE 2>/dev/null + rm -rf /www/openclash 2>/dev/null + rm -rf /tmp/openclash_last_version 2>/dev/null + rm -rf /tmp/clash_last_version 2>/dev/null + rm -rf /tmp/Proxy_Group 2>/dev/null + rm -rf /tmp/rules_name 2>/dev/null + echo "OpenClash 关闭成功!" >$START_LOG + sleep 5 + rm -rf $START_LOG + fi + + del_cron + + echo "OpenClash Already Stop" +} + + +restart() +{ + stop + start +} diff --git a/package/ctcgfw/luci-app-openclash/files/etc/openclash/ConnersHua.yaml b/package/ctcgfw/luci-app-openclash/files/etc/openclash/ConnersHua.yaml new file mode 100644 index 0000000000..73c14f42ec --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/etc/openclash/ConnersHua.yaml @@ -0,0 +1,1433 @@ +Rule: +##source:ConnersHua +# Unbreak +# > Google +- DOMAIN-SUFFIX,googletraveladservices.com,DIRECT +- DOMAIN,dl.google.com,DIRECT +- DOMAIN,mtalk.google.com,DIRECT + +# Internet Service Providers Hijacking 运营商劫持 +- DOMAIN-SUFFIX,17gouwuba.com,Hijacking +- DOMAIN-SUFFIX,186078.com,Hijacking +- DOMAIN-SUFFIX,189zj.cn,Hijacking +- DOMAIN-SUFFIX,285680.com,Hijacking +- DOMAIN-SUFFIX,3721zh.com,Hijacking +- DOMAIN-SUFFIX,4336wang.cn,Hijacking +- DOMAIN-SUFFIX,51chumoping.com,Hijacking +- DOMAIN-SUFFIX,51mld.cn,Hijacking +- DOMAIN-SUFFIX,51mypc.cn,Hijacking +- DOMAIN-SUFFIX,58mingri.cn,Hijacking +- DOMAIN-SUFFIX,58mingtian.cn,Hijacking +- DOMAIN-SUFFIX,5vl58stm.com,Hijacking +- DOMAIN-SUFFIX,6d63d3.com,Hijacking +- DOMAIN-SUFFIX,7gg.cc,Hijacking +- DOMAIN-SUFFIX,91veg.com,Hijacking +- DOMAIN-SUFFIX,9s6q.cn,Hijacking +- DOMAIN-SUFFIX,adsame.com,Hijacking +- DOMAIN-SUFFIX,aiclk.com,Hijacking +- DOMAIN-SUFFIX,akuai.top,Hijacking +- DOMAIN-SUFFIX,atplay.cn,Hijacking +- DOMAIN-SUFFIX,baiwanchuangyi.com,Hijacking +- DOMAIN-SUFFIX,beerto.cn,Hijacking +- DOMAIN-SUFFIX,beilamusi.com,Hijacking +- DOMAIN-SUFFIX,benshiw.net,Hijacking +- DOMAIN-SUFFIX,bianxianmao.com,Hijacking +- DOMAIN-SUFFIX,bryonypie.com,Hijacking +- DOMAIN-SUFFIX,cishantao.com,Hijacking +- DOMAIN-SUFFIX,cszlks.com,Hijacking +- DOMAIN-SUFFIX,cudaojia.com,Hijacking +- DOMAIN-SUFFIX,dafapromo.com,Hijacking +- DOMAIN-SUFFIX,daitdai.com,Hijacking +- DOMAIN-SUFFIX,dsaeerf.com,Hijacking +- DOMAIN-SUFFIX,dugesheying.com,Hijacking +- DOMAIN-SUFFIX,dv8c1t.cn,Hijacking +- DOMAIN-SUFFIX,echatu.com,Hijacking +- DOMAIN-SUFFIX,erdoscs.com,Hijacking +- DOMAIN-SUFFIX,fan-yong.com,Hijacking +- DOMAIN-SUFFIX,feih.com.cn,Hijacking +- DOMAIN-SUFFIX,fjlqqc.com,Hijacking +- DOMAIN-SUFFIX,fkku194.com,Hijacking +- DOMAIN-SUFFIX,freedrive.cn,Hijacking +- DOMAIN-SUFFIX,gclick.cn,Hijacking +- DOMAIN-SUFFIX,goufanli100.com,Hijacking +- DOMAIN-SUFFIX,goupaoerdai.com,Hijacking +- DOMAIN-SUFFIX,gouwubang.com,Hijacking +- DOMAIN-SUFFIX,gzxnlk.com,Hijacking +- DOMAIN-SUFFIX,haoshengtoys.com,Hijacking +- DOMAIN-SUFFIX,hyunke.com,Hijacking +- DOMAIN-SUFFIX,ichaosheng.com,Hijacking +- DOMAIN-SUFFIX,ishop789.com,Hijacking +- DOMAIN-SUFFIX,jdkic.com,Hijacking +- DOMAIN-SUFFIX,jiubuhua.com,Hijacking +- DOMAIN-SUFFIX,jsncke.com,Hijacking +- DOMAIN-SUFFIX,junkucm.com,Hijacking +- DOMAIN-SUFFIX,jwg365.cn,Hijacking +- DOMAIN-SUFFIX,kawo77.com,Hijacking +- DOMAIN-SUFFIX,kualianyingxiao.cn,Hijacking +- DOMAIN-SUFFIX,kumihua.com,Hijacking +- DOMAIN-SUFFIX,ltheanine.cn,Hijacking +- DOMAIN-SUFFIX,maipinshangmao.com,Hijacking +- DOMAIN-SUFFIX,minisplat.cn,Hijacking +- DOMAIN-SUFFIX,mkitgfs.com,Hijacking +- DOMAIN-SUFFIX,mlnbike.com,Hijacking +- DOMAIN-SUFFIX,mobjump.com,Hijacking +- DOMAIN-SUFFIX,nbkbgd.cn,Hijacking +- DOMAIN-SUFFIX,newapi.com,Hijacking +- DOMAIN-SUFFIX,pinzhitmall.com,Hijacking +- DOMAIN-SUFFIX,poppyta.com,Hijacking +- DOMAIN-SUFFIX,qianchuanghr.com,Hijacking +- DOMAIN-SUFFIX,qichexin.com,Hijacking +- DOMAIN-SUFFIX,qinchugudao.com,Hijacking +- DOMAIN-SUFFIX,quanliyouxi.cn,Hijacking +- DOMAIN-SUFFIX,qutaobi.com,Hijacking +- DOMAIN-SUFFIX,ry51w.cn,Hijacking +- DOMAIN-SUFFIX,sg536.cn,Hijacking +- DOMAIN-SUFFIX,sifubo.cn,Hijacking +- DOMAIN-SUFFIX,sifuce.cn,Hijacking +- DOMAIN-SUFFIX,sifuda.cn,Hijacking +- DOMAIN-SUFFIX,sifufu.cn,Hijacking +- DOMAIN-SUFFIX,sifuge.cn,Hijacking +- DOMAIN-SUFFIX,sifugu.cn,Hijacking +- DOMAIN-SUFFIX,sifuhe.cn,Hijacking +- DOMAIN-SUFFIX,sifuhu.cn,Hijacking +- DOMAIN-SUFFIX,sifuji.cn,Hijacking +- DOMAIN-SUFFIX,sifuka.cn,Hijacking +- DOMAIN-SUFFIX,smgru.net,Hijacking +- DOMAIN-SUFFIX,taoggou.com,Hijacking +- DOMAIN-SUFFIX,tcxshop.com,Hijacking +- DOMAIN-SUFFIX,tjqonline.cn,Hijacking +- DOMAIN-SUFFIX,topitme.com,Hijacking +- DOMAIN-SUFFIX,tt3sm4.cn,Hijacking +- DOMAIN-SUFFIX,tuia.cn,Hijacking +- DOMAIN-SUFFIX,tuipenguin.com,Hijacking +- DOMAIN-SUFFIX,tuitiger.com,Hijacking +- DOMAIN-SUFFIX,websd8.com,Hijacking +- DOMAIN-SUFFIX,wsgblw.com,Hijacking +- DOMAIN-SUFFIX,wx16999.com,Hijacking +- DOMAIN-SUFFIX,xchmai.com,Hijacking +- DOMAIN-SUFFIX,xiaohuau.xyz,Hijacking +- DOMAIN-SUFFIX,ygyzx.cn,Hijacking +- DOMAIN-SUFFIX,yinmong.com,Hijacking +- DOMAIN-SUFFIX,yitaopt.com,Hijacking +- DOMAIN-SUFFIX,yjqiqi.com,Hijacking +- DOMAIN-SUFFIX,yukhj.com,Hijacking +- DOMAIN-SUFFIX,zhaozecheng.cn,Hijacking +- DOMAIN-SUFFIX,zhenxinet.com,Hijacking +- DOMAIN-SUFFIX,zlne800.com,Hijacking +- DOMAIN-SUFFIX,zunmi.cn,Hijacking +- DOMAIN-SUFFIX,zzd6.com,Hijacking +- IP-CIDR,39.107.15.115/32,Hijacking,no-resolve +- IP-CIDR,47.89.59.182/32,Hijacking,no-resolve +- IP-CIDR,103.49.209.27/32,Hijacking,no-resolve +- IP-CIDR,123.56.152.96/32,Hijacking,no-resolve +# > ChinaTelecom +- IP-CIDR,61.160.200.223/32,Hijacking,no-resolve +- IP-CIDR,61.160.200.242/32,Hijacking,no-resolve +- IP-CIDR,61.160.200.252/32,Hijacking,no-resolve +- IP-CIDR,61.174.50.214/32,Hijacking,no-resolve +- IP-CIDR,111.175.220.163/32,Hijacking,no-resolve +- IP-CIDR,111.175.220.164/32,Hijacking,no-resolve +- IP-CIDR,122.229.8.47/32,Hijacking,no-resolve +- IP-CIDR,122.229.29.89/32,Hijacking,no-resolve +- IP-CIDR,124.232.160.178/32,Hijacking,no-resolve +- IP-CIDR,175.6.223.15/32,Hijacking,no-resolve +- IP-CIDR,183.59.53.237/32,Hijacking,no-resolve +- IP-CIDR,218.93.127.37/32,Hijacking,no-resolve +- IP-CIDR,221.228.17.152/32,Hijacking,no-resolve +- IP-CIDR,221.231.6.79/32,Hijacking,no-resolve +- IP-CIDR,222.186.61.91/32,Hijacking,no-resolve +- IP-CIDR,222.186.61.95/32,Hijacking,no-resolve +- IP-CIDR,222.186.61.96/32,Hijacking,no-resolve +- IP-CIDR,222.186.61.97/32,Hijacking,no-resolve +# > ChinaUnicom +- IP-CIDR,106.75.231.48/32,Hijacking,no-resolve +- IP-CIDR,119.4.249.166/32,Hijacking,no-resolve +- IP-CIDR,220.196.52.141/32,Hijacking,no-resolve +- IP-CIDR,221.6.4.148/32,Hijacking,no-resolve +# > ChinaMobile +- IP-CIDR,114.247.28.96/32,Hijacking,no-resolve +- IP-CIDR,221.179.131.72/32,Hijacking,no-resolve +- IP-CIDR,221.179.140.145/32,Hijacking,no-resolve +# > Dr.Peng +# - IP-CIDR,10.72.25.0/24,Hijacking,no-resolve +- IP-CIDR,115.182.16.79/32,Hijacking,no-resolve +- IP-CIDR,118.144.88.126/32,Hijacking,no-resolve +- IP-CIDR,118.144.88.215/32,Hijacking,no-resolve +- IP-CIDR,118.144.88.216/32,Hijacking,no-resolve +- IP-CIDR,120.76.189.132/32,Hijacking,no-resolve +- IP-CIDR,124.14.21.147/32,Hijacking,no-resolve +- IP-CIDR,124.14.21.151/32,Hijacking,no-resolve +- IP-CIDR,180.166.52.24/32,Hijacking,no-resolve +- IP-CIDR,211.161.101.106/32,Hijacking,no-resolve +- IP-CIDR,220.115.251.25/32,Hijacking,no-resolve +- IP-CIDR,222.73.156.235/32,Hijacking,no-resolve + +# Malware 恶意网站 +# > 快压 +# https://zhuanlan.zhihu.com/p/39534279 +- DOMAIN-SUFFIX,kuaizip.com,Hijacking +# > MacKeeper +# https://www.lizhi.io/blog/40002904 +- DOMAIN-SUFFIX,mackeeper.com,Hijacking +- DOMAIN-SUFFIX,zryydi.com,Hijacking +# > Adobe Flash China Special Edition +# https://www.zhihu.com/question/281163698/answer/441388130 +- DOMAIN-SUFFIX,flash.cn,Hijacking +- DOMAIN,geo2.adobe.com,Hijacking +# > C&J Marketing 思杰马克丁软件 +# https://www.zhihu.com/question/46746200 +- DOMAIN-SUFFIX,4009997658.com,Hijacking +- DOMAIN-SUFFIX,abbyychina.com,Hijacking +- DOMAIN-SUFFIX,bartender.cc,Hijacking +- DOMAIN-SUFFIX,betterzip.net,Hijacking +- DOMAIN-SUFFIX,betterzipcn.com,Hijacking +- DOMAIN-SUFFIX,beyondcompare.cc,Hijacking +- DOMAIN-SUFFIX,bingdianhuanyuan.cn,Hijacking +- DOMAIN-SUFFIX,chemdraw.com.cn,Hijacking +- DOMAIN-SUFFIX,cjmakeding.com,Hijacking +- DOMAIN-SUFFIX,cjmkt.com,Hijacking +- DOMAIN-SUFFIX,codesoftchina.com,Hijacking +- DOMAIN-SUFFIX,coreldrawchina.com,Hijacking +- DOMAIN-SUFFIX,crossoverchina.com,Hijacking +- DOMAIN-SUFFIX,dongmansoft.com,Hijacking +- DOMAIN-SUFFIX,earmasterchina.cn,Hijacking +- DOMAIN-SUFFIX,easyrecoverychina.com,Hijacking +- DOMAIN-SUFFIX,ediuschina.com,Hijacking +- DOMAIN-SUFFIX,flstudiochina.com,Hijacking +- DOMAIN-SUFFIX,formysql.com,Hijacking +- DOMAIN-SUFFIX,guitarpro.cc,Hijacking +- DOMAIN-SUFFIX,huishenghuiying.com.cn,Hijacking +- DOMAIN-SUFFIX,hypersnap.net,Hijacking +- DOMAIN-SUFFIX,iconworkshop.cn,Hijacking +- DOMAIN-SUFFIX,imindmap.cc,Hijacking +- DOMAIN-SUFFIX,jihehuaban.com.cn,Hijacking +- DOMAIN-SUFFIX,keyshot.cc,Hijacking +- DOMAIN-SUFFIX,kingdeecn.cn,Hijacking +- DOMAIN-SUFFIX,logoshejishi.com,Hijacking +- DOMAIN-SUFFIX,luping.net.cn,Hijacking +- DOMAIN-SUFFIX,mairuan.cn,Hijacking +- DOMAIN-SUFFIX,mairuan.com,Hijacking +- DOMAIN-SUFFIX,mairuan.com.cn,Hijacking +- DOMAIN-SUFFIX,mairuan.net,Hijacking +- DOMAIN-SUFFIX,mairuanwang.com,Hijacking +- DOMAIN-SUFFIX,makeding.com,Hijacking +- DOMAIN-SUFFIX,mathtype.cn,Hijacking +- DOMAIN-SUFFIX,mindmanager.cc,Hijacking +- DOMAIN-SUFFIX,mindmanager.cn,Hijacking +- DOMAIN-SUFFIX,mindmapper.cc,Hijacking +- DOMAIN-SUFFIX,mycleanmymac.com,Hijacking +- DOMAIN-SUFFIX,nicelabel.cc,Hijacking +- DOMAIN-SUFFIX,ntfsformac.cc,Hijacking +- DOMAIN-SUFFIX,ntfsformac.cn,Hijacking +- DOMAIN-SUFFIX,overturechina.com,Hijacking +- DOMAIN-SUFFIX,passwordrecovery.cn,Hijacking +- DOMAIN-SUFFIX,pdfexpert.cc,Hijacking +- DOMAIN-SUFFIX,photozoomchina.com,Hijacking +- DOMAIN-SUFFIX,shankejingling.com,Hijacking +- DOMAIN-SUFFIX,ultraiso.net,Hijacking +- DOMAIN-SUFFIX,vegaschina.cn,Hijacking +- DOMAIN-SUFFIX,xmindchina.net,Hijacking +- DOMAIN-SUFFIX,xshellcn.com,Hijacking +- DOMAIN-SUFFIX,yihuifu.cn,Hijacking +- DOMAIN-SUFFIX,yuanchengxiezuo.com,Hijacking +- DOMAIN-SUFFIX,zbrushcn.com,Hijacking +- DOMAIN-SUFFIX,zhzzx.com,Hijacking + +# Global Area Network +# (GlobalMedia) +# (Music) +# > Deezer +# USER-AGENT,Deezer*,GlobalMedia +- DOMAIN-SUFFIX,deezer.com,GlobalMedia +- DOMAIN-SUFFIX,dzcdn.net,GlobalMedia +# > KKBOX +- DOMAIN-SUFFIX,kkbox.com,GlobalMedia +- DOMAIN-SUFFIX,kkbox.com.tw,GlobalMedia +- DOMAIN-SUFFIX,kfs.io,GlobalMedia +# > JOOX +# USER-AGENT,WeMusic*,GlobalMedia +# USER-AGENT,JOOX*,GlobalMedia +- DOMAIN-SUFFIX,joox.com,GlobalMedia +# > Pandora +# USER-AGENT,Pandora*,GlobalMedia +- DOMAIN-SUFFIX,pandora.com,GlobalMedia +# > SoundCloud +# USER-AGENT,SoundCloud*,GlobalMedia +- DOMAIN-SUFFIX,p-cdn.us,GlobalMedia +- DOMAIN-SUFFIX,sndcdn.com,GlobalMedia +- DOMAIN-SUFFIX,soundcloud.com,GlobalMedia +# > Spotify +# USER-AGENT,Spotify*,GlobalMedia +- DOMAIN-SUFFIX,pscdn.co,GlobalMedia +- DOMAIN-SUFFIX,scdn.co,GlobalMedia +- DOMAIN-SUFFIX,spotify.com,GlobalMedia +- DOMAIN-SUFFIX,spoti.fi,GlobalMedia +- DOMAIN-KEYWORD,spotify.com,GlobalMedia +- DOMAIN-KEYWORD,-spotify-com,GlobalMedia +# > TIDAL +# USER-AGENT,TIDAL*,GlobalMedia +- DOMAIN-SUFFIX,tidal.com,GlobalMedia +# > YouTubeMusic +# USER-AGENT,com.google.ios.youtubemusic*,GlobalMedia +# USER-AGENT,YouTubeMusic*,GlobalMedia +# (Video) +# > All4 +# USER-AGENT,All4*,GlobalMedia +- DOMAIN-SUFFIX,c4assets.com,GlobalMedia +- DOMAIN-SUFFIX,channel4.com,GlobalMedia +# > AbemaTV +# USER-AGENT,AbemaTV*,GlobalMedia +- DOMAIN-SUFFIX,abema.io,GlobalMedia +- DOMAIN-SUFFIX,ameba.jp,GlobalMedia +- DOMAIN-SUFFIX,abema.tv,GlobalMedia +- DOMAIN-SUFFIX,hayabusa.io,GlobalMedia +- DOMAIN,abematv.akamaized.net,GlobalMedia +- DOMAIN,ds-linear-abematv.akamaized.net,GlobalMedia +- DOMAIN,ds-vod-abematv.akamaized.net,GlobalMedia +- DOMAIN,linear-abematv.akamaized.net,GlobalMedia +# > Amazon Prime Video +# USER-AGENT,InstantVideo.US*,GlobalMedia +# USER-AGENT,Prime%20Video*,GlobalMedia +- DOMAIN-SUFFIX,aiv-cdn.net,GlobalMedia +- DOMAIN-SUFFIX,aiv-delivery.net,GlobalMedia +- DOMAIN-SUFFIX,amazonvideo.com,GlobalMedia +- DOMAIN-SUFFIX,primevideo.com,GlobalMedia +- DOMAIN,avodmp4s3ww-a.akamaihd.net,GlobalMedia +- DOMAIN,d25xi40x97liuc.cloudfront.net,GlobalMedia +- DOMAIN,dmqdd6hw24ucf.cloudfront.net,GlobalMedia +- DOMAIN,d22qjgkvxw22r6.cloudfront.net,GlobalMedia +- DOMAIN,d1v5ir2lpwr8os.cloudfront.net,GlobalMedia +- DOMAIN-KEYWORD,avoddashs,GlobalMedia +# > Bahamut +# USER-AGENT,Anime*,GlobalMedia +- DOMAIN-SUFFIX,bahamut.com.tw,GlobalMedia +- DOMAIN-SUFFIX,gamer.com.tw,GlobalMedia +- DOMAIN,gamer-cds.cdn.hinet.net,GlobalMedia +- DOMAIN,gamer2-cds.cdn.hinet.net,GlobalMedia +# > BBC iPlayer +# USER-AGENT,BBCiPlayer*,GlobalMedia +- DOMAIN-SUFFIX,bbc.co.uk,GlobalMedia +- DOMAIN-SUFFIX,bbci.co.uk,GlobalMedia +- DOMAIN-KEYWORD,bbcfmt,GlobalMedia +- DOMAIN-KEYWORD,uk-live,GlobalMedia +# > DAZN +# USER-AGENT,DAZN*,GlobalMedia +- DOMAIN-SUFFIX,dazn.com,GlobalMedia +- DOMAIN-SUFFIX,dazn-api.com,GlobalMedia +- DOMAIN,d151l6v8er5bdm.cloudfront.net,GlobalMedia +- DOMAIN-KEYWORD,voddazn,GlobalMedia +# > Disney+ +# USER-AGENT,Disney+*,GlobalMedia +- DOMAIN-SUFFIX,bamgrid.com,GlobalMedia +- DOMAIN-SUFFIX,disney-plus.net,GlobalMedia +- DOMAIN-SUFFIX,disneyplus.com,GlobalMedia +- DOMAIN-SUFFIX,dssott.com,GlobalMedia +- DOMAIN,cdn.registerdisney.go.com,GlobalMedia +# > encoreTVB +# USER-AGENT,encoreTVB*,GlobalMedia +- DOMAIN-SUFFIX,encoretvb.com,GlobalMedia +- DOMAIN,edge.api.brightcove.com,GlobalMedia +- DOMAIN,bcbolt446c5271-a.akamaihd.net,GlobalMedia +# > FOX NOW +# USER-AGENT,FOX%20NOW*,GlobalMedia +- DOMAIN-SUFFIX,fox.com,GlobalMedia +- DOMAIN-SUFFIX,foxdcg.com,GlobalMedia +- DOMAIN-SUFFIX,theplatform.com,GlobalMedia +- DOMAIN-SUFFIX,uplynk.com,GlobalMedia +# > HBO NOW +# USER-AGENT,HBO%20NOW*,GlobalMedia +- DOMAIN-SUFFIX,hbo.com,GlobalMedia +- DOMAIN-SUFFIX,hbogo.com,GlobalMedia +- DOMAIN-SUFFIX,hbonow.com,GlobalMedia +# > HBO GO HKG +# USER-AGENT,HBO%20GO%20PROD%20HKG*,GlobalMedia +- DOMAIN-SUFFIX,hbogoasia.com,GlobalMedia +- DOMAIN-SUFFIX,hbogoasia.hk,GlobalMedia +- DOMAIN,bcbolthboa-a.akamaihd.net,GlobalMedia +- DOMAIN,players.brightcove.net,GlobalMedia +- DOMAIN,s3-ap-southeast-1.amazonaws.com,GlobalMedia +- DOMAIN,dai3fd1oh325y.cloudfront.net,GlobalMedia +- DOMAIN,44wilhpljf.execute-api.ap-southeast-1.amazonaws.com,GlobalMedia +- DOMAIN,hboasia1-i.akamaihd.net,GlobalMedia +- DOMAIN,hboasia2-i.akamaihd.net,GlobalMedia +- DOMAIN,hboasia3-i.akamaihd.net,GlobalMedia +- DOMAIN,hboasia4-i.akamaihd.net,GlobalMedia +- DOMAIN,hboasia5-i.akamaihd.net,GlobalMedia +- DOMAIN,cf-images.ap-southeast-1.prod.boltdns.net,GlobalMedia +# > 华文电视 +# USER-AGENT,HWTVMobile*,GlobalMedia +- DOMAIN-SUFFIX,5itv.tv,GlobalMedia +- DOMAIN-SUFFIX,ocnttv.com,GlobalMedia +# > Hulu +- DOMAIN-SUFFIX,hulu.com,GlobalMedia +- DOMAIN-SUFFIX,huluim.com,GlobalMedia +- DOMAIN-SUFFIX,hulustream.com,GlobalMedia +# > Hulu(フールー) +- DOMAIN-SUFFIX,happyon.jp,GlobalMedia +- DOMAIN-SUFFIX,hulu.jp,GlobalMedia +# > ITV +# USER-AGENT,ITV_Player*,GlobalMedia +- DOMAIN-SUFFIX,itv.com,GlobalMedia +- DOMAIN-SUFFIX,itvstatic.com,GlobalMedia +- DOMAIN,itvpnpmobile-a.akamaihd.net,GlobalMedia +# > KKTV +# USER-AGENT,KKTV*,GlobalMedia +# USER-AGENT,com.kktv.ios.kktv*,GlobalMedia +- DOMAIN-SUFFIX,kktv.com.tw,GlobalMedia +- DOMAIN-SUFFIX,kktv.me,GlobalMedia +- DOMAIN,kktv-theater.kk.stream,GlobalMedia +# > Line TV +# USER-AGENT,LINE%20TV*,GlobalMedia +- DOMAIN-SUFFIX,linetv.tw,GlobalMedia +- DOMAIN,d3c7rimkq79yfu.cloudfront.net,GlobalMedia +# > LiTV +- DOMAIN-SUFFIX,litv.tv,GlobalMedia +- DOMAIN,litvfreemobile-hichannel.cdn.hinet.net,GlobalMedia +# > My5 +# USER-AGENT,My5*,GlobalMedia +- DOMAIN-SUFFIX,channel5.com,GlobalMedia +- DOMAIN-SUFFIX,my5.tv,GlobalMedia +- DOMAIN,d349g9zuie06uo.cloudfront.net,GlobalMedia +# > myTV SUPER +# USER-AGENT,mytv*,GlobalMedia +- DOMAIN-SUFFIX,mytvsuper.com,GlobalMedia +- DOMAIN-SUFFIX,tvb.com,GlobalMedia +# > Netflix +# USER-AGENT,Argo*,GlobalMedia +- DOMAIN-SUFFIX,netflix.com,GlobalMedia +- DOMAIN-SUFFIX,netflix.net,GlobalMedia +- DOMAIN-SUFFIX,nflxext.com,GlobalMedia +- DOMAIN-SUFFIX,nflximg.com,GlobalMedia +- DOMAIN-SUFFIX,nflximg.net,GlobalMedia +- DOMAIN-SUFFIX,nflxso.net,GlobalMedia +- DOMAIN-SUFFIX,nflxvideo.net,GlobalMedia +- DOMAIN-SUFFIX,netflixdnstest0.com,GlobalMedia +- DOMAIN-SUFFIX,netflixdnstest1.com,GlobalMedia +- DOMAIN-SUFFIX,netflixdnstest2.com,GlobalMedia +- DOMAIN-SUFFIX,netflixdnstest3.com,GlobalMedia +- DOMAIN-SUFFIX,netflixdnstest4.com,GlobalMedia +- DOMAIN-SUFFIX,netflixdnstest5.com,GlobalMedia +- DOMAIN-SUFFIX,netflixdnstest6.com,GlobalMedia +- DOMAIN-SUFFIX,netflixdnstest7.com,GlobalMedia +- DOMAIN-SUFFIX,netflixdnstest8.com,GlobalMedia +- DOMAIN-SUFFIX,netflixdnstest9.com,GlobalMedia +- IP-CIDR,23.246.0.0/18,GlobalMedia,no-resolve +- IP-CIDR,37.77.184.0/21,GlobalMedia,no-resolve +- IP-CIDR,45.57.0.0/17,GlobalMedia,no-resolve +- IP-CIDR,64.120.128.0/17,GlobalMedia,no-resolve +- IP-CIDR,66.197.128.0/17,GlobalMedia,no-resolve +- IP-CIDR,108.175.32.0/20,GlobalMedia,no-resolve +- IP-CIDR,192.173.64.0/18,GlobalMedia,no-resolve +- IP-CIDR,198.38.96.0/19,GlobalMedia,no-resolve +- IP-CIDR,198.45.48.0/20,GlobalMedia,no-resolve +# > niconico +# USER-AGENT,Niconico*,GlobalMedia +- DOMAIN-SUFFIX,dmc.nico,GlobalMedia +- DOMAIN-SUFFIX,nicovideo.jp,GlobalMedia +- DOMAIN-SUFFIX,nimg.jp,GlobalMedia +- DOMAIN-SUFFIX,socdm.com,GlobalMedia +# > PBS +# USER-AGENT,PBS*,GlobalMedia +- DOMAIN-SUFFIX,pbs.org,GlobalMedia +# > Pornhub +- DOMAIN-SUFFIX,phncdn.com,GlobalMedia +- DOMAIN-SUFFIX,pornhub.com,GlobalMedia +- DOMAIN-SUFFIX,pornhubpremium.com,GlobalMedia +# > 台湾好 +# USER-AGENT,TaiwanGood*,GlobalMedia +- DOMAIN-SUFFIX,skyking.com.tw,GlobalMedia +- DOMAIN,hamifans.emome.net,GlobalMedia +# > Twitch +- DOMAIN-SUFFIX,twitch.tv,GlobalMedia +- DOMAIN-SUFFIX,twitchcdn.net,GlobalMedia +- DOMAIN-SUFFIX,ttvnw.net,GlobalMedia +- DOMAIN-SUFFIX,jtvnw.net,GlobalMedia +# > ViuTV +# USER-AGENT,Viu*,GlobalMedia +# USER-AGENT,ViuTV*,GlobalMedia +- DOMAIN-SUFFIX,viu.com,GlobalMedia +- DOMAIN-SUFFIX,viu.tv,GlobalMedia +- DOMAIN,api.viu.now.com,GlobalMedia +- DOMAIN,d1k2us671qcoau.cloudfront.net,GlobalMedia +- DOMAIN,d2anahhhmp1ffz.cloudfront.net,GlobalMedia +- DOMAIN,dfp6rglgjqszk.cloudfront.net,GlobalMedia +# > YouTube +# USER-AGENT,com.google.ios.youtube*,GlobalMedia +# USER-AGENT,YouTube*,GlobalMedia +- DOMAIN-SUFFIX,googlevideo.com,GlobalMedia +- DOMAIN-SUFFIX,youtube.com,GlobalMedia +- DOMAIN,youtubei.googleapis.com,GlobalMedia + +# (HKMTMedia) +# > 愛奇藝台灣站 +- DOMAIN-SUFFIX,iqiyi.com,HKMTMedia +- DOMAIN-SUFFIX,71.am,HKMTMedia +# > bilibili +- DOMAIN-SUFFIX,bilibili.com,HKMTMedia +- DOMAIN,upos-hz-mirrorakam.akamaized.net,HKMTMedia + +# (DNS Cache Pollution Protection) +# > Google +- DOMAIN-SUFFIX,ampproject.org,PROXY +- DOMAIN-SUFFIX,appspot.com,PROXY +- DOMAIN-SUFFIX,blogger.com,PROXY +- DOMAIN-SUFFIX,getoutline.org,PROXY +- DOMAIN-SUFFIX,gvt0.com,PROXY +- DOMAIN-SUFFIX,gvt1.com,PROXY +- DOMAIN-SUFFIX,gvt3.com,PROXY +- DOMAIN-SUFFIX,xn--ngstr-lra8j.com,PROXY +- DOMAIN-KEYWORD,google,PROXY +- DOMAIN-KEYWORD,blogspot,PROXY +# > Microsoft +- DOMAIN-SUFFIX,onedrive.live.com,PROXY +- DOMAIN-SUFFIX,xboxlive.com,PROXY +# > Facebook +- DOMAIN-SUFFIX,cdninstagram.com,PROXY +- DOMAIN-SUFFIX,fb.com,PROXY +- DOMAIN-SUFFIX,fb.me,PROXY +- DOMAIN-SUFFIX,fbaddins.com,PROXY +- DOMAIN-SUFFIX,fbcdn.net,PROXY +- DOMAIN-SUFFIX,fbsbx.com,PROXY +- DOMAIN-SUFFIX,fbworkmail.com,PROXY +- DOMAIN-SUFFIX,instagram.com,PROXY +- DOMAIN-SUFFIX,m.me,PROXY +- DOMAIN-SUFFIX,messenger.com,PROXY +- DOMAIN-SUFFIX,oculus.com,PROXY +- DOMAIN-SUFFIX,oculuscdn.com,PROXY +- DOMAIN-SUFFIX,rocksdb.org,PROXY +- DOMAIN-SUFFIX,whatsapp.com,PROXY +- DOMAIN-SUFFIX,whatsapp.net,PROXY +- DOMAIN-KEYWORD,facebook,PROXY +- IP-CIDR,3.123.36.126/32,PROXY,no-resolve +- IP-CIDR,35.157.215.84/32,PROXY,no-resolve +- IP-CIDR,35.157.217.255/32,PROXY,no-resolve +- IP-CIDR,52.58.209.134/32,PROXY,no-resolve +- IP-CIDR,54.93.124.31/32,PROXY,no-resolve +- IP-CIDR,54.162.243.80/32,PROXY,no-resolve +- IP-CIDR,54.173.34.141/32,PROXY,no-resolve +- IP-CIDR,54.235.23.242/32,PROXY,no-resolve +- IP-CIDR,169.45.248.118/32,PROXY,no-resolve +# > Twitter +- DOMAIN-SUFFIX,pscp.tv,PROXY +- DOMAIN-SUFFIX,periscope.tv,PROXY +- DOMAIN-SUFFIX,t.co,PROXY +- DOMAIN-SUFFIX,twimg.co,PROXY +- DOMAIN-SUFFIX,twimg.com,PROXY +- DOMAIN-SUFFIX,twitpic.com,PROXY +- DOMAIN-SUFFIX,vine.co,PROXY +- DOMAIN-KEYWORD,twitter,PROXY +# > Telegram +- DOMAIN-SUFFIX,t.me,PROXY +- DOMAIN-SUFFIX,tdesktop.com,PROXY +- DOMAIN-SUFFIX,telegra.ph,PROXY +- DOMAIN-SUFFIX,telegram.me,PROXY +- DOMAIN-SUFFIX,telegram.org,PROXY +- IP-CIDR,91.108.4.0/22,PROXY,no-resolve +- IP-CIDR,91.108.8.0/22,PROXY,no-resolve +- IP-CIDR,91.108.12.0/22,PROXY,no-resolve +- IP-CIDR,91.108.16.0/22,PROXY,no-resolve +- IP-CIDR,91.108.56.0/22,PROXY,no-resolve +- IP-CIDR,149.154.160.0/20,PROXY,no-resolve +# > Line +- DOMAIN-SUFFIX,line.me,PROXY +- DOMAIN-SUFFIX,line-apps.com,PROXY +- DOMAIN-SUFFIX,line-scdn.net,PROXY +- DOMAIN-SUFFIX,naver.jp,PROXY +- IP-CIDR,103.2.30.0/23,PROXY,no-resolve +- IP-CIDR,125.209.208.0/20,PROXY,no-resolve +- IP-CIDR,147.92.128.0/17,PROXY,no-resolve +- IP-CIDR,203.104.144.0/21,PROXY,no-resolve +# > Other +- DOMAIN-SUFFIX,4shared.com,PROXY +- DOMAIN-SUFFIX,520cc.cc,PROXY +- DOMAIN-SUFFIX,881903.com,PROXY +- DOMAIN-SUFFIX,9cache.com,PROXY +- DOMAIN-SUFFIX,9gag.com,PROXY +- DOMAIN-SUFFIX,abc.com,PROXY +- DOMAIN-SUFFIX,abc.net.au,PROXY +- DOMAIN-SUFFIX,abebooks.com,PROXY +- DOMAIN-SUFFIX,amazon.co.jp,PROXY +- DOMAIN-SUFFIX,apigee.com,PROXY +- DOMAIN-SUFFIX,apk-dl.com,PROXY +- DOMAIN-SUFFIX,apkfind.com,PROXY +- DOMAIN-SUFFIX,apkmirror.com,PROXY +- DOMAIN-SUFFIX,apkmonk.com,PROXY +- DOMAIN-SUFFIX,apkpure.com,PROXY +- DOMAIN-SUFFIX,aptoide.com,PROXY +- DOMAIN-SUFFIX,archive.is,PROXY +- DOMAIN-SUFFIX,archive.org,PROXY +- DOMAIN-SUFFIX,arte.tv,PROXY +- DOMAIN-SUFFIX,artstation.com,PROXY +- DOMAIN-SUFFIX,arukas.io,PROXY +- DOMAIN-SUFFIX,ask.com,PROXY +- DOMAIN-SUFFIX,avg.com,PROXY +- DOMAIN-SUFFIX,avgle.com,PROXY +- DOMAIN-SUFFIX,badoo.com,PROXY +- DOMAIN-SUFFIX,bandwagonhost.com,PROXY +- DOMAIN-SUFFIX,bbc.com,PROXY +- DOMAIN-SUFFIX,behance.net,PROXY +- DOMAIN-SUFFIX,bibox.com,PROXY +- DOMAIN-SUFFIX,biggo.com.tw,PROXY +- DOMAIN-SUFFIX,binance.com,PROXY +- DOMAIN-SUFFIX,bitcointalk.org,PROXY +- DOMAIN-SUFFIX,bitfinex.com,PROXY +- DOMAIN-SUFFIX,bitmex.com,PROXY +- DOMAIN-SUFFIX,bit-z.com,PROXY +- DOMAIN-SUFFIX,bloglovin.com,PROXY +- DOMAIN-SUFFIX,bloomberg.cn,PROXY +- DOMAIN-SUFFIX,bloomberg.com,PROXY +- DOMAIN-SUFFIX,blubrry.com,PROXY +- DOMAIN-SUFFIX,book.com.tw,PROXY +- DOMAIN-SUFFIX,booklive.jp,PROXY +- DOMAIN-SUFFIX,books.com.tw,PROXY +- DOMAIN-SUFFIX,boslife.net,PROXY +- DOMAIN-SUFFIX,box.com,PROXY +- DOMAIN-SUFFIX,businessinsider.com,PROXY +- DOMAIN-SUFFIX,bwh1.net,PROXY +- DOMAIN-SUFFIX,castbox.fm,PROXY +- DOMAIN-SUFFIX,cbc.ca,PROXY +- DOMAIN-SUFFIX,cdw.com,PROXY +- DOMAIN-SUFFIX,change.org,PROXY +- DOMAIN-SUFFIX,channelnewsasia.com,PROXY +- DOMAIN-SUFFIX,ck101.com,PROXY +- DOMAIN-SUFFIX,clarionproject.org,PROXY +- DOMAIN-SUFFIX,clyp.it,PROXY +- DOMAIN-SUFFIX,cna.com.tw,PROXY +- DOMAIN-SUFFIX,comparitech.com,PROXY +- DOMAIN-SUFFIX,conoha.jp,PROXY +- DOMAIN-SUFFIX,crucial.com,PROXY +- DOMAIN-SUFFIX,cts.com.tw,PROXY +- DOMAIN-SUFFIX,cw.com.tw,PROXY +- DOMAIN-SUFFIX,cyberctm.com,PROXY +- DOMAIN-SUFFIX,dailymotion.com,PROXY +- DOMAIN-SUFFIX,dailyview.tw,PROXY +- DOMAIN-SUFFIX,daum.net,PROXY +- DOMAIN-SUFFIX,daumcdn.net,PROXY +- DOMAIN-SUFFIX,dcard.tw,PROXY +- DOMAIN-SUFFIX,deepdiscount.com,PROXY +- DOMAIN-SUFFIX,depositphotos.com,PROXY +- DOMAIN-SUFFIX,deviantart.com,PROXY +- DOMAIN-SUFFIX,disconnect.me,PROXY +- DOMAIN-SUFFIX,discordapp.com,PROXY +- DOMAIN-SUFFIX,discordapp.net,PROXY +- DOMAIN-SUFFIX,disqus.com,PROXY +- DOMAIN-SUFFIX,dlercloud.com,PROXY +- DOMAIN-SUFFIX,dns2go.com,PROXY +- DOMAIN-SUFFIX,dowjones.com,PROXY +- DOMAIN-SUFFIX,dropbox.com,PROXY +- DOMAIN-SUFFIX,dropboxusercontent.com,PROXY +- DOMAIN-SUFFIX,duckduckgo.com,PROXY +- DOMAIN-SUFFIX,dw.com,PROXY +- DOMAIN-SUFFIX,dynu.com,PROXY +- DOMAIN-SUFFIX,earthcam.com,PROXY +- DOMAIN-SUFFIX,ebookservice.tw,PROXY +- DOMAIN-SUFFIX,economist.com,PROXY +- DOMAIN-SUFFIX,edgecastcdn.net,PROXY +- DOMAIN-SUFFIX,edu,PROXY +- DOMAIN-SUFFIX,elpais.com,PROXY +- DOMAIN-SUFFIX,enanyang.my,PROXY +- DOMAIN-SUFFIX,encyclopedia.com,PROXY +- DOMAIN-SUFFIX,esoir.be,PROXY +- DOMAIN-SUFFIX,etherscan.io,PROXY +- DOMAIN-SUFFIX,euronews.com,PROXY +- DOMAIN-SUFFIX,evozi.com,PROXY +- DOMAIN-SUFFIX,feedly.com,PROXY +- DOMAIN-SUFFIX,firech.at,PROXY +- DOMAIN-SUFFIX,flickr.com,PROXY +- DOMAIN-SUFFIX,flitto.com,PROXY +- DOMAIN-SUFFIX,foreignpolicy.com,PROXY +- DOMAIN-SUFFIX,freebrowser.org,PROXY +- DOMAIN-SUFFIX,freewechat.com,PROXY +- DOMAIN-SUFFIX,freeweibo.com,PROXY +- DOMAIN-SUFFIX,friday.tw,PROXY +- DOMAIN-SUFFIX,ftchinese.com,PROXY +- DOMAIN-SUFFIX,ftimg.net,PROXY +- DOMAIN-SUFFIX,gate.io,PROXY +- DOMAIN-SUFFIX,getlantern.org,PROXY +- DOMAIN-SUFFIX,getsync.com,PROXY +- DOMAIN-SUFFIX,globalvoices.org,PROXY +- DOMAIN-SUFFIX,goo.ne.jp,PROXY +- DOMAIN-SUFFIX,goodreads.com,PROXY +- DOMAIN-SUFFIX,gov,PROXY +- DOMAIN-SUFFIX,gov.tw,PROXY +- DOMAIN-SUFFIX,greatfire.org,PROXY +- DOMAIN-SUFFIX,gumroad.com,PROXY +- DOMAIN-SUFFIX,hbg.com,PROXY +- DOMAIN-SUFFIX,heroku.com,PROXY +- DOMAIN-SUFFIX,hightail.com,PROXY +- DOMAIN-SUFFIX,hk01.com,PROXY +- DOMAIN-SUFFIX,hkbf.org,PROXY +- DOMAIN-SUFFIX,hkbookcity.com,PROXY +- DOMAIN-SUFFIX,hkej.com,PROXY +- DOMAIN-SUFFIX,hket.com,PROXY +- DOMAIN-SUFFIX,hkgolden.com,PROXY +- DOMAIN-SUFFIX,hootsuite.com,PROXY +- DOMAIN-SUFFIX,hudson.org,PROXY +- DOMAIN-SUFFIX,hyread.com.tw,PROXY +- DOMAIN-SUFFIX,ibtimes.com,PROXY +- DOMAIN-SUFFIX,i-cable.com,PROXY +- DOMAIN-SUFFIX,icij.org,PROXY +- DOMAIN-SUFFIX,icoco.com,PROXY +- DOMAIN-SUFFIX,imgur.com,PROXY +- DOMAIN-SUFFIX,initiummall.com,PROXY +- DOMAIN-SUFFIX,insecam.org,PROXY +- DOMAIN-SUFFIX,ipfs.io,PROXY +- DOMAIN-SUFFIX,issuu.com,PROXY +- DOMAIN-SUFFIX,istockphoto.com,PROXY +- DOMAIN-SUFFIX,japantimes.co.jp,PROXY +- DOMAIN-SUFFIX,jiji.com,PROXY +- DOMAIN-SUFFIX,jinx.com,PROXY +- DOMAIN-SUFFIX,jkforum.net,PROXY +- DOMAIN-SUFFIX,joinmastodon.org,PROXY +- DOMAIN-SUFFIX,justmysocks.net,PROXY +- DOMAIN-SUFFIX,justpaste.it,PROXY +- DOMAIN-SUFFIX,kakao.com,PROXY +- DOMAIN-SUFFIX,kakaocorp.com,PROXY +- DOMAIN-SUFFIX,kik.com,PROXY +- DOMAIN-SUFFIX,kobo.com,PROXY +- DOMAIN-SUFFIX,kobobooks.com,PROXY +- DOMAIN-SUFFIX,kodingen.com,PROXY +- DOMAIN-SUFFIX,lemonde.fr,PROXY +- DOMAIN-SUFFIX,lepoint.fr,PROXY +- DOMAIN-SUFFIX,lihkg.com,PROXY +- DOMAIN-SUFFIX,listennotes.com,PROXY +- DOMAIN-SUFFIX,livestream.com,PROXY +- DOMAIN-SUFFIX,logmein.com,PROXY +- DOMAIN-SUFFIX,mail.ru,PROXY +- DOMAIN-SUFFIX,mailchimp.com,PROXY +- DOMAIN-SUFFIX,marc.info,PROXY +- DOMAIN-SUFFIX,matters.news,PROXY +- DOMAIN-SUFFIX,maying.co,PROXY +- DOMAIN-SUFFIX,medium.com,PROXY +- DOMAIN-SUFFIX,mega.nz,PROXY +- DOMAIN-SUFFIX,mil,PROXY +- DOMAIN-SUFFIX,mingpao.com,PROXY +- DOMAIN-SUFFIX,mobile01.com,PROXY +- DOMAIN-SUFFIX,myspace.com,PROXY +- DOMAIN-SUFFIX,myspacecdn.com,PROXY +- DOMAIN-SUFFIX,nanyang.com,PROXY +- DOMAIN-SUFFIX,naver.com,PROXY +- DOMAIN-SUFFIX,neowin.net,PROXY +- DOMAIN-SUFFIX,newstapa.org,PROXY +- DOMAIN-SUFFIX,nexitally.com,PROXY +- DOMAIN-SUFFIX,nhk.or.jp,PROXY +- DOMAIN-SUFFIX,nicovideo.jp,PROXY +- DOMAIN-SUFFIX,nii.ac.jp,PROXY +- DOMAIN-SUFFIX,nikkei.com,PROXY +- DOMAIN-SUFFIX,nofile.io,PROXY +- DOMAIN-SUFFIX,now.com,PROXY +- DOMAIN-SUFFIX,nrk.no,PROXY +- DOMAIN-SUFFIX,nyt.com,PROXY +- DOMAIN-SUFFIX,nytchina.com,PROXY +- DOMAIN-SUFFIX,nytcn.me,PROXY +- DOMAIN-SUFFIX,nytco.com,PROXY +- DOMAIN-SUFFIX,nytimes.com,PROXY +- DOMAIN-SUFFIX,nytimg.com,PROXY +- DOMAIN-SUFFIX,nytlog.com,PROXY +- DOMAIN-SUFFIX,nytstyle.com,PROXY +- DOMAIN-SUFFIX,ok.ru,PROXY +- DOMAIN-SUFFIX,okex.com,PROXY +- DOMAIN-SUFFIX,on.cc,PROXY +- DOMAIN-SUFFIX,orientaldaily.com.my,PROXY +- DOMAIN-SUFFIX,overcast.fm,PROXY +- DOMAIN-SUFFIX,paltalk.com,PROXY +- DOMAIN-SUFFIX,pao-pao.net,PROXY +- DOMAIN-SUFFIX,parsevideo.com,PROXY +- DOMAIN-SUFFIX,pbxes.com,PROXY +- DOMAIN-SUFFIX,pcdvd.com.tw,PROXY +- DOMAIN-SUFFIX,pchome.com.tw,PROXY +- DOMAIN-SUFFIX,pcloud.com,PROXY +- DOMAIN-SUFFIX,picacomic.com,PROXY +- DOMAIN-SUFFIX,pinimg.com,PROXY +- DOMAIN-SUFFIX,pixiv.net,PROXY +- DOMAIN-SUFFIX,player.fm,PROXY +- DOMAIN-SUFFIX,plurk.com,PROXY +- DOMAIN-SUFFIX,po18.tw,PROXY +- DOMAIN-SUFFIX,potato.im,PROXY +- DOMAIN-SUFFIX,potatso.com,PROXY +- DOMAIN-SUFFIX,prism-break.org,PROXY +- DOMAIN-SUFFIX,proxifier.com,PROXY +- DOMAIN-SUFFIX,pt.im,PROXY +- DOMAIN-SUFFIX,pts.org.tw,PROXY +- DOMAIN-SUFFIX,pubu.com.tw,PROXY +- DOMAIN-SUFFIX,pubu.tw,PROXY +- DOMAIN-SUFFIX,pureapk.com,PROXY +- DOMAIN-SUFFIX,quora.com,PROXY +- DOMAIN-SUFFIX,quoracdn.net,PROXY +- DOMAIN-SUFFIX,rakuten.co.jp,PROXY +- DOMAIN-SUFFIX,readingtimes.com.tw,PROXY +- DOMAIN-SUFFIX,readmoo.com,PROXY +- DOMAIN-SUFFIX,redbubble.com,PROXY +- DOMAIN-SUFFIX,reddit.com,PROXY +- DOMAIN-SUFFIX,redditmedia.com,PROXY +- DOMAIN-SUFFIX,resilio.com,PROXY +- DOMAIN-SUFFIX,reuters.com,PROXY +- DOMAIN-SUFFIX,reutersmedia.net,PROXY +- DOMAIN-SUFFIX,rfi.fr,PROXY +- DOMAIN-SUFFIX,rixcloud.com,PROXY +- DOMAIN-SUFFIX,roadshow.hk,PROXY +- DOMAIN-SUFFIX,scmp.com,PROXY +- DOMAIN-SUFFIX,scribd.com,PROXY +- DOMAIN-SUFFIX,seatguru.com,PROXY +- DOMAIN-SUFFIX,shadowsocks.org,PROXY +- DOMAIN-SUFFIX,shopee.tw,PROXY +- DOMAIN-SUFFIX,slideshare.net,PROXY +- DOMAIN-SUFFIX,softfamous.com,PROXY +- DOMAIN-SUFFIX,soundcloud.com,PROXY +- DOMAIN-SUFFIX,ssrcloud.org,PROXY +- DOMAIN-SUFFIX,startpage.com,PROXY +- DOMAIN-SUFFIX,steamcommunity.com,PROXY +- DOMAIN-SUFFIX,steemit.com,PROXY +- DOMAIN-SUFFIX,steemitwallet.com,PROXY +- DOMAIN-SUFFIX,t66y.com,PROXY +- DOMAIN-SUFFIX,tapatalk.com,PROXY +- DOMAIN-SUFFIX,teco-hk.org,PROXY +- DOMAIN-SUFFIX,teco-mo.org,PROXY +- DOMAIN-SUFFIX,teddysun.com,PROXY +- DOMAIN-SUFFIX,textnow.me,PROXY +- DOMAIN-SUFFIX,theguardian.com,PROXY +- DOMAIN-SUFFIX,theinitium.com,PROXY +- DOMAIN-SUFFIX,thetvdb.com,PROXY +- DOMAIN-SUFFIX,tineye.com,PROXY +- DOMAIN-SUFFIX,torproject.org,PROXY +- DOMAIN-SUFFIX,tumblr.com,PROXY +- DOMAIN-SUFFIX,turbobit.net,PROXY +- DOMAIN-SUFFIX,tutanota.com,PROXY +- DOMAIN-SUFFIX,tvboxnow.com,PROXY +- DOMAIN-SUFFIX,udn.com,PROXY +- DOMAIN-SUFFIX,unseen.is,PROXY +- DOMAIN-SUFFIX,upmedia.mg,PROXY +- DOMAIN-SUFFIX,uptodown.com,PROXY +- DOMAIN-SUFFIX,urbandictionary.com,PROXY +- DOMAIN-SUFFIX,ustream.tv,PROXY +- DOMAIN-SUFFIX,uwants.com,PROXY +- DOMAIN-SUFFIX,v2ray.com,PROXY +- DOMAIN-SUFFIX,viber.com,PROXY +- DOMAIN-SUFFIX,videopress.com,PROXY +- DOMAIN-SUFFIX,vimeo.com,PROXY +- DOMAIN-SUFFIX,voachinese.com,PROXY +- DOMAIN-SUFFIX,voanews.com,PROXY +- DOMAIN-SUFFIX,voxer.com,PROXY +- DOMAIN-SUFFIX,vzw.com,PROXY +- DOMAIN-SUFFIX,w3schools.com,PROXY +- DOMAIN-SUFFIX,washingtonpost.com,PROXY +- DOMAIN-SUFFIX,wattpad.com,PROXY +- DOMAIN-SUFFIX,whoer.net,PROXY +- DOMAIN-SUFFIX,wikimapia.org,PROXY +- DOMAIN-SUFFIX,wikipedia.org,PROXY +- DOMAIN-SUFFIX,wikiquote.org,PROXY +- DOMAIN-SUFFIX,wikiwand.com,PROXY +- DOMAIN-SUFFIX,winudf.com,PROXY +- DOMAIN-SUFFIX,wire.com,PROXY +- DOMAIN-SUFFIX,wordpress.com,PROXY +- DOMAIN-SUFFIX,workflow.is,PROXY +- DOMAIN-SUFFIX,worldcat.org,PROXY +- DOMAIN-SUFFIX,wsj.com,PROXY +- DOMAIN-SUFFIX,wsj.net,PROXY +- DOMAIN-SUFFIX,xhamster.com,PROXY +- DOMAIN-SUFFIX,xn--90wwvt03e.com,PROXY +- DOMAIN-SUFFIX,xn--i2ru8q2qg.com,PROXY +- DOMAIN-SUFFIX,xnxx.com,PROXY +- DOMAIN-SUFFIX,xvideos.com,PROXY +- DOMAIN-SUFFIX,yahoo.com,PROXY +- DOMAIN-SUFFIX,yandex.ru,PROXY +- DOMAIN-SUFFIX,ycombinator.com,PROXY +- DOMAIN-SUFFIX,yesasia.com,PROXY +- DOMAIN-SUFFIX,yes-news.com,PROXY +- DOMAIN-SUFFIX,yomiuri.co.jp,PROXY +- DOMAIN-SUFFIX,you-get.org,PROXY +- DOMAIN-SUFFIX,zaobao.com,PROXY +- DOMAIN-SUFFIX,zb.com,PROXY +- DOMAIN-SUFFIX,zello.com,PROXY +- DOMAIN-SUFFIX,zeronet.io,PROXY +- DOMAIN-SUFFIX,zoom.us,PROXY +- DOMAIN-KEYWORD,github,PROXY +- DOMAIN-KEYWORD,jav,PROXY +- DOMAIN-KEYWORD,pinterest,PROXY +- DOMAIN-KEYWORD,porn,PROXY +- DOMAIN-KEYWORD,wikileaks,PROXY + +# (Region-Restricted Access Denied) +- DOMAIN-SUFFIX,apartmentratings.com,PROXY +- DOMAIN-SUFFIX,apartments.com,PROXY +- DOMAIN-SUFFIX,bankmobilevibe.com,PROXY +- DOMAIN-SUFFIX,bing.com,PROXY +- DOMAIN-SUFFIX,booktopia.com.au,PROXY +- DOMAIN-SUFFIX,cccat.io,PROXY +- DOMAIN-SUFFIX,centauro.com.br,PROXY +- DOMAIN-SUFFIX,clearsurance.com,PROXY +- DOMAIN-SUFFIX,costco.com,PROXY +- DOMAIN-SUFFIX,crackle.com,PROXY +- DOMAIN-SUFFIX,depositphotos.cn,PROXY +- DOMAIN-SUFFIX,dish.com,PROXY +- DOMAIN-SUFFIX,dmm.co.jp,PROXY +- DOMAIN-SUFFIX,dmm.com,PROXY +- DOMAIN-SUFFIX,dnvod.tv,PROXY +- DOMAIN-SUFFIX,esurance.com,PROXY +- DOMAIN-SUFFIX,extmatrix.com,PROXY +- DOMAIN-SUFFIX,fastpic.ru,PROXY +- DOMAIN-SUFFIX,flipboard.com,PROXY +- DOMAIN-SUFFIX,fnac.be,PROXY +- DOMAIN-SUFFIX,fnac.com,PROXY +- DOMAIN-SUFFIX,funkyimg.com,PROXY +- DOMAIN-SUFFIX,fxnetworks.com,PROXY +- DOMAIN-SUFFIX,gettyimages.com,PROXY +- DOMAIN-SUFFIX,go.com,PROXY +- DOMAIN-SUFFIX,here.com,PROXY +- DOMAIN-SUFFIX,jcpenney.com,PROXY +- DOMAIN-SUFFIX,jiehua.tv,PROXY +- DOMAIN-SUFFIX,mailfence.com,PROXY +- DOMAIN-SUFFIX,nationwide.com,PROXY +- DOMAIN-SUFFIX,nbc.com,PROXY +- DOMAIN-SUFFIX,nexon.com,PROXY +- DOMAIN-SUFFIX,nordstrom.com,PROXY +- DOMAIN-SUFFIX,nordstromimage.com,PROXY +- DOMAIN-SUFFIX,nordstromrack.com,PROXY +- DOMAIN-SUFFIX,superpages.com,PROXY +- DOMAIN-SUFFIX,target.com,PROXY +- DOMAIN-SUFFIX,thinkgeek.com,PROXY +- DOMAIN-SUFFIX,tracfone.com,PROXY +- DOMAIN-SUFFIX,unity3d.com,PROXY +- DOMAIN-SUFFIX,uploader.jp,PROXY +- DOMAIN-SUFFIX,vevo.com,PROXY +- DOMAIN-SUFFIX,viu.tv,PROXY +- DOMAIN-SUFFIX,vk.com,PROXY +- DOMAIN-SUFFIX,vsco.co,PROXY +- DOMAIN-SUFFIX,xfinity.com,PROXY +- DOMAIN-SUFFIX,zattoo.com,PROXY +# USER-AGENT,Roam*,PROXY + +# (The Most Popular Sites) +# > Apple +# >> TestFlight +- DOMAIN,testflight.apple.com,PROXY +# >> Apple URL Shortener +- DOMAIN-SUFFIX,appsto.re,PROXY +# >> iBooks Store download +- DOMAIN,books.itunes.apple.com,PROXY +# >> iTunes Store Moveis Trailers +- DOMAIN,hls.itunes.apple.com,PROXY +# >> App Store Preview +- DOMAIN,apps.apple.com,PROXY +- DOMAIN,itunes.apple.com,PROXY +# >> Spotlight +- DOMAIN,api-glb-sea.smoot.apple.com,PROXY +# >> Dictionary +- DOMAIN,lookup-api.apple.com,PROXY +# > Google +- DOMAIN-SUFFIX,abc.xyz,PROXY +- DOMAIN-SUFFIX,android.com,PROXY +- DOMAIN-SUFFIX,androidify.com,PROXY +- DOMAIN-SUFFIX,dialogflow.com,PROXY +- DOMAIN-SUFFIX,autodraw.com,PROXY +- DOMAIN-SUFFIX,capitalg.com,PROXY +- DOMAIN-SUFFIX,certificate-transparency.org,PROXY +- DOMAIN-SUFFIX,chrome.com,PROXY +- DOMAIN-SUFFIX,chromeexperiments.com,PROXY +- DOMAIN-SUFFIX,chromestatus.com,PROXY +- DOMAIN-SUFFIX,chromium.org,PROXY +- DOMAIN-SUFFIX,creativelab5.com,PROXY +- DOMAIN-SUFFIX,debug.com,PROXY +- DOMAIN-SUFFIX,deepmind.com,PROXY +- DOMAIN-SUFFIX,firebaseio.com,PROXY +- DOMAIN-SUFFIX,getmdl.io,PROXY +- DOMAIN-SUFFIX,ggpht.com,PROXY +- DOMAIN-SUFFIX,gmail.com,PROXY +- DOMAIN-SUFFIX,gmodules.com,PROXY +- DOMAIN-SUFFIX,godoc.org,PROXY +- DOMAIN-SUFFIX,golang.org,PROXY +- DOMAIN-SUFFIX,gstatic.com,PROXY +- DOMAIN-SUFFIX,gv.com,PROXY +- DOMAIN-SUFFIX,gwtproject.org,PROXY +- DOMAIN-SUFFIX,itasoftware.com,PROXY +- DOMAIN-SUFFIX,madewithcode.com,PROXY +- DOMAIN-SUFFIX,material.io,PROXY +- DOMAIN-SUFFIX,polymer-project.org,PROXY +- DOMAIN-SUFFIX,admin.recaptcha.net,PROXY +- DOMAIN-SUFFIX,recaptcha.net,PROXY +- DOMAIN-SUFFIX,shattered.io,PROXY +- DOMAIN-SUFFIX,synergyse.com,PROXY +- DOMAIN-SUFFIX,tensorflow.org,PROXY +- DOMAIN-SUFFIX,tfhub.dev,PROXY +- DOMAIN-SUFFIX,tiltbrush.com,PROXY +- DOMAIN-SUFFIX,waveprotocol.org,PROXY +- DOMAIN-SUFFIX,waymo.com,PROXY +- DOMAIN-SUFFIX,webmproject.org,PROXY +- DOMAIN-SUFFIX,webrtc.org,PROXY +- DOMAIN-SUFFIX,whatbrowser.org,PROXY +- DOMAIN-SUFFIX,widevine.com,PROXY +- DOMAIN-SUFFIX,x.company,PROXY +- DOMAIN-SUFFIX,youtu.be,PROXY +- DOMAIN-SUFFIX,yt.be,PROXY +- DOMAIN-SUFFIX,ytimg.com,PROXY +# > Microsoft +# >> Microsoft OneDrive +- DOMAIN-SUFFIX,1drv.com,PROXY +- DOMAIN-SUFFIX,1drv.ms,PROXY +- DOMAIN-SUFFIX,blob.core.windows.net,PROXY +- DOMAIN-SUFFIX,livefilestore.com,PROXY +- DOMAIN-SUFFIX,onedrive.com,PROXY +- DOMAIN-SUFFIX,storage.live.com,PROXY +- DOMAIN-SUFFIX,storage.msn.com,PROXY +- DOMAIN,oneclient.sfx.ms,PROXY +# > Other +- DOMAIN-SUFFIX,0rz.tw,PROXY +- DOMAIN-SUFFIX,4bluestones.biz,PROXY +- DOMAIN-SUFFIX,9bis.net,PROXY +- DOMAIN-SUFFIX,allconnected.co,PROXY +- DOMAIN-SUFFIX,aol.com,PROXY +- DOMAIN-SUFFIX,bcc.com.tw,PROXY +- DOMAIN-SUFFIX,bit.ly,PROXY +- DOMAIN-SUFFIX,bitshare.com,PROXY +- DOMAIN-SUFFIX,blog.jp,PROXY +- DOMAIN-SUFFIX,blogimg.jp,PROXY +- DOMAIN-SUFFIX,blogtd.org,PROXY +- DOMAIN-SUFFIX,broadcast.co.nz,PROXY +- DOMAIN-SUFFIX,camfrog.com,PROXY +- DOMAIN-SUFFIX,cfos.de,PROXY +- DOMAIN-SUFFIX,citypopulation.de,PROXY +- DOMAIN-SUFFIX,cloudfront.net,PROXY +- DOMAIN-SUFFIX,ctitv.com.tw,PROXY +- DOMAIN-SUFFIX,cuhk.edu.hk,PROXY +- DOMAIN-SUFFIX,cusu.hk,PROXY +- DOMAIN-SUFFIX,discord.gg,PROXY +- DOMAIN-SUFFIX,discuss.com.hk,PROXY +- DOMAIN-SUFFIX,dropboxapi.com,PROXY +- DOMAIN-SUFFIX,duolingo.cn,PROXY +- DOMAIN-SUFFIX,edditstatic.com,PROXY +- DOMAIN-SUFFIX,flickriver.com,PROXY +- DOMAIN-SUFFIX,focustaiwan.tw,PROXY +- DOMAIN-SUFFIX,free.fr,PROXY +- DOMAIN-SUFFIX,gigacircle.com,PROXY +- DOMAIN-SUFFIX,hk-pub.com,PROXY +- DOMAIN-SUFFIX,hosting.co.uk,PROXY +- DOMAIN-SUFFIX,hwcdn.net,PROXY +- DOMAIN-SUFFIX,ifixit.com,PROXY +- DOMAIN-SUFFIX,iphone4hongkong.com,PROXY +- DOMAIN-SUFFIX,iphonetaiwan.org,PROXY +- DOMAIN-SUFFIX,iptvbin.com,PROXY +- DOMAIN-SUFFIX,linksalpha.com,PROXY +- DOMAIN-SUFFIX,manyvids.com,PROXY +- DOMAIN-SUFFIX,myactimes.com,PROXY +- DOMAIN-SUFFIX,newsblur.com,PROXY +- DOMAIN-SUFFIX,now.im,PROXY +- DOMAIN-SUFFIX,nowe.com,PROXY +- DOMAIN-SUFFIX,redditlist.com,PROXY +- DOMAIN-SUFFIX,s3.amazonaws.com,PROXY +- DOMAIN-SUFFIX,signal.org,PROXY +- DOMAIN-SUFFIX,smartmailcloud.com,PROXY +- DOMAIN-SUFFIX,sparknotes.com,PROXY +- DOMAIN-SUFFIX,streetvoice.com,PROXY +- DOMAIN-SUFFIX,supertop.co,PROXY +- DOMAIN-SUFFIX,tv.com,PROXY +- DOMAIN-SUFFIX,typepad.com,PROXY +- DOMAIN-SUFFIX,udnbkk.com,PROXY +- DOMAIN-SUFFIX,urbanairship.com,PROXY +- DOMAIN-SUFFIX,whispersystems.org,PROXY +- DOMAIN-SUFFIX,wikia.com,PROXY +- DOMAIN-SUFFIX,wn.com,PROXY +- DOMAIN-SUFFIX,wolframalpha.com,PROXY +- DOMAIN-SUFFIX,x-art.com,PROXY +- DOMAIN-SUFFIX,yimg.com,PROXY +- DOMAIN,api.steampowered.com,PROXY +- DOMAIN,store.steampowered.com,PROXY + +# China Area Network +# > 360 +- DOMAIN-SUFFIX,qhres.com,DIRECT +- DOMAIN-SUFFIX,qhimg.com,DIRECT +# > Akamai +- DOMAIN-SUFFIX,akadns.net,DIRECT +# - DOMAIN-SUFFIX,akamai.net,DIRECT +# - DOMAIN-SUFFIX,akamaiedge.net,DIRECT +# - DOMAIN-SUFFIX,akamaihd.net,DIRECT +# - DOMAIN-SUFFIX,akamaistream.net,DIRECT +# - DOMAIN-SUFFIX,akamaized.net,DIRECT +# > Alibaba +# USER-AGENT,%E4%BC%98%E9%85%B7*,DIRECT +- DOMAIN-SUFFIX,alibaba.com,DIRECT +- DOMAIN-SUFFIX,alicdn.com,DIRECT +- DOMAIN-SUFFIX,alikunlun.com,DIRECT +- DOMAIN-SUFFIX,alipay.com,DIRECT +- DOMAIN-SUFFIX,amap.com,DIRECT +- DOMAIN-SUFFIX,autonavi.com,DIRECT +- DOMAIN-SUFFIX,dingtalk.com,DIRECT +- DOMAIN-SUFFIX,mxhichina.com,DIRECT +- DOMAIN-SUFFIX,soku.com,DIRECT +- DOMAIN-SUFFIX,taobao.com,DIRECT +- DOMAIN-SUFFIX,tmall.com,DIRECT +- DOMAIN-SUFFIX,tmall.hk,DIRECT +- DOMAIN-SUFFIX,ykimg.com,DIRECT +- DOMAIN-SUFFIX,youku.com,DIRECT +- DOMAIN-SUFFIX,xiami.com,DIRECT +- DOMAIN-SUFFIX,xiami.net,DIRECT +# > Baidu +- DOMAIN-SUFFIX,baidu.com,DIRECT +- DOMAIN-SUFFIX,baidubcr.com,DIRECT +- DOMAIN-SUFFIX,bdstatic.com,DIRECT +- DOMAIN-SUFFIX,yunjiasu-cdn.net,DIRECT +# > bilibili +- DOMAIN-SUFFIX,acgvideo.com,DIRECT +- DOMAIN-SUFFIX,biliapi.com,DIRECT +- DOMAIN-SUFFIX,biliapi.net,DIRECT +- DOMAIN-SUFFIX,bilibili.com,DIRECT +- DOMAIN-SUFFIX,bilibili.tv,DIRECT +- DOMAIN-SUFFIX,hdslb.com,DIRECT +# > Blizzard +- DOMAIN-SUFFIX,blizzard.com,DIRECT +- DOMAIN-SUFFIX,battle.net,DIRECT +- DOMAIN,blzddist1-a.akamaihd.net,DIRECT +# > ByteDance +- DOMAIN-SUFFIX,feiliao.com,DIRECT +- DOMAIN-SUFFIX,pstatp.com,DIRECT +- DOMAIN-SUFFIX,snssdk.com,DIRECT +- DOMAIN-SUFFIX,iesdouyin.com,DIRECT +- DOMAIN-SUFFIX,toutiao.com,DIRECT +# > CCTV +- DOMAIN-SUFFIX,cctv.com,DIRECT +- DOMAIN-SUFFIX,cctvpic.com,DIRECT +- DOMAIN-SUFFIX,livechina.com,DIRECT +# > DiDi +- DOMAIN-SUFFIX,didialift.com,DIRECT +- DOMAIN-SUFFIX,didiglobal.com,DIRECT +- DOMAIN-SUFFIX,udache.com,DIRECT +# > 蛋蛋赞 +- DOMAIN-SUFFIX,343480.com,DIRECT +- DOMAIN-SUFFIX,baduziyuan.com,DIRECT +- DOMAIN-SUFFIX,com-hs-hkdy.com,DIRECT +- DOMAIN-SUFFIX,czybjz.com,DIRECT +- DOMAIN-SUFFIX,dandanzan.com,DIRECT +- DOMAIN-SUFFIX,fjhps.com,DIRECT +- DOMAIN-SUFFIX,kuyunbo.club,DIRECT +# > ChinaNet +- DOMAIN-SUFFIX,21cn.com,DIRECT +# > HunanTV +- DOMAIN-SUFFIX,hitv.com,DIRECT +- DOMAIN-SUFFIX,mgtv.com,DIRECT +# > iQiyi +- DOMAIN-SUFFIX,iqiyi.com,DIRECT +- DOMAIN-SUFFIX,iqiyipic.com,DIRECT +- DOMAIN-SUFFIX,71.am.com,DIRECT +# > JD +- DOMAIN-SUFFIX,jd.com,DIRECT +- DOMAIN-SUFFIX,jd.hk,DIRECT +- DOMAIN-SUFFIX,jdpay.com,DIRECT +- DOMAIN-SUFFIX,360buyimg.com,DIRECT +# > Kingsoft +- DOMAIN-SUFFIX,iciba.com,DIRECT +- DOMAIN-SUFFIX,ksosoft.com,DIRECT +# > Meitu +- DOMAIN-SUFFIX,meitu.com,DIRECT +- DOMAIN-SUFFIX,meitudata.com,DIRECT +- DOMAIN-SUFFIX,meitustat.com,DIRECT +- DOMAIN-SUFFIX,meipai.com,DIRECT +# > MI +- DOMAIN-SUFFIX,duokan.com,DIRECT +- DOMAIN-SUFFIX,mi-img.com,DIRECT +- DOMAIN-SUFFIX,miui.com,DIRECT +- DOMAIN-SUFFIX,miwifi.com,DIRECT +- DOMAIN-SUFFIX,xiaomi.com,DIRECT +# > Microsoft +- DOMAIN-SUFFIX,microsoft.com,DIRECT +- DOMAIN-SUFFIX,msecnd.net,DIRECT +- DOMAIN-SUFFIX,office365.com,DIRECT +- DOMAIN-SUFFIX,outlook.com,DIRECT +- DOMAIN-SUFFIX,s-microsoft.com,DIRECT +- DOMAIN-SUFFIX,visualstudio.com,DIRECT +- DOMAIN-SUFFIX,windows.com,DIRECT +- DOMAIN-SUFFIX,windowsupdate.com,DIRECT +- DOMAIN,officecdn-microsoft-com.akamaized.net,DIRECT +# > NetEase +# USER-AGENT,NeteaseMusic*,DIRECT +# USER-AGENT,%E7%BD%91%E6%98%93%E4%BA%91%E9%9F%B3%E4%B9%90*,DIRECT +- DOMAIN-SUFFIX,163.com,DIRECT +- DOMAIN-SUFFIX,126.net,DIRECT +- DOMAIN-SUFFIX,127.net,DIRECT +- DOMAIN-SUFFIX,163yun.com,DIRECT +- DOMAIN-SUFFIX,lofter.com,DIRECT +- DOMAIN-SUFFIX,netease.com,DIRECT +- DOMAIN-SUFFIX,ydstatic.com,DIRECT +# > Sina +- DOMAIN-SUFFIX,sina.com,DIRECT +- DOMAIN-SUFFIX,weibo.com,DIRECT +- DOMAIN-SUFFIX,weibocdn.com,DIRECT +# > Sohu +- DOMAIN-SUFFIX,sohu.com,DIRECT +- DOMAIN-SUFFIX,sohucs.com,DIRECT +- DOMAIN-SUFFIX,sohu-inc.com,DIRECT +- DOMAIN-SUFFIX,v-56.com,DIRECT +# > Sogo +- DOMAIN-SUFFIX,sogo.com,DIRECT +- DOMAIN-SUFFIX,sogou.com,DIRECT +- DOMAIN-SUFFIX,sogoucdn.com,DIRECT +# > Steam +- DOMAIN-SUFFIX,steampowered.com,DIRECT +- DOMAIN-SUFFIX,steam-chat.com,DIRECT +- DOMAIN-SUFFIX,steamgames.com,DIRECT +- DOMAIN-SUFFIX,steamusercontent.com,DIRECT +- DOMAIN-SUFFIX,steamcontent.com,DIRECT +- DOMAIN-SUFFIX,steamstatic.com,DIRECT +- DOMAIN-SUFFIX,steamcdn-a.akamaihd.net,DIRECT +- DOMAIN-SUFFIX,steamstat.us,DIRECT +# > Tencent +# USER-AGENT,MicroMessenger%20Client,DIRECT +# USER-AGENT,WeChat*,DIRECT +- DOMAIN-SUFFIX,gtimg.com,DIRECT +- DOMAIN-SUFFIX,idqqimg.com,DIRECT +- DOMAIN-SUFFIX,igamecj.com,DIRECT +- DOMAIN-SUFFIX,myapp.com,DIRECT +- DOMAIN-SUFFIX,myqcloud.com,DIRECT +- DOMAIN-SUFFIX,qq.com,DIRECT +- DOMAIN-SUFFIX,tencent.com,DIRECT +- DOMAIN-SUFFIX,tencent-cloud.net,DIRECT +# > YYeTs +# USER-AGENT,YYeTs*,DIRECT +- DOMAIN-SUFFIX,jstucdn.com,DIRECT +- DOMAIN-SUFFIX,zimuzu.io,DIRECT +- DOMAIN-SUFFIX,zimuzu.tv,DIRECT +- DOMAIN-SUFFIX,zmz2019.com,DIRECT +- DOMAIN-SUFFIX,zmzapi.com,DIRECT +- DOMAIN-SUFFIX,zmzapi.net,DIRECT +- DOMAIN-SUFFIX,zmzfile.com,DIRECT +# > Content Delivery Network +- DOMAIN-SUFFIX,ccgslb.com,DIRECT +- DOMAIN-SUFFIX,ccgslb.net,DIRECT +- DOMAIN-SUFFIX,chinanetcenter.com,DIRECT +- DOMAIN-SUFFIX,meixincdn.com,DIRECT +- DOMAIN-SUFFIX,ourdvs.com,DIRECT +- DOMAIN-SUFFIX,staticdn.net,DIRECT +- DOMAIN-SUFFIX,wangsu.com,DIRECT +# > IP Query +- DOMAIN-SUFFIX,ipip.net,DIRECT +- DOMAIN-SUFFIX,ip.la,DIRECT +- DOMAIN-SUFFIX,ip-cdn.com,DIRECT +- DOMAIN-SUFFIX,ipv6-test.com,DIRECT +- DOMAIN-SUFFIX,test-ipv6.com,DIRECT +- DOMAIN-SUFFIX,whatismyip.com,DIRECT +# > Speed Test +# - DOMAIN-SUFFIX,speedtest.net,DIRECT +- DOMAIN-SUFFIX,netspeedtestmaster.com,DIRECT +- DOMAIN,speedtest.macpaw.com,DIRECT +# > Private Tracker +- DOMAIN-SUFFIX,awesome-hd.me,DIRECT +- DOMAIN-SUFFIX,broadcasthe.net,DIRECT +- DOMAIN-SUFFIX,chdbits.co,DIRECT +- DOMAIN-SUFFIX,classix-unlimited.co.uk,DIRECT +- DOMAIN-SUFFIX,empornium.me,DIRECT +- DOMAIN-SUFFIX,gazellegames.net,DIRECT +- DOMAIN-SUFFIX,hdchina.org,DIRECT +- DOMAIN-SUFFIX,hdsky.me,DIRECT +- DOMAIN-SUFFIX,icetorrent.org,DIRECT +- DOMAIN-SUFFIX,jpopsuki.eu,DIRECT +- DOMAIN-SUFFIX,keepfrds.com,DIRECT +- DOMAIN-SUFFIX,madsrevolution.net,DIRECT +- DOMAIN-SUFFIX,m-team.cc,DIRECT +- DOMAIN-SUFFIX,nanyangpt.com,DIRECT +- DOMAIN-SUFFIX,ncore.cc,DIRECT +- DOMAIN-SUFFIX,open.cd,DIRECT +- DOMAIN-SUFFIX,ourbits.club,DIRECT +- DOMAIN-SUFFIX,passthepopcorn.me,DIRECT +- DOMAIN-SUFFIX,privatehd.to,DIRECT +- DOMAIN-SUFFIX,redacted.ch,DIRECT +- DOMAIN-SUFFIX,springsunday.net,DIRECT +- DOMAIN-SUFFIX,tjupt.org,DIRECT +- DOMAIN-SUFFIX,totheglory.im,DIRECT +# > Scholar +- DOMAIN-SUFFIX,acm.org,DIRECT +- DOMAIN-SUFFIX,acs.org,DIRECT +- DOMAIN-SUFFIX,aip.org,DIRECT +- DOMAIN-SUFFIX,ams.org,DIRECT +- DOMAIN-SUFFIX,annualreviews.org,DIRECT +- DOMAIN-SUFFIX,aps.org,DIRECT +- DOMAIN-SUFFIX,ascelibrary.org,DIRECT +- DOMAIN-SUFFIX,asm.org,DIRECT +- DOMAIN-SUFFIX,asme.org,DIRECT +- DOMAIN-SUFFIX,astm.org,DIRECT +- DOMAIN-SUFFIX,bmj.com,DIRECT +- DOMAIN-SUFFIX,cambridge.org,DIRECT +- DOMAIN-SUFFIX,cas.org,DIRECT +- DOMAIN-SUFFIX,clarivate.com,DIRECT +- DOMAIN-SUFFIX,ebscohost.com,DIRECT +- DOMAIN-SUFFIX,emerald.com,DIRECT +- DOMAIN-SUFFIX,engineeringvillage.com,DIRECT +- DOMAIN-SUFFIX,icevirtuallibrary.com,DIRECT +- DOMAIN-SUFFIX,ieee.org,DIRECT +- DOMAIN-SUFFIX,imf.org,DIRECT +- DOMAIN-SUFFIX,iop.org,DIRECT +- DOMAIN-SUFFIX,jamanetwork.com,DIRECT +- DOMAIN-SUFFIX,jhu.edu,DIRECT +- DOMAIN-SUFFIX,jstor.org,DIRECT +- DOMAIN-SUFFIX,karger.com,DIRECT +- DOMAIN-SUFFIX,libguides.com,DIRECT +- DOMAIN-SUFFIX,madsrevolution.net,DIRECT +- DOMAIN-SUFFIX,mpg.de,DIRECT +- DOMAIN-SUFFIX,myilibrary.com,DIRECT +- DOMAIN-SUFFIX,nature.com,DIRECT +- DOMAIN-SUFFIX,oecd-ilibrary.org,DIRECT +- DOMAIN-SUFFIX,osapublishing.org,DIRECT +- DOMAIN-SUFFIX,oup.com,DIRECT +- DOMAIN-SUFFIX,ovid.com,DIRECT +- DOMAIN-SUFFIX,oxfordartonline.com,DIRECT +- DOMAIN-SUFFIX,oxfordbibliographies.com,DIRECT +- DOMAIN-SUFFIX,oxfordmusiconline.com,DIRECT +- DOMAIN-SUFFIX,pnas.org,DIRECT +- DOMAIN-SUFFIX,proquest.com,DIRECT +- DOMAIN-SUFFIX,rsc.org,DIRECT +- DOMAIN-SUFFIX,sagepub.com,DIRECT +- DOMAIN-SUFFIX,sciencedirect.com,DIRECT +- DOMAIN-SUFFIX,sciencemag.org,DIRECT +- DOMAIN-SUFFIX,scopus.com,DIRECT +- DOMAIN-SUFFIX,siam.org,DIRECT +- DOMAIN-SUFFIX,spiedigitallibrary.org,DIRECT +- DOMAIN-SUFFIX,springer.com,DIRECT +- DOMAIN-SUFFIX,springerlink.com,DIRECT +- DOMAIN-SUFFIX,tandfonline.com,DIRECT +- DOMAIN-SUFFIX,un.org,DIRECT +- DOMAIN-SUFFIX,uni-bielefeld.de,DIRECT +- DOMAIN-SUFFIX,webofknowledge.com,DIRECT +- DOMAIN-SUFFIX,westlaw.com,DIRECT +- DOMAIN-SUFFIX,wiley.com,DIRECT +- DOMAIN-SUFFIX,worldbank.org,DIRECT +- DOMAIN-SUFFIX,worldscientific.com,DIRECT +# > Other +- DOMAIN-SUFFIX,cn,DIRECT +- DOMAIN-SUFFIX,360in.com,DIRECT +- DOMAIN-SUFFIX,51ym.me,DIRECT +- DOMAIN-SUFFIX,8686c.com,DIRECT +- DOMAIN-SUFFIX,abchina.com,DIRECT +- DOMAIN-SUFFIX,accuweather.com,DIRECT +- DOMAIN-SUFFIX,aicoinstorge.com,DIRECT +- DOMAIN-SUFFIX,air-matters.com,DIRECT +- DOMAIN-SUFFIX,air-matters.io,DIRECT +- DOMAIN-SUFFIX,aixifan.com,DIRECT +- DOMAIN-SUFFIX,amd.com,DIRECT +- DOMAIN-SUFFIX,b612.net,DIRECT +- DOMAIN-SUFFIX,bdatu.com,DIRECT +- DOMAIN-SUFFIX,beitaichufang.com,DIRECT +- DOMAIN-SUFFIX,bjango.com,DIRECT +- DOMAIN-SUFFIX,booking.com,DIRECT +- DOMAIN-SUFFIX,bstatic.com,DIRECT +- DOMAIN-SUFFIX,cailianpress.com,DIRECT +- DOMAIN-SUFFIX,camera360.com,DIRECT +- DOMAIN-SUFFIX,chinaso.com,DIRECT +- DOMAIN-SUFFIX,chua.pro,DIRECT +- DOMAIN-SUFFIX,chuimg.com,DIRECT +- DOMAIN-SUFFIX,chunyu.mobi,DIRECT +- DOMAIN-SUFFIX,chushou.tv,DIRECT +- DOMAIN-SUFFIX,cmbchina.com,DIRECT +- DOMAIN-SUFFIX,cmbimg.com,DIRECT +- DOMAIN-SUFFIX,ctrip.com,DIRECT +- DOMAIN-SUFFIX,dfcfw.com,DIRECT +- DOMAIN-SUFFIX,docschina.org,DIRECT +- DOMAIN-SUFFIX,douban.com,DIRECT +- DOMAIN-SUFFIX,doubanio.com,DIRECT +- DOMAIN-SUFFIX,douyu.com,DIRECT +- DOMAIN-SUFFIX,dxycdn.com,DIRECT +- DOMAIN-SUFFIX,dytt8.net,DIRECT +- DOMAIN-SUFFIX,eastmoney.com,DIRECT +- DOMAIN-SUFFIX,eudic.net,DIRECT +- DOMAIN-SUFFIX,feng.com,DIRECT +- DOMAIN-SUFFIX,fengkongcloud.com,DIRECT +- DOMAIN-SUFFIX,frdic.com,DIRECT +- DOMAIN-SUFFIX,futu5.com,DIRECT +- DOMAIN-SUFFIX,futunn.com,DIRECT +- DOMAIN-SUFFIX,gandi.net,DIRECT +- DOMAIN-SUFFIX,geilicdn.com,DIRECT +- DOMAIN-SUFFIX,getpricetag.com,DIRECT +- DOMAIN-SUFFIX,gifshow.com,DIRECT +- DOMAIN-SUFFIX,godic.net,DIRECT +- DOMAIN-SUFFIX,hicloud.com,DIRECT +- DOMAIN-SUFFIX,hongxiu.com,DIRECT +- DOMAIN-SUFFIX,hostbuf.com,DIRECT +- DOMAIN-SUFFIX,huxiucdn.com,DIRECT +- DOMAIN-SUFFIX,huya.com,DIRECT +- DOMAIN-SUFFIX,infinitynewtab.com,DIRECT +- DOMAIN-SUFFIX,ithome.com,DIRECT +- DOMAIN-SUFFIX,java.com,DIRECT +- DOMAIN-SUFFIX,jidian.im,DIRECT +- DOMAIN-SUFFIX,kaiyanapp.com,DIRECT +- DOMAIN-SUFFIX,kaspersky-labs.com,DIRECT +- DOMAIN-SUFFIX,keepcdn.com,DIRECT +- DOMAIN-SUFFIX,kkmh.com,DIRECT +- DOMAIN-SUFFIX,licdn.com,DIRECT +- DOMAIN-SUFFIX,linkedin.com,DIRECT +- DOMAIN-SUFFIX,loli.net,DIRECT +- DOMAIN-SUFFIX,luojilab.com,DIRECT +- DOMAIN-SUFFIX,maoyan.com,DIRECT +- DOMAIN-SUFFIX,maoyun.tv,DIRECT +- DOMAIN-SUFFIX,meituan.com,DIRECT +- DOMAIN-SUFFIX,meituan.net,DIRECT +- DOMAIN-SUFFIX,mobike.com,DIRECT +- DOMAIN-SUFFIX,moke.com,DIRECT +- DOMAIN-SUFFIX,mubu.com,DIRECT +- DOMAIN-SUFFIX,myzaker.com,DIRECT +- DOMAIN-SUFFIX,nim-lang-cn.org,DIRECT +- DOMAIN-SUFFIX,nvidia.com,DIRECT +- DOMAIN-SUFFIX,oracle.com,DIRECT +- DOMAIN-SUFFIX,paypal.com,DIRECT +- DOMAIN-SUFFIX,paypalobjects.com,DIRECT +- DOMAIN-SUFFIX,qdaily.com,DIRECT +- DOMAIN-SUFFIX,qidian.com,DIRECT +- DOMAIN-SUFFIX,qyer.com,DIRECT +- DOMAIN-SUFFIX,qyerstatic.com,DIRECT +- DOMAIN-SUFFIX,raychase.net,DIRECT +- DOMAIN-SUFFIX,ronghub.com,DIRECT +- DOMAIN-SUFFIX,ruguoapp.com,DIRECT +- DOMAIN-SUFFIX,s-reader.com,DIRECT +- DOMAIN-SUFFIX,sankuai.com,DIRECT +- DOMAIN-SUFFIX,scomper.me,DIRECT +- DOMAIN-SUFFIX,seafile.com,DIRECT +- DOMAIN-SUFFIX,sm.ms,DIRECT +- DOMAIN-SUFFIX,smzdm.com,DIRECT +- DOMAIN-SUFFIX,snapdrop.net,DIRECT +- DOMAIN-SUFFIX,snwx.com,DIRECT +- DOMAIN-SUFFIX,sspai.com,DIRECT +- DOMAIN-SUFFIX,takungpao.com,DIRECT +- DOMAIN-SUFFIX,teamviewer.com,DIRECT +- DOMAIN-SUFFIX,tianyancha.com,DIRECT +- DOMAIN-SUFFIX,udacity.com,DIRECT +- DOMAIN-SUFFIX,uning.com,DIRECT +- DOMAIN-SUFFIX,vmware.com,DIRECT +- DOMAIN-SUFFIX,weather.com,DIRECT +- DOMAIN-SUFFIX,weico.cc,DIRECT +- DOMAIN-SUFFIX,weidian.com,DIRECT +- DOMAIN-SUFFIX,xiachufang.com,DIRECT +- DOMAIN-SUFFIX,ximalaya.com,DIRECT +- DOMAIN-SUFFIX,xinhuanet.com,DIRECT +- DOMAIN-SUFFIX,xmcdn.com,DIRECT +- DOMAIN-SUFFIX,yangkeduo.com,DIRECT +- DOMAIN-SUFFIX,zhangzishi.cc,DIRECT +- DOMAIN-SUFFIX,zhihu.com,DIRECT +- DOMAIN-SUFFIX,zhimg.com,DIRECT +- DOMAIN-SUFFIX,zhuihd.com,DIRECT +- DOMAIN,download.jetbrains.com,DIRECT +- DOMAIN,images-cn.ssl-images-amazon.com,DIRECT + +# > Apple +- DOMAIN-SUFFIX,aaplimg.com,Apple +- DOMAIN-SUFFIX,apple.co,Apple +- DOMAIN-SUFFIX,apple.com,Apple +- DOMAIN-SUFFIX,apple-cloudkit.com,Apple +- DOMAIN-SUFFIX,appstore.com,Apple +- DOMAIN-SUFFIX,cdn-apple.com,Apple +- DOMAIN-SUFFIX,crashlytics.com,Apple +- DOMAIN-SUFFIX,icloud.com,Apple +- DOMAIN-SUFFIX,icloud-content.com,Apple +- DOMAIN-SUFFIX,me.com,Apple +- DOMAIN-SUFFIX,mzstatic.com,Apple +- DOMAIN,www-cdn.icloud.com.akadns.net,Apple +- IP-CIDR,17.0.0.0/8,Apple,no-resolve + +# Local Area Network +- IP-CIDR,192.168.0.0/16,DIRECT +- IP-CIDR,10.0.0.0/8,DIRECT +- IP-CIDR,172.16.0.0/12,DIRECT +- IP-CIDR,127.0.0.0/8,DIRECT +- IP-CIDR,100.64.0.0/10,DIRECT + +# DNSPod Public DNS+ +- IP-CIDR,119.28.28.28/32,DIRECT,no-resolve +# GeoIP China +- GEOIP,CN,DIRECT + +- MATCH,Final diff --git a/package/ctcgfw/luci-app-openclash/files/etc/openclash/ConnersHua_return.yaml b/package/ctcgfw/luci-app-openclash/files/etc/openclash/ConnersHua_return.yaml new file mode 100644 index 0000000000..47cdc0140c --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/etc/openclash/ConnersHua_return.yaml @@ -0,0 +1,79 @@ +Rule: +##source:ConnersHua_return +# (Video) +# AcFun +# USER-AGENT,AcFun*,PROXY +- DOMAIN-SUFFIX,acfun.cn,PROXY +- DOMAIN-SUFFIX,acfun.com,PROXY +- DOMAIN-SUFFIX,aixifan.com,PROXY +# > bilibili +# USER-AGENT,bili-universal,PROXY +# USER-AGENT,Bilibili*,PROXY +- DOMAIN-SUFFIX,acgvideo.com,PROXY +- DOMAIN-SUFFIX,bilibili.com,PROXY +- DOMAIN-SUFFIX,hdslb.com,PROXY +# > HunanTV +# USER-AGENT,MGTV*,PROXY +- DOMAIN-SUFFIX,hitv.com,PROXY +- DOMAIN-SUFFIX,hunantv.com,PROXY +- DOMAIN-SUFFIX,mgtv.com,PROXY +# > Migu +# USER-AGENT,MiguVideo*,PROXY +# USER-AGENT,%E5%92%AA%E5%92%95%E8%A7%86%E9%A2%91,PROXY +- DOMAIN-SUFFIX,cmvideo.cn,PROXY +- DOMAIN-SUFFIX,migu.cn,PROXY +- DOMAIN-SUFFIX,miguvideo.com,PROXY +# > iQiyi +# USER-AGENT,iQiYiPhoneVideo,PROXY +# USER-AGENT,PPStream,PROXY +# USER-AGENT,QIYIVideo,PROXY +# USER-AGENT,QYPlayer,PROXY +- DOMAIN-SUFFIX,iqiyi.com,PROXY +- DOMAIN-SUFFIX,iqiyipic.com,PROXY +- DOMAIN-SUFFIX,qy.net,PROXY +# > Sohu +- DOMAIN-SUFFIX,sohu.com,PROXY +- DOMAIN-SUFFIX,sohu.com.cn,PROXY +- DOMAIN-SUFFIX,itc.cn,PROXY +- DOMAIN-SUFFIX,v-56.com,PROXY +# > Tencent +# USER-AGENT,live4iphone*,PROXY +# USER-AGENT,qqlive4iphone*,PROXY +# USER-AGENT,TencentMidasConnect*,PROXY +- DOMAIN-SUFFIX,video.qq.com,PROXY +# > Youku +# USER-AGENT,Youku*,PROXY +# USER-AGENT,%E4%BC%98%E9%85%B7*,PROXY +- DOMAIN-SUFFIX,soku.com,PROXY +- DOMAIN-SUFFIX,youku.com,PROXY +- DOMAIN-SUFFIX,ykimg.com,PROXY + +# (Music) +# > Alibaba +# USER-AGENT,walkman*,PROXY +# USER-AGENT,xiami*,PROXY +- DOMAIN-SUFFIX,xiami.com,PROXY +- DOMAIN-SUFFIX,xiami.net,PROXY +# > Netease +# USER-AGENT,NeteaseMusic*,PROXY +# USER-AGENT,%E7%BD%91%E6%98%93%E4%BA%91%E9%9F%B3%E4%B9%90*,PROXY +- DOMAIN-SUFFIX,music.126.net,PROXY +- DOMAIN-SUFFIX,music.163.com,PROXY +# > Tencent +# USER-AGENT,MOO%E9%9F%B3%E4%B9%90*,PROXY +# USER-AGENT,QQ%E9%9F%B3%E4%B9%90,PROXY +- DOMAIN-SUFFIX,qqmusic.qq.com,PROXY +- DOMAIN-SUFFIX,y.qq.com,PROXY +- DOMAIN,aqqmusic.tc.qq.com,PROXY +# Kugou and Kuwo +- DOMAIN-SUFFIX,kugou.com,PROXY +# USER-AGENT,%E9%85%B7%E6%88%91%E9%9F%B3%E4%B9%90*,PROXY +- DOMAIN-SUFFIX,kuwo.cn,PROXY +- DOMAIN-SUFFIX,koowo.com,PROXY +# > Baidu +# USER-AGENT,baiduyinyue,PROXY +- DOMAIN-SUFFIX,qianqian.com,PROXY + +- GEOIP,CN,PROXY + +- MATCH,DIRECT diff --git a/package/ctcgfw/luci-app-openclash/files/etc/openclash/Country.mmdb b/package/ctcgfw/luci-app-openclash/files/etc/openclash/Country.mmdb new file mode 100644 index 0000000000..8e1bf2e06c Binary files /dev/null and b/package/ctcgfw/luci-app-openclash/files/etc/openclash/Country.mmdb differ diff --git a/package/ctcgfw/luci-app-openclash/files/etc/openclash/custom/openclash_custom_fake_black.conf b/package/ctcgfw/luci-app-openclash/files/etc/openclash/custom/openclash_custom_fake_black.conf new file mode 100644 index 0000000000..cbf2b90256 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/etc/openclash/custom/openclash_custom_fake_black.conf @@ -0,0 +1,89 @@ +#放行NTP服务 +time.windows.com +time.nist.gov +time.apple.com +time.asia.apple.com +cn.ntp.org.cn +edu.ntp.org.cn +hk.ntp.org.cn +tw.ntp.org.cn +us.ntp.org.cn +sgp.ntp.org.cn +kr.ntp.org.cn +jp.ntp.org.cn +de.ntp.org.cn +ina.ntp.org.cn +0.openwrt.pool.ntp.org +1.openwrt.pool.ntp.org +2.openwrt.pool.ntp.org +3.openwrt.pool.ntp.org +ntp.aliyun.com +ntp1.aliyun.com +ntp2.aliyun.com +ntp3.aliyun.com +ntp4.aliyun.com +ntp5.aliyun.com +ntp6.aliyun.com +ntp7.aliyun.com +time1.aliyun.com +time2.aliyun.com +time3.aliyun.com +time4.aliyun.com +time5.aliyun.com +time6.aliyun.com +time7.aliyun.com +s1c.time.edu.cn +s2m.time.edu.cn +s1b.time.edu.cn +s1e.time.edu.cn +s2a.time.edu.cn +s2b.time.edu.cn +time1.apple.com +time2.apple.com +time3.apple.com +time4.apple.com +time5.apple.com +time6.apple.com +time7.apple.com +time1.google.com +time2.google.com +time3.google.com +time4.google.com +#放行网易云音乐 +music.163.com +interface.music.163.com +interface3.music.163.com +apm.music.163.com +apm3.music.163.com +clientlog.music.163.com +clientlog3.music.163.com +music.126.net +vod.126.net +#百度音乐 +sug.qianqian.com +music.taihe.com +#酷狗音乐 +songsearch.kugou.com +trackercdn.kugou.com +#酷我音乐 +kuwo.cn +#JOOX音乐 +api-jooxtt.sanook.com +api.joox.com +#QQ音乐 +y.qq.com +streamoc.music.tc.qq.com +mobileoc.music.tc.qq.com +isure.stream.qqmusic.qq.com +dl.stream.qqmusic.qq.com +aqqmusic.tc.qq.com +amobile.music.tc.qq.com +#虾米音乐 +xiami.com +#咪咕音乐 +music.migu.cn +#win10本地连接检测 +msftconnecttest.com +msftncsi.com +#QQ快捷登录 +ptlogin2.qq.com \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/etc/openclash/custom/openclash_custom_hosts.list b/package/ctcgfw/luci-app-openclash/files/etc/openclash/custom/openclash_custom_hosts.list new file mode 100644 index 0000000000..1180bb5f65 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/etc/openclash/custom/openclash_custom_hosts.list @@ -0,0 +1,6 @@ +# experimental hosts, support wildcard (e.g. *.clash.dev Even *.foo.*.example.com) +# static domain has a higher priority than wildcard domain (foo.example.com > *.example.com) +# NOTE: hosts don't work with `fake-ip` + +# '*.clash.dev': 127.0.0.1 +# 'alpha.clash.dev': '::1' diff --git a/package/ctcgfw/luci-app-openclash/files/etc/openclash/custom/openclash_custom_rules.list b/package/ctcgfw/luci-app-openclash/files/etc/openclash/custom/openclash_custom_rules.list new file mode 100644 index 0000000000..e687ad9183 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/etc/openclash/custom/openclash_custom_rules.list @@ -0,0 +1,30 @@ +##- DOMAIN-SUFFIX,google.com,Proxy 匹配域名后缀(交由Proxy代理服务器组) +##- DOMAIN-KEYWORD,google,Proxy 匹配域名关键字(交由Proxy代理服务器组) +##- DOMAIN,google.com,Proxy 匹配域名(交由Proxy代理服务器组) +##- DOMAIN-SUFFIX,ad.com,REJECT 匹配域名后缀(拒绝) +##- IP-CIDR,127.0.0.0/8,DIRECT 匹配数据目标IP(直连) +##- SRC-IP-CIDR,192.168.1.201/32,DIRECT 匹配数据发起IP(直连) +##- DST-PORT,80,DIRECT 匹配数据目标端口(直连) +##- SRC-PORT,7777,DIRECT 匹配数据源端口(直连) + +##排序在上的规则优先生效,如添加(去除规则前的#号): +##IP段:192.168.1.2-192.168.1.200 直连 +##- SRC-IP-CIDR,192.168.1.2/31,DIRECT +##- SRC-IP-CIDR,192.168.1.4/30,DIRECT +##- SRC-IP-CIDR,192.168.1.8/29,DIRECT +##- SRC-IP-CIDR,192.168.1.16/28,DIRECT +##- SRC-IP-CIDR,192.168.1.32/27,DIRECT +##- SRC-IP-CIDR,192.168.1.64/26,DIRECT +##- SRC-IP-CIDR,192.168.1.128/26,DIRECT +##- SRC-IP-CIDR,192.168.1.192/29,DIRECT +##- SRC-IP-CIDR,192.168.1.200/32,DIRECT + +##IP段:192.168.1.202-192.168.1.255 直连 +##- SRC-IP-CIDR,192.168.1.202/31,DIRECT +##- SRC-IP-CIDR,192.168.1.204/30,DIRECT +##- SRC-IP-CIDR,192.168.1.208/28,DIRECT +##- SRC-IP-CIDR,192.168.1.224/27,DIRECT + +##此时IP为192.168.1.1和192.168.1.201的客户端流量走代理(策略),其余客户端不走代理 +##因为Fake-IP模式下,IP地址为192.168.1.1的路由器自身流量可走代理(策略),所以需要排除 +##在线IP段转CIDR地址:http://ip2cidr.com \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/etc/openclash/default.yaml b/package/ctcgfw/luci-app-openclash/files/etc/openclash/default.yaml new file mode 100644 index 0000000000..4d8e9da3f3 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/etc/openclash/default.yaml @@ -0,0 +1,182 @@ +# Copyright (c) 2018 Dreamacro +# 接管:不支持在此页面直接修改,请到全局设置页面进行修改 + +# port of HTTP +port: 7890 # 此项将被接管 + +# port of SOCKS5 +socks-port: 7891 # 此项将被接管 + +# redir port for Linux and macOS +redir-port: 7892 # 此项将被接管 + +allow-lan: true # 此项将被接管为true + +# Only applicable when setting allow-lan to true +# "*": bind all IP addresses +# 192.168.122.11: bind a single IPv4 address +# "[aaaa::a8aa:ff:fe09:57d8]": bind a single IPv6 address +bind-address: "*" # HTTP(S)\SOCKS5 监听地址,此项将被接管为all + +# Rule / Global/ Direct (default is Rule) +mode: Rule # 此项将被接管 + +# set log level to stdout (default is info) +# info / warning / error / debug / silent +log-level: info # 此项将被接管 + +# A RESTful API for clash +external-controller: 0.0.0.0:9090 # 此项将被接管 + +# you can put the static web resource (such as clash-dashboard) to a directory, and clash would serve in `${API}/ui` +# input is a relative path to the configuration directory or an absolute path +external-ui: "/usr/share/openclash/dashboard" # 此项将被接管 + +# Secret for RESTful API (Optional) +secret: '123456' # 此项将被接管 + +# experimental feature +experimental: + ignore-resolve-fail: true # ignore dns resolve fail, default value is true + +# authentication of local SOCKS5/HTTP(S) server +authentication: # 此项将被接管 + - "user1:pass1" + - "user2:pass2" + +# # experimental hosts, support wildcard (e.g. *.clash.dev Even *.foo.*.example.com) +# # static domain has a higher priority than wildcard domain (foo.example.com > *.example.com) +#hosts: +#'*.clash.dev': 127.0.0.1 +#'alpha.clash.dev': '::1' + +dns: # 如订阅配置无包括此项的所有DNS设置,OpenClash将自动添加 + enable: true # set true to enable dns (default is false) # 此项将被接管为true + ipv6: false # default is false # 此项将被接管 + listen: 0.0.0.0:53 # 端口为53时将被接管为7874 + enhanced-mode: redir-host # or fake-ip # 此项将被接管 + fake-ip-range: 198.18.0.1/16 # if you don't know what it is, don't change it # 此项将被接管 + nameserver: + - 114.114.114.114 + - https://1.1.1.1/dns-query # dns over https + fallback: # concurrent request with nameserver, fallback used when GEOIP country isn't CN + - tcp://1.1.1.1 + fallback-filter: + geoip: true # default + ipcidr: # ips in these subnets will be considered polluted + - 240.0.0.0/4 + +# 以上设置您可直接覆盖到配置文件,无需更改 +# Openclash 不会对下方服务器设置进行任何更改,请确保设置正确 + +Proxy: # 此参数必须保留,不能删除 + +# shadowsocks +# The supported ciphers(encrypt methods): +# aes-128-gcm aes-192-gcm aes-256-gcm +# aes-128-cfb aes-192-cfb aes-256-cfb +# aes-128-ctr aes-192-ctr aes-256-ctr +# rc4-md5 chacha20 chacha20-ietf xchacha20 +# chacha20-ietf-poly1305 xchacha20-ietf-poly1305 +- { name: "ss1", type: ss, server: server, port: 443, cipher: chacha20-ietf-poly1305, password: "password", udp: true } + +# old obfs configuration remove after prerelease +- name: "ss2" + type: ss + server: server + port: 443 + cipher: chacha20-ietf-poly1305 + password: "password" + plugin: obfs + plugin-opts: + mode: tls # or http + # host: bing.com + +- name: "ss3" + type: ss + server: server + port: 443 + cipher: chacha20-ietf-poly1305 + password: "password" + plugin: v2ray-plugin + plugin-opts: + mode: websocket # no QUIC now + # tls: true # wss + # skip-cert-verify: true + # host: bing.com + # path: "/" + # headers: + # custom: value + +# vmess +# cipher support auto/aes-128-gcm/chacha20-poly1305/none +- { name: "vmess", type: vmess, server: server, port: 443, uuid: uuid, alterId: 32, cipher: auto } +# with tls +- { name: "vmess", type: vmess, server: server, port: 443, uuid: uuid, alterId: 32, cipher: auto, tls: true } +# with tls and skip-cert-verify +- { name: "vmess", type: vmess, server: server, port: 443, uuid: uuid, alterId: 32, cipher: auto, tls: true, skip-cert-verify: true } +# with ws-path and ws-headers +- { name: "vmess", type: vmess, server: server, port: 443, uuid: uuid, alterId: 32, cipher: auto, network: ws, ws-path: /path, ws-headers: { Host: v2ray.com } } +# with ws + tls +- { name: "vmess", type: vmess, server: server, port: 443, uuid: uuid, alterId: 32, cipher: auto, network: ws, ws-path: /path, tls: true } + +# socks5 +- { name: "socks", type: socks5, server: server, port: 443 } +# socks5 with authentication +- { name: "socks", type: socks5, server: server, port: 443, username: "username", password: "password" } +# with tls +- { name: "socks", type: socks5, server: server, port: 443, tls: true } +# with tls and skip-cert-verify +- { name: "socks", type: socks5, server: server, port: 443, tls: true, skip-cert-verify: true } + +# http +- { name: "http", type: http, server: server, port: 443 } +# http with authentication +- { name: "http", type: http, server: server, port: 443, username: "username", password: "password" } +# with tls (https) +- { name: "http", type: http, server: server, port: 443, tls: true } +# with tls (https) and skip-cert-verify +- { name: "http", type: http, server: server, port: 443, tls: true, skip-cert-verify: true } + +# snell +- name: "snell" + type: snell + server: server + port: 44046 + psk: yourpsk + # obfs-opts: + # mode: http # or tls + # host: bing.com + +# Openclash 不会对下方策略组设置进行任何更改,请确保设置正确 + +Proxy Group: # 此参数必须保留,不能删除 + +# url-test select which proxy will be used by benchmarking speed to a URL. +- { name: "auto", type: url-test, proxies: ["ss1", "ss2", "vmess1"], url: "http://www.gstatic.com/generate_204", interval: 300 } + +# fallback select an available policy by priority. The availability is tested by accessing an URL, just like an auto url-test group. +- { name: "fallback-auto", type: fallback, proxies: ["ss1", "ss2", "vmess1"], url: "http://www.gstatic.com/generate_204", interval: 300 } + +# load-balance: The request of the same eTLD will be dial on the same proxy. +- { name: "load-balance", type: load-balance, proxies: ["ss1", "ss2", "vmess1"], url: "http://www.gstatic.com/generate_204", interval: 300 } + +# select is used for selecting proxy or proxy group +# you can use RESTful API to switch proxy, is recommended for use in GUI. +- { name: "Proxy", type: select, proxies: ["ss1", "ss2", "vmess1", "auto"] } + +Rule: # 此参数必须保留,不能删除 +# 如果您将一直使用第三方规则,下方可以留空。 +- DOMAIN-SUFFIX,google.com,auto +- DOMAIN-KEYWORD,google,auto +- DOMAIN,google.com,auto +- DOMAIN-SUFFIX,ad.com,REJECT +- IP-CIDR,127.0.0.0/8,DIRECT +# rename SOURCE-IP-CIDR and would remove after prerelease +- SRC-IP-CIDR,192.168.1.201/32,DIRECT +- GEOIP,CN,DIRECT +- DST-PORT,80,DIRECT +- SRC-PORT,7777,DIRECT +# FINAL would remove after prerelease +# you also can use `FINAL,Proxy` or `FINAL,,Proxy` now +- MATCH,auto \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/etc/openclash/game_rules.list b/package/ctcgfw/luci-app-openclash/files/etc/openclash/game_rules.list new file mode 100644 index 0000000000..7a1834929f --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/etc/openclash/game_rules.list @@ -0,0 +1,140 @@ +300英雄,300hero-cn.rules +永恒之塔-台服,Aion-TW.rules +美国卡车模拟国际服,American-Truck-Simulator.rules +圣歌,Anthem.rules +Apex-uu,Apex-uu.rules +Apex英雄,Apex.rules +方舟:生存进化,ARK--Survival-Evolved.rules +刺客信条:奥德赛,Assassin's-Creed-Odyssey.rules,Assassins-Creed-Odyssey.rules +刺客信条:起源,Assassin's-Creed-Origins.rules,Assassins-Creed-Origins.rules +Atlas-全区,Atlas.rules +战地1,Battlefield-1.rules +战地4,BattleField-4.rules +战地5,Battlefield-Ⅴ.rules,Battlefield-5.rules +黑色沙漠-steam,BlackDesert-steam.rules +黑色幸存者,BlackSurvivor.rules +剑灵台服,Blade%26Soul%20TW.rules +剑灵-日服,Blade-%26-Soul-jp.rules +剑灵-国服全部区服(UU规则),Blood-%26-Soul-CN-TestServer-NantianGuo-Alpha.rules +剑灵-国服-南天国(测试版),Blood-%26-Soul-CN.rules +无主之地3,Borderlands3-asia.rules +使命召唤4:现代战争重置版,Call-Of-Duty-4-Modern-Warfare.rules +使命召唤15亚服,Call-Of-Duty15-Asia.rules +英雄连2,Company-Of-Heroes-2.rules +反恐精英:全球攻势,CS-GO.rules +反恐精英:全球攻势-港服(tx),CSGO-HKtx.rules +反恐精英:全球攻势-日服(tx),CSGO-JPtx.rules +反恐精英:全球攻势-美服(tx),CSGO-UStx.rules +黑暗之魂3,Dark-Souls-3.rules +不屈不挠,Dauntless.rules +DayZ-steam,DayZ.rules +黎明杀机,Dead-by-Daylight.rules +命运2-全服(tx),Destiny2-Alltx.rules +命运2-全服(uu),Destiny2-Alluu.rules +天命2-亚服/命运2-亚服,Destiny2-Asia.rules +天命2-欧服/命运2-欧服,Destiny2-EU.rules +命运2-steam,Destiny2-steam.rules +天命2-美服/命运2-美服,Destiny2-US.rules +暗黑破坏神3-亚服,Diablo3-Asia.rules +暗黑破坏神3-美服,Diablo3-US.rules +脏弹-Steam,Dirty-Bomb.rules +Discord,Discord-All.rules +饥荒-steam,Don't-Starve-steam.rules,Dont-Starve-steam.rules +刀塔霸业,Dota-Underlords.rules +DOTA2-日服,Dota2-jp.rules +逃离塔科夫,Escape-from-Tarkov.rules +欧卡2所有分区-UU,Euro-Truck-Simulator-2.rules +Eve-online欧服,Eve-online.rules +FIFA19,FiFa19-INT.rules +FIFA20,FIFA20.rules +最终幻想14国服,FINAL-FANTASY-XIV-cn.rules +最终幻想14,Final-Fantasy-XIV.rules +荣耀战魂,For-Honour.rules +堡垒之夜-亚服,Fortnite-AS.rules +堡垒之夜-国服,Fortnite-cn.rules +极限竞速地平线4,Forza-Horizon-4.rules +极限竞速7,Forza-Motorsport-7.rules +基佬大乱斗Gang-Beasts,Gang-Beasts.rules +GTA5,GTA-5.rules +激战2,Guild-Wars-2.rules +巫师昆特牌国际服,Gwent_The-Witcher-Card-game.rules +杀手2外服,HITMAN2.rules +荒野行动PC版-国服,HuangYeXingDong-cn.rules +叛乱:沙漠风暴,Insurgency-Sandstorm.rules +Jump大乱斗,Jump-Force.rules +跑跑卡丁车(韩服),KartRider.rules +Kurtzpel,Kurtzpel.rules +求生之路2-Test,L4D2-Test.rules +英雄联盟-日服,League-of-Legends-jp.rules +英雄联盟-韩服,League-of-Legends-kr.rules +英雄联盟PBE,League-of-Legends-PBE.rules +英雄联盟-台服,League-of-Legends-tw+Garena(2018-12-19).rules +英雄联盟-台服+Garena平台(2018-12-19更新),League-of-Legends-tw.rules +英雄联盟-美服,League-of-Legends-us.rules +失落的方舟韩服,Lost-Ark.rules +失落的方舟俄服,Lostark-RU.rules +冒险岛,Maplestory-us.rules +怪兽世界猎人steam版,Monster-Hunter-World.rules +奇迹传奇MU2,MU2.rules +NBA-2K19,NBA-2K19.rules +NBA2K20,NBA2K20.rules +仁王,NIOH.rules +橘子客户端-UU,Origin.rules +Osu!,Osu!.rules +守望先锋-亚服,Overwatch-Asia.rules +守望先锋-美服,Overwatch-US.rules +流亡黯道-国际服,Path%20Of%20Exile.rules +流放之路,PathOfexile.rules +梦幻之星2-日服(tx),PHANTASY%20STAR%20ONLINE2-JPtx.rules +行星边际2,PlanetSide-2.rules +绝地求生大逃杀,PlayerUnknown's-Battlegrounds-update.rules,PlayerUnknowns-Battlegrounds-update.rules +实况足球-2018,Pro-Evolution-Soccer-2018.rules +实况足球-2019,Pro-Evolution-Soccer-2019.rules +绝地求生亚服-东南亚服,PUBG-Asia%26-Southeast-Asia.rules +绝地求生国际服,PUBG-INT.rules +绝地求生韩服,PUBG-kakao.rules +绝地求生低配版-Garena,PUBGLite-Garena.rules +绝地求生轻量版-WEB客户端,PUBGLITE-WEB.rules +R2竞技场服,R2Arena.rules +R2俄服官服,R2RU.rules +R2美服,R2US.rules +仙境传说OL台湾,RagnarokOnlineTW.rules +荒野大镖客2,Red-dead-redemption2.rules +无限法则,Ring-of-Elysium-asia.rules +Roblox,Roblox.rules +影之诗,Shadowverse.rules +灵魂行者-台服,Soul-Worker.rules +星际公民,Star-Citizen.rules +星球大战2前线,Star-Wars-BattlefrontII.rules +StarCraft-亚服,StarCraft-2-asia.rules +星际争霸2-国服,StarCraftⅡ-cn.rules,StarCraft2-cn.rules +Steam-社区(Beta),Steam.rules +极限巅峰,Steep.rules +街头霸王5,Street-Fighter-V.rules +神谕之战,TERA.rules +飙酷车神,The-Crew.rules +飙酷车神2,The-Crew2.rules +上古卷轴OL,The-Elder-Scrolls-Online.rules +天涯明月刀-台服,TianYaMingYueDao-tw.rules +泰坦陨落2,TiTanFall2.rules +新枫之谷,TMS.rules +幽灵行动:荒野,Tom-Clancy's-Ghost-Recon-Wildlands.rules,Tom-Clancys-Ghost-Recon-Wildlands.rules +彩虹六号-围攻-全部,Tom-Clancy's-Rainbow-Six-Siege-all.rules,Tom-Clancys-Rainbow-Six-Siege-all.rules +彩虹六号-围攻-EAS,Tom-Clancy's-Rainbow-Six-Siege-EAS.rules,Tom-Clancys-Rainbow-Six-Siege-EAS.rules +全境封锁,Tom-clancy's-The-Division-2.rules,Tom-clancys-The-Division-2.rules +全境封锁2,Tom-clancy's-The-Division.rules,Tom-clancys-The-Division.rules +未转变者Unturned,Unturned.rules +战争前线,War-thunder-steam.rules +战争雷霆-steam,Warface.rules +看门狗,Watch-Dogs.rules +看门狗2,Watch-Dogs2.rules +求生意志OL,Will-To-Live-Online.rules +坦克世界-亚服,World-of-Tanks-Asia.rules +坦克世界-国服,World-of-Tanks-cn.rules +魔兽世界台服,World-of-warcraft-tw.rules +战舰世界-亚服,World-of-Warships-US.rules +战舰世界-美服,World-of-Warships.rules +僵尸世界大战,Worldwar-Z.rules +魔兽世界-欧服,WoW-EU.rules +游戏王决斗链接,YO-GI-HO%20delulinks.rules +游侠对战平台,YouXiaDuiZhanPingTai.rules \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/etc/openclash/game_rules/CS-GO.rules b/package/ctcgfw/luci-app-openclash/files/etc/openclash/game_rules/CS-GO.rules new file mode 100644 index 0000000000..9bab472ab0 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/etc/openclash/game_rules/CS-GO.rules @@ -0,0 +1,618 @@ +#CSGO,反恐精英:全球攻势,0,0,1,0,1,0,By-AmazingDM +1.165.84.0/24 +1.165.85.0/24 +1.165.90.0/24 +5.8.200.0/24 +5.9.123.0/24 +13.73.0.0/16 +13.73.1.0/24 +13.75.114.0/24 +13.126.76.0/24 +14.18.251.72/32 +18.214.26.0/24 +24.105.28.0/24 +27.64.93.0/24 +34.235.169.0/24 +35.185.157.0/24 +35.198.200.0/24 +36.232.23.0/24 +36.232.28.0/24 +36.232.29.0/24 +37.21.10.0/24 +37.230.228.0/24 +42.113.94.0/24 +42.114.229.0/24 +43.225.199.0/24 +43.239.136.0/24 +43.241.50.0/24 +43.249.36.0/24 +45.113.137.0/24 +45.113.191.0/24 +45.119.240.0/24 +45.121.184.0/24 +45.121.185.0/24 +45.121.186.0/24 +45.121.187.0/24 +47.52.16.0/24 +47.52.17.0/24 +47.52.18.0/24 +47.52.19.0/24 +47.52.20.0/24 +47.52.21.0/24 +47.52.22.0/24 +47.52.23.0/24 +47.52.24.0/24 +47.52.25.0/24 +47.52.26.0/24 +47.52.27.0/24 +47.52.28.0/24 +47.52.29.0/24 +47.52.30.0/24 +47.52.31.0/24 +47.52.40.0/24 +47.52.41.0/24 +47.52.42.0/24 +47.52.43.0/24 +47.52.44.0/24 +47.52.45.0/24 +47.52.46.0/24 +47.52.47.0/24 +47.52.56.0/24 +47.52.57.0/24 +47.52.58.0/24 +47.52.59.0/24 +47.52.60.0/24 +47.52.61.0/24 +47.52.62.0/24 +47.52.63.0/24 +47.52.64.0/24 +47.52.65.0/24 +47.52.66.0/24 +47.52.67.0/24 +47.52.68.0/24 +47.52.69.0/24 +47.52.70.0/24 +47.52.71.0/24 +47.52.72.0/24 +47.52.73.0/24 +47.52.74.0/24 +47.52.75.0/24 +47.52.76.0/24 +47.52.77.0/24 +47.52.78.0/24 +47.52.79.0/24 +47.52.88.0/24 +47.52.89.0/24 +47.52.90.0/24 +47.52.91.0/24 +47.52.92.0/24 +47.52.93.0/24 +47.52.94.0/24 +47.52.95.0/24 +47.52.96.0/24 +47.52.97.0/24 +47.52.98.0/24 +47.52.99.0/24 +47.52.100.0/24 +47.52.101.0/24 +47.52.102.0/24 +47.52.103.0/24 +47.52.104.0/24 +47.52.105.0/24 +47.52.106.0/24 +47.52.107.0/24 +47.52.108.0/24 +47.52.109.0/24 +47.52.110.0/24 +47.52.111.0/24 +47.52.112.0/24 +47.52.113.0/24 +47.52.114.0/24 +47.52.115.0/24 +47.52.116.0/24 +47.52.117.0/24 +47.52.118.0/24 +47.52.119.0/24 +47.52.128.0/24 +47.52.129.0/24 +47.52.130.0/24 +47.52.131.0/24 +47.52.132.0/24 +47.52.133.0/24 +47.52.134.0/24 +47.52.135.0/24 +47.52.136.0/24 +47.52.137.0/24 +47.52.138.0/24 +47.52.139.0/24 +47.52.140.0/24 +47.52.141.0/24 +47.52.142.0/24 +47.52.143.0/24 +47.52.144.0/24 +47.52.145.0/24 +47.52.146.0/24 +47.52.147.0/24 +47.52.148.0/24 +47.52.149.0/24 +47.52.150.0/24 +47.52.151.0/24 +47.52.152.0/24 +47.52.153.0/24 +47.52.154.0/24 +47.52.155.0/24 +47.52.156.0/24 +47.52.157.0/24 +47.52.158.0/24 +47.52.159.0/24 +47.52.160.0/24 +47.52.161.0/24 +47.52.162.0/24 +47.52.163.0/24 +47.52.164.0/24 +47.52.165.0/24 +47.52.166.0/24 +47.52.167.0/24 +47.52.168.0/24 +47.52.169.0/24 +47.52.170.0/24 +47.52.171.0/24 +47.52.172.0/24 +47.52.173.0/24 +47.52.174.0/24 +47.52.175.0/24 +47.52.188.0/24 +47.52.190.0/24 +47.52.191.0/24 +47.52.192.0/24 +47.52.193.0/24 +47.52.194.0/24 +47.52.195.0/24 +47.52.196.0/24 +47.52.197.0/24 +47.52.198.0/24 +47.52.199.0/24 +47.52.200.0/24 +47.52.201.0/24 +47.52.202.0/24 +47.52.203.0/24 +47.52.204.0/24 +47.52.205.0/24 +47.52.206.0/24 +47.52.207.0/24 +47.52.208.0/24 +47.52.209.0/24 +47.52.224.0/24 +47.52.225.0/24 +47.52.226.0/24 +47.52.228.0/24 +47.52.230.0/24 +47.52.231.0/24 +47.52.232.0/24 +47.52.234.0/24 +47.52.235.0/24 +47.52.236.0/24 +47.52.241.0/24 +47.52.242.0/24 +47.52.244.0/24 +47.52.246.0/24 +47.52.247.0/24 +47.52.248.0/24 +47.52.249.0/24 +47.52.250.0/24 +47.52.251.0/24 +47.52.252.0/24 +47.52.253.0/24 +47.52.254.0/24 +47.52.255.0/24 +47.74.1.0/24 +47.75.3.0/24 +47.75.5.0/24 +47.75.94.0/24 +47.75.98.0/24 +47.75.143.0/24 +47.75.194.0/24 +47.75.207.0/24 +47.75.219.0/24 +47.89.8.0/24 +47.89.9.0/24 +47.89.10.0/24 +47.89.11.0/24 +47.89.12.0/24 +47.89.13.0/24 +47.89.14.0/24 +47.89.15.0/24 +47.89.16.0/24 +47.89.17.0/24 +47.89.18.0/24 +47.89.19.0/24 +47.89.20.0/24 +47.89.21.0/24 +47.89.22.0/24 +47.89.23.0/24 +47.90.8.0/24 +47.90.90.0/24 +47.90.96.0/24 +47.90.97.0/24 +47.90.98.0/24 +47.90.99.0/24 +47.90.100.0/24 +47.90.101.0/24 +47.90.102.0/24 +47.90.103.0/24 +47.90.120.0/24 +47.90.121.0/24 +47.90.122.0/24 +47.90.123.0/24 +47.90.124.0/24 +47.90.125.0/24 +47.90.126.0/24 +47.90.127.0/24 +47.90.214.0/24 +47.91.152.0/24 +47.91.153.0/24 +47.91.154.0/24 +47.91.155.0/24 +47.91.156.0/24 +47.91.157.0/24 +47.91.158.0/24 +47.91.159.0/24 +47.91.207.0/24 +47.91.208.0/24 +47.91.209.0/24 +47.91.210.0/24 +47.91.211.0/24 +47.91.212.0/24 +47.91.213.0/24 +47.91.214.0/24 +47.91.215.0/24 +47.91.216.0/24 +47.91.217.0/24 +47.91.218.0/24 +47.91.219.0/24 +47.91.220.0/24 +47.91.221.0/24 +47.91.224.0/24 +47.91.225.0/24 +47.91.226.0/24 +47.91.227.0/24 +47.91.228.0/24 +47.91.229.0/24 +47.91.230.0/24 +47.91.231.0/24 +47.91.232.0/24 +47.91.233.0/24 +47.91.234.0/24 +47.91.235.0/24 +47.91.236.0/24 +47.91.237.0/24 +47.91.238.0/24 +47.91.239.0/24 +47.91.240.0/24 +47.91.241.0/24 +47.91.242.0/24 +47.91.243.0/24 +47.91.244.0/24 +47.91.245.0/24 +47.91.246.0/24 +47.91.247.0/24 +47.91.248.0/24 +47.91.249.0/24 +47.91.250.0/24 +47.91.251.0/24 +47.91.252.0/24 +47.91.253.0/24 +47.91.254.0/24 +47.91.255.0/24 +47.96.0.0/16 +47.96.2.0/24 +47.96.3.0/24 +47.96.5.0/24 +47.96.6.0/24 +47.96.7.0/24 +47.96.8.0/24 +47.96.9.0/24 +47.96.10.0/24 +47.96.12.0/24 +47.96.13.0/24 +47.96.14.0/24 +47.99.33.0/24 +47.99.38.0/24 +47.99.44.0/24 +47.99.62.0/24 +47.99.73.0/24 +47.99.75.0/24 +47.99.76.0/24 +47.99.81.0/24 +47.99.84.0/24 +47.99.89.0/24 +47.99.90.0/24 +47.99.93.0/24 +47.99.95.0/24 +47.99.98.0/24 +47.99.99.0/24 +47.99.101.0/24 +47.99.103.0/24 +47.99.104.0/24 +47.99.107.0/24 +47.99.111.0/24 +47.99.120.0/24 +47.99.128.0/24 +47.99.159.0/24 +47.99.161.0/24 +47.99.164.0/24 +47.99.166.0/24 +47.99.169.0/24 +47.110.42.0/24 +47.244.1.0/24 +47.244.2.0/24 +47.244.3.0/24 +47.244.5.0/24 +47.244.7.0/24 +47.244.10.0/24 +47.244.11.0/24 +47.244.12.0/24 +47.244.13.0/24 +47.244.14.0/24 +47.244.15.0/24 +47.244.16.0/24 +47.244.17.0/24 +47.244.18.0/24 +47.244.19.0/24 +47.244.21.0/24 +47.244.22.0/24 +47.244.24.0/24 +47.244.25.0/24 +47.244.26.0/24 +47.244.33.0/24 +47.244.35.0/24 +47.244.36.0/24 +47.244.37.0/24 +47.244.43.0/24 +47.244.44.0/24 +47.244.48.0/24 +47.244.51.0/24 +47.244.56.0/24 +52.53.89.0/24 +52.63.114.0/24 +52.64.199.0/24 +52.90.185.0/24 +52.175.16.0/24 +52.175.31.0/24 +52.207.236.0/24 +52.229.154.0/24 +52.229.160.0/24 +52.229.161.0/24 +54.66.223.0/24 +54.158.198.0/24 +54.164.19.0/24 +54.169.27.0/24 +54.209.147.0/24 +58.153.0.0/16 +58.153.19.0/24 +58.153.171.0/24 +58.153.208.0/24 +58.153.209.0/24 +58.153.221.0/24 +58.176.80.0/24 +58.177.181.0/24 +58.215.54.0/24 +58.221.252.0/24 +59.16.249.0/24 +59.127.115.0/24 +59.149.239.0/24 +60.248.89.0/24 +61.80.89.0/24 +61.84.148.0/24 +61.155.210.0/24 +61.216.2.0/24 +61.216.34.0/24 +61.216.146.0/24 +61.238.35.0/24 +61.239.213.0/24 +61.239.223.0/24 +74.91.112.0/24 +74.201.99.0/24 +87.98.228.0/24 +88.82.185.0/24 +90.188.238.0/24 +94.245.155.0/24 +95.154.88.0/24 +95.154.113.0/24 +95.172.92.0/24 +95.183.13.0/24 +103.9.89.0/24 +103.10.124.0/24 +103.10.125.0/24 +103.16.27.0/24 +103.28.54.0/24 +103.28.55.0/24 +103.36.208.0/24 +103.44.160.0/24 +103.57.72.0/24 +103.58.149.0/24 +103.60.126.0/24 +103.62.48.0/24 +103.89.90.0/24 +103.207.36.0/24 +103.222.20.0/24 +103.231.163.0/24 +103.232.85.0/24 +103.241.165.0/24 +103.244.2.0/24 +103.254.153.0/24 +104.199.166.0/24 +104.236.115.0/24 +107.21.14.0/24 +110.42.10.0/24 +110.173.58.0/24 +111.91.236.0/24 +111.231.11.0/24 +111.253.47.0/24 +111.253.49.0/24 +111.253.50.0/24 +111.253.52.0/24 +111.253.55.0/24 +112.118.44.0/24 +112.118.193.0/24 +113.160.204.0/24 +113.190.242.0/24 +114.46.16.0/24 +114.46.20.0/24 +114.46.21.0/24 +114.46.22.0/24 +114.46.24.0/24 +114.46.30.0/24 +114.167.236.0/24 +115.230.127.0/24 +115.231.221.0/24 +115.231.223.0/24 +116.31.123.0/24 +116.49.214.0/24 +116.122.109.0/24 +116.251.223.0/24 +118.107.76.0/24 +119.28.222.0/24 +119.197.57.0/24 +119.236.132.0/24 +119.237.11.0/24 +120.72.85.0/24 +123.31.20.0/24 +123.194.52.0/24 +124.158.10.0/24 +124.228.91.0/24 +125.212.211.0/24 +125.212.226.0/24 +125.226.128.0/24 +125.253.124.0/24 +128.199.81.0/24 +132.232.7.0/24 +132.232.9.0/24 +132.232.12.0/24 +132.232.29.0/24 +132.232.51.0/24 +132.232.55.0/24 +132.232.57.0/24 +132.232.61.0/24 +132.232.62.0/24 +132.232.75.0/24 +132.232.91.0/24 +132.232.94.0/24 +132.232.99.0/24 +132.232.104.0/24 +133.130.123.0/24 +138.19.63.0/24 +139.99.9.0/24 +139.99.104.0/24 +139.99.119.0/24 +139.162.55.0/24 +146.66.152.0/24 +146.66.153.0/24 +146.66.154.0/24 +146.66.155.0/24 +146.66.156.0/24 +146.66.157.0/24 +146.66.158.0/24 +146.66.159.0/24 +150.109.40.0/24 +151.80.60.0/24 +151.80.145.0/24 +152.111.192.0/24 +153.160.25.0/24 +153.254.86.0/24 +155.133.227.0/24 +155.133.230.0/24 +155.133.232.0/24 +155.133.233.0/24 +155.133.235.0/24 +155.133.238.0/24 +155.133.239.0/24 +155.133.242.0/24 +155.133.244.0/24 +155.133.245.0/24 +155.133.246.0/24 +155.133.247.0/24 +155.133.248.0/24 +155.133.249.0/24 +155.133.252.0/24 +155.133.253.0/24 +155.133.254.0/24 +159.28.159.0/24 +161.202.44.0/24 +162.254.192.0/24 +162.254.193.0/24 +162.254.194.0/24 +162.254.195.0/24 +162.254.196.0/24 +162.254.197.0/24 +162.254.198.0/24 +162.254.199.0/24 +163.53.149.0/24 +169.254.0.0/16 +169.254.125.95/32 +169.254.10.218/32 +175.210.83.0/24 +176.215.255.0/24 +180.149.95.0/24 +180.177.178.0/24 +182.171.230.0/24 +182.176.65.0/24 +183.60.111.0/24 +183.179.66.0/24 +185.25.60.0/24 +185.25.180.0/24 +185.25.181.0/24 +185.25.182.0/24 +185.25.183.0/24 +185.37.216.0/24 +185.62.205.0/24 +185.113.141.0/24 +190.217.33.0/24 +192.69.96.0/24 +192.69.97.0/24 +193.33.176.0/24 +195.14.118.0/24 +195.201.246.0/24 +196.38.180.0/24 +197.80.200.0/24 +198.27.83.0/24 +202.21.115.0/24 +203.175.163.0/24 +203.175.164.0/24 +203.175.165.0/24 +203.175.166.0/24 +203.218.101.0/24 +205.185.194.0/24 +205.196.6.0/24 +208.64.200.0/24 +208.64.203.0/24 +208.78.164.0/24 +208.78.165.0/24 +208.78.166.0/24 +209.58.164.0/24 +209.58.168.0/24 +209.58.178.0/24 +209.58.188.0/24 +210.211.124.0/24 +211.21.37.0/24 +211.48.69.0/24 +211.75.181.0/24 +212.64.32.0/24 +216.52.148.0/24 +217.150.77.0/24 +218.250.12.0/24 +218.250.15.0/24 +218.250.113.0/24 +218.255.3.0/24 +220.80.129.0/24 +220.134.154.0/24 +220.135.180.0/24 +220.169.242.0/24 +220.170.89.0/24 +221.6.100.0/24 +222.102.95.0/24 +222.112.242.0/24 +222.186.50.0/24 +222.187.224.0/24 +224.0.0.0/4 +240.0.0.0/4 diff --git a/package/ctcgfw/luci-app-openclash/files/etc/openclash/game_rules/Monster-Hunter-World.rules b/package/ctcgfw/luci-app-openclash/files/etc/openclash/game_rules/Monster-Hunter-World.rules new file mode 100644 index 0000000000..6b4de7abad --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/etc/openclash/game_rules/Monster-Hunter-World.rules @@ -0,0 +1,295 @@ +#Monster Hunter: World,怪兽世界猎人steam版,0,0,1,0,1,0,By-normanbb +2.16.0.0/16 +2.17.0.0/16 +2.18.0.0/16 +2.19.0.0/16 +2.20.0.0/16 +2.21.0.0/16 +2.22.0.0/16 +2.23.0.0/16 +8.7.0.0/16 +14.21.0.0/16 +23.0.0.0/4 +23.1.0.0/16 +23.2.0.0/16 +23.3.0.0/16 +23.4.0.0/16 +23.5.0.0/16 +23.7.0.0/16 +23.8.0.0/16 +23.9.0.0/16 +23.11.0.0/16 +23.12.0.0/16 +23.13.0.0/16 +23.14.0.0/16 +23.15.0.0/16 +23.32.0.0/16 +23.33.0.0/16 +23.34.0.0/16 +23.35.0.0/16 +23.36.0.0/16 +23.37.0.0/16 +23.38.0.0/16 +23.39.0.0/16 +23.40.0.0/16 +23.41.0.0/16 +23.42.0.0/16 +23.44.0.0/16 +23.45.0.0/16 +23.46.0.0/16 +23.48.0.0/16 +23.49.0.0/16 +23.50.0.0/16 +23.51.0.0/16 +23.52.0.0/16 +23.53.0.0/16 +23.54.0.0/16 +23.55.0.0/16 +23.56.0.0/16 +23.57.0.0/16 +23.58.0.0/16 +23.59.0.0/16 +23.60.0.0/16 +23.61.0.0/16 +23.62.0.0/16 +23.63.0.0/16 +23.64.0.0/16 +23.65.0.0/16 +23.67.0.0/16 +23.72.0.0/16 +23.73.0.0/16 +23.74.0.0/16 +23.75.0.0/16 +23.76.0.0/16 +23.77.0.0/16 +23.78.0.0/16 +23.79.0.0/16 +23.192.0.0/16 +23.193.0.0/16 +23.194.0.0/16 +23.196.0.0/16 +23.197.0.0/16 +23.198.0.0/16 +23.199.0.0/16 +23.200.0.0/16 +23.201.0.0/16 +23.202.0.0/16 +23.203.0.0/16 +23.204.0.0/16 +23.205.0.0/16 +23.206.0.0/16 +23.207.0.0/16 +23.208.0.0/16 +23.209.0.0/16 +23.210.0.0/16 +23.211.0.0/16 +23.212.0.0/16 +23.213.0.0/16 +23.214.0.0/16 +23.215.0.0/16 +23.216.0.0/16 +23.217.0.0/16 +23.218.0.0/16 +23.219.0.0/16 +23.220.0.0/16 +23.221.0.0/16 +23.222.0.0/16 +23.223.0.0/16 +31.0.0.0/4 +31.13.0.0/16 +37.10.0.0/16 +45.121.0.0/16 +45.121.184.0/24 +45.121.186.0/24 +46.0.0.0/4 +59.0.0.0/4 +60.254.0.0/16 +61.213.0.0/16 +63.146.0.0/16 +63.219.0.0/16 +63.243.0.0/16 +64.0.0.0/4 +64.124.0.0/16 +65.152.0.0/16 +65.158.0.0/16 +66.0.0.0/4 +67.0.0.0/4 +67.131.0.0/16 +69.0.0.0/4 +69.16.0.0/16 +69.63.0.0/16 +69.171.0.0/16 +69.192.0.0/16 +72.165.0.0/16 +72.246.0.0/16 +72.247.0.0/16 +74.0.0.0/4 +74.86.0.0/16 +74.201.0.0/16 +75.0.0.0/4 +75.126.0.0/16 +78.16.0.0/16 +84.53.0.0/16 +85.190.0.0/16 +88.0.0.0/4 +88.221.0.0/16 +92.122.0.0/16 +92.123.0.0/16 +95.100.0.0/16 +95.101.0.0/16 +96.0.0.0/4 +96.6.0.0/16 +96.16.0.0/16 +96.17.0.0/16 +103.10.124.0/24 +103.28.0.0/16 +103.28.54.0/24 +103.74.0.0/16 +104.0.0.0/4 +104.65.0.0/16 +104.66.0.0/16 +104.67.0.0/16 +104.68.0.0/16 +104.70.0.0/16 +104.71.0.0/16 +104.72.0.0/16 +104.73.0.0/16 +104.75.0.0/16 +104.76.0.0/16 +104.77.0.0/16 +104.79.0.0/16 +104.80.0.0/16 +104.81.0.0/16 +104.82.0.0/16 +104.83.0.0/16 +104.84.0.0/16 +104.85.0.0/16 +104.86.0.0/16 +104.87.0.0/16 +104.89.0.0/16 +104.90.0.0/16 +104.91.0.0/16 +104.92.0.0/16 +104.94.0.0/16 +104.95.0.0/16 +104.97.0.0/16 +104.98.0.0/16 +104.100.0.0/16 +104.101.0.0/16 +104.102.0.0/16 +104.103.0.0/16 +104.104.0.0/16 +104.105.0.0/16 +104.106.0.0/16 +104.107.0.0/16 +104.108.0.0/16 +104.109.0.0/16 +104.110.0.0/16 +104.111.0.0/16 +104.112.0.0/16 +104.113.0.0/16 +104.115.0.0/16 +104.116.0.0/16 +104.117.0.0/16 +104.118.0.0/16 +104.119.0.0/16 +104.120.0.0/16 +104.121.0.0/16 +104.122.0.0/16 +104.123.0.0/16 +104.124.0.0/16 +104.126.0.0/16 +104.127.0.0/16 +106.15.0.0/16 +110.45.0.0/16 +115.223.0.0/16 +117.103.0.0/16 +118.155.0.0/16 +118.214.0.0/16 +118.215.0.0/16 +120.24.184.25/32 +121.156.0.0/16 +122.252.0.0/16 +125.56.0.0/16 +125.252.0.0/16 +128.241.0.0/16 +139.175.0.0/16 +141.0.0.0/4 +146.66.0.0/16 +152.199.0.0/16 +153.254.0.0/16 +153.254.86.0/24 +155.133.0.0/16 +155.133.232.0/24 +155.133.233.0/24 +155.133.234.0/24 +155.133.235.0/24 +155.133.239.0/24 +155.133.244.0/24 +155.133.253.0/24 +155.133.254.0/24 +162.254.0.0/16 +162.254.192.0/24 +162.254.193.0/24 +162.254.194.0/24 +162.254.199.0/24 +165.254.0.0/16 +172.0.0.0/4 +172.224.0.0/16 +172.226.0.0/16 +172.227.0.0/16 +172.228.0.0/16 +172.229.0.0/16 +172.230.0.0/16 +172.231.0.0/16 +173.0.0.0/4 +173.197.0.0/16 +173.205.0.0/16 +173.222.0.0/16 +173.223.0.0/16 +173.252.0.0/16 +174.36.0.0/16 +175.99.0.0/16 +175.139.0.0/16 +180.101.192.0/24 +182.162.0.0/16 +184.0.0.0/4 +184.24.0.0/16 +184.25.0.0/16 +184.26.0.0/16 +184.29.0.0/16 +184.30.0.0/16 +184.31.0.0/16 +184.50.0.0/16 +184.51.0.0/16 +184.84.0.0/16 +184.85.0.0/16 +184.87.0.0/16 +185.25.0.0/16 +185.27.0.0/16 +185.88.0.0/16 +192.69.96.0/24 +192.81.0.0/16 +198.87.0.0/16 +198.172.0.0/16 +199.0.0.0/4 +199.239.0.0/16 +203.69.0.0/16 +203.80.149.0/24 +205.186.0.0/16 +205.196.6.0/24 +205.197.0.0/16 +208.0.0.0/4 +208.64.0.0/16 +208.64.200.0/24 +208.78.0.0/16 +208.78.164.0/24 +208.78.166.0/24 +208.78.167.0/24 +209.170.0.0/16 +210.61.0.0/16 +210.201.0.0/16 +216.3.0.0/16 +216.156.0.0/16 +223.119.0.0/16 + diff --git a/package/ctcgfw/luci-app-openclash/files/etc/openclash/game_rules/PUBG-Asia%26-Southeast-Asia.rules b/package/ctcgfw/luci-app-openclash/files/etc/openclash/game_rules/PUBG-Asia%26-Southeast-Asia.rules new file mode 100644 index 0000000000..76452bc6de --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/etc/openclash/game_rules/PUBG-Asia%26-Southeast-Asia.rules @@ -0,0 +1,1759 @@ +#PUBG Asia & Southeast Asia,绝地求生亚服&东南亚服,0,0,1,0,1,0,By-normanbb +1.255.48.0/20 +1.255.50.0/23 +1.255.54.0/23 +2.16.0.0/16 +2.16.4.0/24 +2.16.10.0/24 +2.16.64.0/24 +2.17.0.0/16 +2.17.55.0/24 +2.18.0.0/16 +2.18.24.0/24 +2.18.212.0/24 +2.19.0.0/16 +2.19.147.0/24 +2.20.0.0/16 +2.20.188.0/24 +2.21.0.0/16 +2.21.71.0/24 +2.21.74.0/24 +2.21.75.0/24 +2.22.0.0/16 +2.22.74.0/24 +2.22.146.0/24 +2.23.0.0/16 +3.0.0.0/4 +3.0.0.0/15 +3.80.0.0/12 +5.9.56.0/24 +8.7.0.0/16 +13.32.0.0/15 +13.32.1.0/24 +13.32.14.0/24 +13.32.16.0/24 +13.32.198.0/24 +13.32.230.0/24 +13.32.231.0/24 +13.32.253.0/24 +13.33.172.21/32 +13.33.172.29/32 +13.33.172.61/32 +13.33.172.72/32 +13.33.172.82/32 +13.33.172.100/32 +13.33.172.108/32 +13.33.172.249/32 +13.35.0.0/16 +13.35.121.0/24 +13.35.125.27/32 +13.35.125.75/32 +13.35.125.119/32 +13.35.125.123/32 +13.54.0.0/16 +13.58.0.0/16 +13.70.0.0/16 +13.72.192.0/24 +13.73.232.0/24 +13.75.0.0/16 +13.88.208.0/24 +13.94.0.0/16 +13.94.32.0/24 +13.94.48.0/24 +13.94.49.0/24 +13.94.56.0/24 +13.112.0.0/16 +13.115.142.243/32 +13.124.0.0/16 +13.125.0.0/16 +13.125.34.57/32 +13.125.133.61/32 +13.125.200.121/32 +13.209.0.0/16 +13.210.0.0/16 +13.228.0.0/15 +13.228.0.0/16 +13.230.0.0/16 +13.236.0.0/16 +13.238.85.250/32 +13.249.0.0/16 +13.250.0.0/15 +13.250.0.0/16 +13.250.244.21/32 +13.251.110.6/32 +14.21.0.0/16 +18.136.0.0/16 +18.136.198.141/32 +18.179.0.0/16 +18.179.147.209/32 +18.182.0.0/16 +18.184.0.0/16 +18.184.56.0/24 +18.184.93.0/24 +18.185.215.159/32 +18.188.0.0/16 +18.191.0.0/16 +18.194.0.0/16 +18.194.55.168/32 +18.196.0.0/16 +18.200.0.0/16 +18.202.0.0/16 +18.204.0.0/14 +18.204.0.0/16 +18.205.2.190/32 +18.208.0.0/13 +18.208.0.0/16 +18.216.0.0/16 +18.220.0.0/16 +18.224.0.0/16 +18.228.0.0/16 +18.231.0.0/16 +18.231.163.192/32 +18.232.0.0/14 +18.232.0.0/16 +23.0.0.0/4 +23.0.7.0/24 +23.1.0.0/16 +23.2.0.0/16 +23.2.16.0/24 +23.2.17.0/24 +23.3.0.0/16 +23.4.0.0/16 +23.4.240.0/24 +23.5.0.0/16 +23.7.0.0/16 +23.8.0.0/16 +23.9.0.0/16 +23.11.0.0/16 +23.12.0.0/16 +23.13.0.0/16 +23.14.0.0/16 +23.14.85.0/24 +23.14.90.0/24 +23.15.0.0/16 +23.15.4.0/24 +23.15.224.0/24 +23.20.0.0/14 +23.20.0.0/16 +23.32.0.0/16 +23.32.241.0/24 +23.32.248.0/24 +23.33.0.0/16 +23.34.0.0/16 +23.34.60.0/24 +23.34.61.0/24 +23.35.0.0/16 +23.35.216.0/24 +23.36.0.0/16 +23.37.0.0/16 +23.38.0.0/16 +23.39.0.0/16 +23.40.0.0/16 +23.41.0.0/16 +23.41.243.0/24 +23.42.0.0/16 +23.44.0.0/16 +23.45.0.0/16 +23.45.232.0/24 +23.46.0.0/16 +23.48.0.0/16 +23.49.0.0/16 +23.50.0.0/16 +23.50.49.0/24 +23.50.224.0/24 +23.51.0.0/16 +23.51.122.0/24 +23.52.0.0/16 +23.53.0.0/16 +23.53.73.0/24 +23.53.195.0/24 +23.54.0.0/16 +23.55.0.0/16 +23.56.0.0/16 +23.57.0.0/16 +23.57.66.9/32 +23.57.66.11/32 +23.57.66.17/32 +23.57.66.48/32 +23.57.66.49/32 +23.57.66.50/32 +23.57.66.51/32 +23.58.0.0/16 +23.58.154.0/24 +23.59.0.0/16 +23.59.133.245/32 +23.60.0.0/16 +23.61.0.0/16 +23.61.249.0/24 +23.61.250.0/24 +23.62.0.0/16 +23.62.2.0/24 +23.62.53.0/24 +23.62.98.0/24 +23.62.109.0/24 +23.62.226.0/24 +23.63.0.0/16 +23.63.44.150/32 +23.64.0.0/16 +23.65.0.0/16 +23.65.182.0/24 +23.67.0.0/16 +23.67.161.0/24 +23.72.0.0/16 +23.73.0.0/16 +23.73.206.0/24 +23.74.0.0/16 +23.74.138.0/24 +23.75.0.0/16 +23.76.0.0/16 +23.77.0.0/16 +23.77.202.0/24 +23.78.0.0/16 +23.79.0.0/16 +23.97.64.0/24 +23.97.80.0/24 +23.98.32.0/24 +23.98.40.0/24 +23.98.44.0/24 +23.98.56.0/24 +23.98.56.96/32 +23.98.56.128/32 +23.99.96.0/24 +23.100.88.0/24 +23.100.104.0/24 +23.101.0.0/16 +23.102.224.0/24 +23.111.236.0/24 +23.192.0.0/16 +23.193.0.0/16 +23.194.0.0/16 +23.196.0.0/16 +23.196.214.0/24 +23.197.0.0/16 +23.198.0.0/16 +23.198.99.0/24 +23.199.0.0/16 +23.200.0.0/16 +23.201.0.0/16 +23.201.102.0/24 +23.201.103.0/24 +23.202.0.0/16 +23.202.83.0/24 +23.203.0.0/16 +23.204.0.0/16 +23.204.239.0/24 +23.205.0.0/16 +23.206.0.0/16 +23.206.90.0/24 +23.207.0.0/16 +23.208.0.0/16 +23.209.0.0/16 +23.210.0.0/16 +23.210.202.0/24 +23.210.203.0/24 +23.211.0.0/16 +23.211.40.0/24 +23.211.150.0/24 +23.212.0.0/16 +23.212.53.0/24 +23.213.0.0/16 +23.214.0.0/16 +23.215.0.0/16 +23.215.105.0/24 +23.215.130.0/24 +23.216.0.0/16 +23.217.0.0/16 +23.217.43.0/24 +23.218.0.0/16 +23.219.0.0/16 +23.220.0.0/16 +23.220.195.0/24 +23.221.0.0/16 +23.222.0.0/16 +23.222.61.0/24 +23.223.0.0/16 +23.251.140.0/24 +27.0.0.0/4 +31.0.0.0/4 +31.13.0.0/16 +31.13.65.18/32 +31.13.77.55/32 +34.192.0.0/12 +34.192.0.0/16 +34.224.0.0/12 +34.224.0.0/16 +34.230.18.128/32 +34.240.0.0/16 +34.248.0.0/16 +35.153.0.0/16 +35.156.0.0/16 +35.157.9.231/32 +35.167.6.0/24 +35.168.0.0/13 +35.168.0.0/16 +35.187.4.0/24 +35.187.15.0/24 +35.187.36.0/24 +35.187.59.0/24 +35.187.73.0/24 +35.187.76.0/24 +35.187.83.0/24 +35.187.88.0/24 +35.187.89.0/24 +35.187.93.0/24 +35.187.95.0/24 +35.187.97.0/24 +35.187.103.0/24 +35.187.107.0/24 +35.187.123.0/24 +35.187.161.0/24 +35.187.163.0/24 +35.187.175.0/24 +35.187.176.0/24 +35.187.178.0/24 +35.187.182.0/24 +35.187.188.0/24 +35.187.190.0/24 +35.189.194.0/24 +35.189.197.0/24 +35.189.206.0/24 +35.189.207.0/24 +35.189.212.0/24 +35.189.216.0/24 +35.189.228.0/24 +35.189.235.0/24 +35.189.248.0/24 +35.190.193.0/24 +35.190.202.0/24 +35.190.203.0/24 +35.190.204.0/24 +35.190.205.0/24 +35.190.206.0/24 +35.195.4.0/24 +35.195.7.0/24 +35.195.9.0/24 +35.195.11.0/24 +35.195.24.0/24 +35.195.29.0/24 +35.195.33.0/24 +35.195.41.0/24 +35.195.44.0/24 +35.195.45.0/24 +35.195.47.0/24 +35.195.50.0/24 +35.195.53.0/24 +35.195.66.0/24 +35.195.70.0/24 +35.195.73.0/24 +35.195.75.0/24 +35.195.85.0/24 +35.195.87.0/24 +35.195.89.0/24 +35.195.95.0/24 +35.195.98.0/24 +35.195.100.0/24 +35.195.103.0/24 +35.195.105.0/24 +35.195.112.0/24 +35.195.114.0/24 +35.195.121.0/24 +35.195.126.0/24 +35.195.131.0/24 +35.195.146.0/24 +35.195.149.0/24 +35.195.150.0/24 +35.195.153.0/24 +35.195.156.0/24 +35.195.159.0/24 +35.195.161.0/24 +35.195.162.0/24 +35.195.176.0/24 +35.195.182.0/24 +35.195.188.0/24 +35.195.192.0/24 +35.195.195.0/24 +35.195.202.0/24 +35.195.207.0/24 +35.195.216.0/24 +35.195.217.0/24 +35.195.231.0/24 +35.195.239.0/24 +35.195.247.0/24 +35.195.248.0/24 +35.195.251.0/24 +35.195.253.0/24 +35.198.110.0/24 +35.198.140.0/24 +35.205.19.0/24 +35.205.21.0/24 +35.205.30.0/24 +35.205.34.0/24 +35.205.36.0/24 +35.205.46.0/24 +35.205.47.0/24 +35.205.50.0/24 +35.205.60.0/24 +35.205.73.0/24 +35.205.74.0/24 +35.205.79.0/24 +35.205.80.0/24 +35.205.81.0/24 +35.205.85.0/24 +35.205.94.0/24 +35.205.97.0/24 +35.205.100.0/24 +35.205.101.0/24 +35.205.108.0/24 +35.205.110.0/24 +35.205.111.0/24 +35.205.112.0/24 +35.205.115.0/24 +35.205.125.0/24 +35.205.128.0/24 +35.205.130.0/24 +35.205.135.0/24 +35.205.138.0/24 +35.205.141.0/24 +35.205.144.0/24 +35.205.153.0/24 +35.205.154.0/24 +35.205.155.0/24 +35.205.159.0/24 +35.205.163.0/24 +35.205.164.0/24 +35.205.172.0/24 +35.205.174.0/24 +35.205.180.0/24 +35.205.183.0/24 +35.205.189.0/24 +35.205.190.0/24 +35.205.192.0/24 +35.205.193.0/24 +35.205.197.0/24 +35.205.206.0/24 +35.205.210.0/24 +35.205.211.0/24 +35.205.212.0/24 +35.205.213.0/24 +35.205.216.0/24 +35.205.226.0/24 +35.205.228.0/24 +35.205.233.0/24 +35.205.236.0/24 +35.205.237.0/24 +35.205.238.0/24 +35.205.239.0/24 +35.205.244.0/24 +35.205.249.0/24 +35.205.253.0/24 +35.233.8.0/24 +35.233.10.0/24 +35.233.24.0/24 +35.233.27.0/24 +35.233.29.0/24 +35.233.32.0/24 +35.233.33.0/24 +35.233.34.0/24 +35.233.37.0/24 +35.233.42.0/24 +35.233.44.0/24 +35.233.52.0/24 +35.233.59.0/24 +35.233.65.0/24 +35.233.68.0/24 +35.233.73.0/24 +35.233.84.0/24 +35.233.91.0/24 +35.233.96.0/24 +35.233.97.0/24 +35.233.109.0/24 +35.233.113.0/24 +35.233.118.0/24 +35.233.119.0/24 +35.233.122.0/24 +35.233.123.0/24 +35.234.66.0/24 +35.234.67.0/24 +35.234.68.0/24 +35.240.2.0/24 +35.240.4.0/24 +35.240.5.0/24 +35.240.8.0/24 +35.240.11.0/24 +35.240.12.0/24 +35.240.14.0/24 +35.240.15.0/24 +35.240.16.0/24 +35.240.17.0/24 +35.240.18.0/24 +35.240.25.0/24 +35.240.33.0/24 +35.240.34.0/24 +35.240.35.0/24 +35.240.41.0/24 +35.240.43.0/24 +35.240.48.0/24 +35.240.49.0/24 +35.240.53.0/24 +35.240.54.0/24 +35.240.55.0/24 +35.240.64.0/24 +35.240.67.0/24 +35.240.70.0/24 +35.240.72.0/24 +35.240.73.0/24 +35.240.75.0/24 +35.240.81.0/24 +35.240.82.0/24 +35.240.83.0/24 +35.240.95.0/24 +35.240.97.0/24 +35.240.98.0/24 +35.240.102.0/24 +35.240.104.0/24 +35.240.105.0/24 +35.240.108.0/24 +35.240.109.0/24 +35.240.117.0/24 +35.240.123.0/24 +35.240.124.0/24 +35.241.128.0/24 +35.241.129.0/24 +35.241.132.0/24 +35.241.133.0/24 +35.241.135.0/24 +35.241.141.0/24 +35.241.142.0/24 +35.241.144.0/24 +35.241.148.0/24 +35.241.149.0/24 +35.241.150.0/24 +35.241.152.0/24 +35.241.153.0/24 +35.241.154.0/24 +35.241.156.0/24 +35.241.158.0/24 +35.241.160.0/24 +35.241.162.0/24 +35.241.163.0/24 +35.241.166.0/24 +35.241.168.0/24 +35.241.170.0/24 +35.241.173.0/24 +35.241.175.0/24 +35.241.177.0/24 +35.241.179.0/24 +35.241.182.0/24 +35.241.183.0/24 +35.241.186.0/24 +35.241.189.0/24 +35.241.191.0/24 +35.241.192.0/24 +35.241.193.0/24 +35.241.195.0/24 +35.241.199.0/24 +35.241.200.0/24 +35.241.204.0/24 +35.241.207.0/24 +35.241.211.0/24 +35.241.213.0/24 +35.241.214.0/24 +35.241.216.0/24 +35.241.218.0/24 +35.241.219.0/24 +35.241.225.0/24 +35.241.227.0/24 +35.241.229.0/24 +35.241.231.0/24 +35.241.232.0/24 +35.241.240.0/24 +35.241.242.0/24 +35.241.244.0/24 +35.241.248.0/24 +35.241.251.0/24 +37.10.0.0/16 +37.10.124.0/24 +40.74.64.0/24 +40.74.96.0/24 +40.74.128.0/24 +40.83.64.0/24 +42.99.128.0/24 +43.250.192.0/24 +43.250.193.0/24 +45.119.146.0/24 +45.121.0.0/16 +45.121.186.0/24 +46.0.0.0/4 +46.33.69.0/24 +46.51.128.0/24 +46.51.192.0/24 +46.51.216.0/21 +46.51.216.0/24 +46.51.224.0/24 +46.137.0.0/16 +46.137.128.0/24 +46.137.192.0/19 +46.137.192.0/24 +46.137.224.0/19 +46.137.224.0/24 +47.75.17.0/24 +49.236.136.0/24 +50.16.0.0/15 +50.16.0.0/16 +50.19.0.0/16 +52.0.0.0/4 +52.0.0.0/15 +52.2.0.0/15 +52.2.0.0/16 +52.4.0.0/14 +52.4.0.0/16 +52.14.0.0/16 +52.15.0.0/16 +52.16.0.0/16 +52.18.0.0/16 +52.20.0.0/14 +52.20.0.0/16 +52.28.0.0/16 +52.29.0.0/16 +52.30.0.0/16 +52.44.0.0/15 +52.44.0.0/16 +52.46.0.0/18 +52.48.0.0/16 +52.54.0.0/15 +52.54.0.0/16 +52.57.0.0/16 +52.57.89.137/32 +52.58.0.0/16 +52.62.0.0/16 +52.62.107.227/32 +52.64.0.0/16 +52.64.103.63/32 +52.64.128.0/24 +52.65.0.0/16 +52.67.0.0/16 +52.67.16.101/32 +52.68.0.0/16 +52.70.0.0/15 +52.70.0.0/16 +52.72.0.0/15 +52.72.0.0/16 +52.74.0.0/16 +52.76.0.0/16 +52.76.0.0/17 +52.76.128.0/17 +52.76.128.0/24 +52.76.132.161/32 +52.77.0.0/16 +52.77.210.211/32 +52.78.0.0/16 +52.78.100.116/32 +52.79.0.0/16 +52.79.125.129/32 +52.84.0.0/15 +52.84.43.0/24 +52.84.166.0/24 +52.84.167.0/24 +52.84.186.0/24 +52.84.193.0/24 +52.84.203.0/24 +52.84.239.0/24 +52.84.243.0/24 +52.85.0.0/16 +52.86.0.0/15 +52.86.0.0/16 +52.90.0.0/15 +52.90.0.0/16 +52.92.0.0/16 +52.92.16.0/24 +52.92.39.0/24 +52.92.40.0/24 +52.92.52.0/24 +52.92.56.0/24 +52.92.60.0/24 +52.92.64.0/24 +52.92.68.0/24 +52.92.72.0/24 +52.92.76.0/24 +52.92.80.0/24 +52.93.0.0/16 +52.93.1.0/24 +52.93.2.0/24 +52.93.3.0/24 +52.93.4.0/24 +52.93.8.0/24 +52.93.16.0/24 +52.94.0.0/16 +52.94.4.0/24 +52.94.5.0/24 +52.94.6.0/24 +52.94.7.0/24 +52.94.8.0/24 +52.94.11.0/24 +52.94.13.0/24 +52.94.17.0/24 +52.94.24.0/24 +52.94.26.0/24 +52.94.192.0/24 +52.94.196.0/24 +52.94.198.16/32 +52.94.198.48/32 +52.94.198.64/32 +52.94.198.96/32 +52.94.198.112/32 +52.94.199.0/24 +52.94.200.0/24 +52.94.204.0/24 +52.94.206.0/24 +52.94.216.0/24 +52.94.224.0/24 +52.94.240.0/24 +52.94.244.0/24 +52.94.248.0/24 +52.94.248.0/28 +52.94.248.16/32 +52.94.248.32/28 +52.94.248.32/32 +52.94.248.48/32 +52.94.248.64/32 +52.94.248.80/32 +52.94.248.112/32 +52.94.248.160/32 +52.94.248.176/28 +52.94.248.176/32 +52.94.252.0/24 +52.94.254.0/24 +52.95.0.0/16 +52.95.16.0/24 +52.95.24.0/24 +52.95.28.0/24 +52.95.30.0/24 +52.95.34.0/24 +52.95.35.0/24 +52.95.36.0/24 +52.95.48.0/24 +52.95.56.0/24 +52.95.60.0/24 +52.95.61.0/24 +52.95.62.0/24 +52.95.63.0/24 +52.95.104.0/24 +52.95.108.0/24 +52.95.111.0/24 +52.95.112.0/24 +52.95.128.0/24 +52.95.136.0/24 +52.95.138.0/24 +52.95.192.0/24 +52.95.212.0/24 +52.95.240.0/24 +52.95.241.0/24 +52.95.242.0/24 +52.95.243.0/24 +52.95.244.0/24 +52.95.245.0/24 +52.95.248.0/24 +52.95.251.0/24 +52.95.252.0/24 +52.95.255.0/24 +52.95.255.16/32 +52.95.255.32/28 +52.95.255.32/32 +52.95.255.48/32 +52.95.255.64/32 +52.95.255.80/28 +52.95.255.80/32 +52.95.255.128/32 +52.119.184.0/24 +52.119.192.0/24 +52.119.196.0/24 +52.119.205.0/24 +52.119.212.0/24 +52.119.216.0/24 +52.119.224.0/24 +52.119.232.0/24 +52.119.240.0/24 +52.124.128.0/17 +52.141.0.0/16 +52.141.16.0/24 +52.147.64.0/24 +52.175.0.0/16 +52.175.32.0/24 +52.175.40.0/24 +52.175.40.64/32 +52.175.40.128/32 +52.175.41.0/24 +52.175.42.0/24 +52.175.43.0/24 +52.175.43.64/32 +52.175.44.0/24 +52.175.48.0/24 +52.175.64.0/24 +52.175.96.0/24 +52.175.112.0/24 +52.175.112.32/32 +52.175.113.0/24 +52.175.120.0/24 +52.175.128.0/24 +52.175.160.0/24 +52.184.0.0/16 +52.184.32.0/24 +52.184.40.0/24 +52.184.40.64/32 +52.184.41.0/24 +52.184.42.0/24 +52.184.48.0/24 +52.184.64.0/24 +52.184.96.0/24 +52.192.0.0/16 +52.194.0.0/16 +52.196.0.0/16 +52.200.0.0/13 +52.200.0.0/16 +52.208.0.0/16 +52.216.0.0/16 +52.218.0.0/16 +52.219.0.0/16 +52.219.16.0/24 +52.219.32.0/24 +52.219.40.0/24 +52.219.44.0/24 +52.219.56.0/24 +52.219.60.0/24 +52.219.68.0/24 +52.219.72.0/24 +52.219.76.0/24 +52.219.80.0/24 +52.220.0.0/15 +52.220.0.0/16 +52.222.128.0/17 +52.229.128.0/24 +52.229.160.0/24 +52.229.176.0/24 +52.229.177.0/24 +52.229.184.0/24 +52.229.192.0/24 +52.229.224.0/24 +52.229.232.0/24 +52.229.240.0/24 +52.231.0.0/16 +52.231.1.0/24 +52.231.8.0/24 +52.231.16.0/24 +52.231.32.0/24 +52.231.40.0/24 +52.231.41.0/24 +52.231.48.0/24 +52.231.64.0/24 +52.231.80.0/24 +52.231.80.128/32 +52.231.88.0/24 +52.231.96.0/24 +52.231.128.0/24 +52.231.129.0/24 +52.231.136.0/24 +52.231.144.0/24 +52.231.160.0/24 +52.231.168.0/24 +52.231.168.128/32 +52.231.169.0/24 +52.231.176.0/24 +52.231.192.0/24 +52.231.208.0/24 +52.231.208.32/32 +52.231.216.0/24 +52.231.224.0/24 +52.231.240.0/24 +52.239.128.0/24 +52.239.146.0/24 +52.239.147.0/24 +52.239.147.96/32 +52.239.147.128/32 +52.239.148.0/24 +52.239.165.160/32 +52.245.56.0/24 +52.245.56.32/32 +52.245.92.0/24 +52.245.93.0/24 +52.245.93.32/32 +52.245.93.64/32 +52.245.93.112/32 +52.245.93.128/32 +52.245.100.0/24 +52.245.112.0/24 +52.245.112.32/32 +52.253.172.0/24 +52.253.188.0/24 +52.253.192.0/24 +52.253.216.0/24 +54.64.0.0/16 +54.66.0.0/16 +54.72.0.0/16 +54.74.0.0/16 +54.76.0.0/16 +54.78.0.0/16 +54.79.0.0/16 +54.80.0.0/13 +54.80.0.0/16 +54.88.0.0/14 +54.88.0.0/16 +54.92.0.0/16 +54.92.128.0/17 +54.92.128.0/24 +54.93.0.0/16 +54.94.0.0/16 +54.94.197.230/32 +54.95.0.0/16 +54.144.0.0/14 +54.144.0.0/16 +54.150.0.0/16 +54.151.128.0/17 +54.151.128.0/24 +54.152.0.0/16 +54.153.128.0/24 +54.154.0.0/16 +54.155.0.0/16 +54.156.0.0/14 +54.156.0.0/16 +54.160.0.0/13 +54.160.0.0/16 +54.168.0.0/16 +54.169.0.0/16 +54.170.0.0/16 +54.172.0.0/15 +54.172.0.0/16 +54.174.0.0/15 +54.174.0.0/16 +54.174.0.173/32 +54.178.0.0/16 +54.179.0.0/16 +54.180.0.0/15 +54.180.0.0/16 +54.182.0.0/16 +54.182.2.0/24 +54.182.4.0/24 +54.182.5.0/24 +54.192.0.0/16 +54.194.0.0/16 +54.196.0.0/15 +54.196.0.0/16 +54.198.0.0/16 +54.199.0.0/16 +54.204.0.0/15 +54.204.0.0/16 +54.206.0.0/16 +54.206.7.59/32 +54.206.43.103/32 +54.207.0.0/16 +54.208.0.0/15 +54.208.0.0/16 +54.210.0.0/15 +54.210.0.0/16 +54.216.0.0/16 +54.220.0.0/16 +54.221.0.0/16 +54.224.0.0/15 +54.224.0.0/16 +54.226.0.0/15 +54.226.0.0/16 +54.228.0.0/16 +54.229.0.0/16 +54.230.0.0/16 +54.231.0.0/16 +54.231.128.0/24 +54.231.192.0/24 +54.231.224.0/24 +54.231.240.0/24 +54.231.244.0/24 +54.231.248.0/24 +54.231.252.0/24 +54.231.253.0/24 +54.232.0.0/16 +54.233.0.0/16 +54.233.64.0/24 +54.233.128.0/17 +54.233.128.0/24 +54.234.0.0/15 +54.234.0.0/16 +54.236.0.0/15 +54.236.0.0/16 +54.238.0.0/16 +54.239.0.48/32 +54.239.0.80/32 +54.239.0.96/32 +54.239.0.192/32 +54.239.4.0/24 +54.239.8.0/24 +54.239.16.0/24 +54.239.32.0/24 +54.239.52.0/24 +54.239.54.0/24 +54.239.56.0/24 +54.239.64.0/24 +54.239.96.0/24 +54.239.98.0/24 +54.239.99.0/24 +54.239.100.0/24 +54.239.104.0/24 +54.239.108.0/24 +54.239.116.0/24 +54.239.120.0/24 +54.239.128.0/18 +54.239.130.0/24 +54.239.158.0/24 +54.239.192.0/19 +54.240.128.0/18 +54.240.192.0/24 +54.240.196.0/24 +54.240.197.0/24 +54.240.199.0/24 +54.240.200.0/24 +54.240.202.0/24 +54.240.203.0/24 +54.240.204.0/24 +54.240.208.0/24 +54.240.216.0/24 +54.240.220.0/24 +54.240.225.0/24 +54.240.226.0/24 +54.240.227.0/24 +54.240.228.0/24 +54.240.232.0/24 +54.240.244.0/24 +54.242.0.0/15 +54.242.0.0/16 +54.246.0.0/16 +54.247.0.0/16 +54.248.0.0/16 +54.250.0.0/16 +54.251.0.0/16 +54.252.0.0/16 +54.253.0.0/16 +54.254.0.0/16 +54.255.0.0/16 +59.0.0.0/4 +60.254.0.0/16 +60.254.131.0/24 +61.160.200.0/24 +61.213.0.0/16 +61.213.168.0/24 +63.130.76.0/24 +63.146.0.0/16 +63.146.69.0/24 +63.147.242.0/24 +63.217.8.0/24 +63.219.0.0/16 +63.219.254.0/24 +63.233.60.0/24 +63.243.0.0/16 +63.243.242.0/24 +63.243.244.0/24 +63.251.124.0/24 +64.0.0.0/4 +64.48.225.0/24 +64.124.0.0/16 +64.124.167.0/24 +64.252.64.0/18 +65.52.160.0/24 +65.152.0.0/16 +65.158.0.0/16 +65.158.114.0/24 +65.200.22.0/24 +66.0.0.0/4 +66.61.174.0/24 +67.0.0.0/4 +67.131.0.0/16 +67.131.44.0/24 +67.202.0.0/16 +67.202.0.0/18 +69.0.0.0/4 +69.16.0.0/16 +69.16.175.0/24 +69.63.0.0/16 +69.171.0.0/16 +69.192.0.0/16 +70.42.62.0/24 +70.132.0.0/18 +71.152.0.0/17 +72.21.192.0/24 +72.44.32.0/19 +72.44.32.0/24 +72.165.0.0/16 +72.165.61.0/24 +72.166.126.0/24 +72.246.0.0/16 +72.246.103.0/24 +72.246.188.0/24 +72.246.189.0/24 +72.246.190.0/24 +72.247.0.0/16 +72.247.177.0/24 +72.247.184.0/24 +74.0.0.0/4 +74.86.0.0/16 +74.201.0.0/16 +74.201.98.0/24 +74.201.99.0/24 +74.201.102.0/24 +74.201.103.0/24 +74.201.107.0/24 +75.0.0.0/4 +75.101.128.0/17 +75.101.128.0/24 +75.126.0.0/16 +77.67.20.0/24 +78.16.0.0/16 +79.125.0.0/16 +82.163.72.0/24 +84.53.0.0/16 +85.190.0.0/16 +85.190.158.0/24 +87.238.80.0/24 +88.0.0.0/4 +88.202.177.0/24 +88.202.180.0/24 +88.202.181.0/24 +88.202.182.0/24 +88.202.186.0/24 +88.221.0.0/16 +88.221.71.0/24 +88.221.116.0/24 +88.221.235.0/24 +92.122.0.0/16 +92.122.226.0/24 +92.122.227.0/24 +92.123.0.0/16 +92.123.225.0/24 +93.46.8.0/24 +95.100.0.0/16 +95.100.97.0/24 +95.101.0.0/16 +95.101.2.0/24 +95.101.78.0/24 +95.101.89.0/24 +95.101.182.0/24 +96.0.0.0/4 +96.6.0.0/16 +96.16.0.0/16 +96.17.0.0/16 +96.17.70.0/24 +96.17.109.0/24 +96.17.151.0/24 +99.84.0.0/16 +99.84.216.19/32 +99.84.216.53/32 +99.84.216.79/32 +99.84.216.103/32 +99.86.0.0/16 +100.24.0.0/13 +103.4.8.0/24 +103.4.12.0/24 +103.8.172.0/24 +103.28.0.0/16 +103.28.54.0/24 +103.74.0.0/16 +103.112.40.0/24 +103.112.40.2/32 +103.112.40.32/32 +103.112.40.62/32 +103.112.40.92/32 +103.194.164.0/24 +103.194.166.0/24 +103.246.148.0/24 +103.246.150.0/24 +104.0.0.0/4 +104.46.24.0/24 +104.46.25.0/24 +104.46.26.0/24 +104.46.27.0/24 +104.46.160.0/24 +104.46.224.0/24 +104.65.0.0/16 +104.66.0.0/16 +104.67.0.0/16 +104.68.0.0/16 +104.70.0.0/16 +104.70.154.0/24 +104.71.0.0/16 +104.72.0.0/16 +104.73.0.0/16 +104.75.0.0/16 +104.75.169.0/24 +104.76.0.0/16 +104.76.18.0/24 +104.76.133.0/24 +104.77.0.0/16 +104.77.22.0/24 +104.79.0.0/16 +104.79.88.0/24 +104.80.0.0/16 +104.80.88.0/24 +104.81.0.0/16 +104.81.11.0/24 +104.82.0.0/16 +104.83.0.0/16 +104.84.0.0/16 +104.84.150.0/24 +104.85.0.0/16 +104.86.0.0/16 +104.86.110.0/24 +104.87.0.0/16 +104.89.0.0/16 +104.90.0.0/16 +104.90.49.0/24 +104.91.0.0/16 +104.92.0.0/16 +104.94.0.0/16 +104.95.0.0/16 +104.97.0.0/16 +104.98.0.0/16 +104.100.0.0/16 +104.101.0.0/16 +104.102.0.0/16 +104.103.0.0/16 +104.103.70.0/24 +104.104.0.0/16 +104.104.187.0/24 +104.105.0.0/16 +104.106.0.0/16 +104.107.0.0/16 +104.108.0.0/16 +104.109.0.0/16 +104.109.235.0/24 +104.110.0.0/16 +104.111.0.0/16 +104.111.200.0/24 +104.112.0.0/16 +104.113.0.0/16 +104.115.0.0/16 +104.115.118.0/24 +104.115.209.0/24 +104.116.0.0/16 +104.116.243.0/24 +104.117.0.0/16 +104.118.0.0/16 +104.118.6.0/24 +104.118.112.0/24 +104.119.0.0/16 +104.120.0.0/16 +104.121.0.0/16 +104.121.76.0/24 +104.122.0.0/16 +104.123.0.0/16 +104.124.0.0/16 +104.126.0.0/16 +104.127.0.0/16 +104.155.6.0/24 +104.155.7.0/24 +104.155.12.0/24 +104.155.23.0/24 +104.155.24.0/24 +104.155.28.0/24 +104.155.31.0/24 +104.155.36.0/24 +104.155.37.0/24 +104.155.41.0/24 +104.155.64.0/24 +104.155.75.0/24 +104.155.77.0/24 +104.155.86.0/24 +104.155.97.0/24 +104.155.102.0/24 +104.155.116.0/24 +104.155.119.0/24 +104.155.120.0/24 +104.155.123.0/24 +104.155.125.0/24 +104.199.1.0/24 +104.199.11.0/24 +104.199.12.0/24 +104.199.14.0/24 +104.199.17.0/24 +104.199.23.0/24 +104.199.26.0/24 +104.199.35.0/24 +104.199.36.0/24 +104.199.38.0/24 +104.199.66.0/24 +104.199.75.0/24 +104.199.76.0/24 +104.199.86.0/24 +104.199.92.0/24 +104.199.95.0/24 +104.199.104.0/24 +104.199.107.0/24 +104.208.80.0/24 +104.208.96.0/24 +104.214.128.0/24 +104.215.0.0/16 +106.10.36.136/32 +106.10.39.82/32 +106.10.40.0/24 +106.10.41.0/24 +106.10.42.0/24 +106.10.43.0/24 +106.10.44.0/24 +106.10.46.0/24 +106.10.48.0/21 +106.10.49.0/24 +106.15.0.0/16 +107.20.0.0/14 +107.20.0.0/16 +110.45.0.0/16 +111.221.64.0/24 +111.221.69.0/24 +112.121.79.0/24 +115.29.141.0/24 +115.223.0.0/16 +117.103.0.0/16 +117.103.182.0/24 +118.155.0.0/16 +118.155.230.0/24 +118.214.0.0/16 +118.215.0.0/16 +119.28.149.0/24 +119.28.150.0/24 +119.28.156.0/24 +119.28.160.0/24 +119.28.163.0/24 +119.28.226.0/24 +119.42.60.0/24 +119.81.0.0/16 +119.81.39.0/24 +119.81.69.0/24 +119.81.76.0/24 +119.81.82.0/24 +119.81.171.0/24 +119.81.227.0/24 +121.78.55.0/24 +121.156.0.0/16 +121.169.159.0/24 +122.248.192.0/18 +122.248.192.0/24 +122.252.0.0/16 +125.56.0.0/16 +125.56.200.0/24 +125.56.201.0/24 +125.56.227.0/24 +125.252.0.0/16 +128.241.0.0/16 +128.241.91.0/24 +130.211.49.0/24 +130.211.52.0/24 +130.211.56.0/24 +130.211.61.0/24 +130.211.98.0/24 +130.211.99.0/24 +130.211.101.0/24 +130.211.102.0/24 +130.211.104.0/24 +130.211.111.0/24 +134.170.192.0/24 +137.116.160.0/24 +138.91.16.0/24 +139.175.0.0/16 +139.175.87.0/24 +140.174.11.0/24 +141.0.0.0/4 +141.0.168.0/24 +143.204.0.0/16 +145.239.8.0/24 +146.66.0.0/16 +146.66.152.0/24 +146.148.6.0/24 +146.148.10.0/24 +146.148.14.0/24 +146.148.28.0/24 +146.148.31.0/24 +146.148.121.0/24 +146.148.127.0/24 +149.202.197.0/24 +152.199.0.0/16 +152.199.38.120/32 +153.254.0.0/16 +153.254.86.0/24 +155.133.0.0/16 +155.133.227.0/24 +155.133.229.0/24 +155.133.230.0/24 +155.133.238.0/24 +155.133.242.0/24 +155.133.245.0/24 +155.133.248.0/24 +155.133.254.0/24 +161.202.0.0/16 +161.202.47.0/24 +161.202.52.0/24 +161.202.61.0/24 +161.202.101.0/24 +162.14.18.74/32 +162.14.18.124/32 +162.254.0.0/16 +162.254.193.0/24 +162.254.195.0/24 +162.254.196.0/24 +162.254.197.0/24 +165.254.0.0/16 +165.254.12.0/24 +165.254.26.0/24 +165.254.105.0/24 +165.254.134.0/24 +165.254.146.0/24 +165.254.238.0/24 +165.254.247.0/24 +168.63.128.0/24 +168.63.128.96/32 +168.63.128.128/32 +168.63.129.0/24 +168.63.129.80/32 +168.63.129.96/32 +168.63.129.128/32 +168.63.130.0/24 +168.63.132.0/24 +168.63.136.0/24 +168.63.144.0/24 +168.63.192.0/24 +169.51.50.0/24 +169.51.51.0/24 +169.56.0.0/16 +169.56.1.0/24 +169.56.2.0/24 +169.56.3.0/24 +169.56.4.0/24 +169.56.5.0/24 +169.56.6.0/24 +169.56.7.0/24 +169.56.8.0/24 +169.56.9.0/24 +169.56.10.0/24 +169.56.11.0/24 +169.56.12.0/24 +169.56.13.0/24 +169.56.14.0/24 +169.56.15.0/24 +169.56.16.0/24 +169.56.17.0/24 +169.56.18.0/24 +169.56.19.0/24 +169.56.20.0/24 +169.56.21.0/24 +169.56.22.0/24 +169.56.23.0/24 +169.56.24.0/24 +169.56.25.0/24 +169.56.26.0/24 +169.56.27.0/24 +169.56.28.0/24 +169.56.29.0/24 +169.56.30.0/24 +169.56.31.0/24 +169.56.32.0/24 +169.56.33.0/24 +169.56.34.0/24 +169.56.35.0/24 +169.56.36.0/24 +169.56.37.0/24 +169.56.38.0/24 +169.56.39.0/24 +169.56.40.0/24 +169.56.41.0/24 +169.56.42.0/24 +169.56.43.0/24 +169.56.44.0/24 +169.56.45.0/24 +169.56.46.0/24 +169.56.47.0/24 +169.56.48.0/24 +169.56.49.0/24 +169.56.50.0/24 +169.56.51.0/24 +169.56.52.0/24 +169.56.53.0/24 +169.56.54.0/24 +169.56.55.0/24 +169.56.56.0/24 +169.56.57.0/24 +169.56.58.0/24 +169.56.59.0/24 +169.56.60.0/24 +169.56.61.0/24 +169.56.62.0/24 +169.56.63.0/24 +169.56.64.0/24 +169.56.65.0/24 +169.56.66.0/24 +169.56.67.0/24 +169.56.68.0/24 +169.56.69.0/24 +169.56.70.0/24 +169.56.71.0/24 +169.56.72.0/24 +169.56.73.0/24 +169.56.74.0/24 +169.56.75.0/24 +169.56.76.0/24 +169.56.77.0/24 +169.56.78.0/24 +169.56.79.0/24 +169.56.80.0/24 +169.56.81.0/24 +169.56.82.0/24 +169.56.83.0/24 +169.56.84.0/24 +169.56.85.0/24 +169.56.86.0/24 +169.56.87.0/24 +169.56.88.0/24 +169.56.89.0/24 +169.56.90.0/24 +169.56.91.0/24 +169.56.92.0/24 +169.56.93.0/24 +169.56.94.0/24 +169.56.95.0/24 +169.56.96.0/24 +169.56.97.0/24 +169.56.98.0/24 +169.56.99.0/24 +169.56.100.0/24 +169.56.101.0/24 +169.56.102.0/24 +169.56.103.0/24 +169.56.104.0/24 +169.56.105.0/24 +169.56.106.0/24 +169.56.107.0/24 +169.56.108.0/24 +169.56.109.0/24 +169.56.110.0/24 +169.56.111.0/24 +169.56.112.0/24 +169.56.113.0/24 +169.56.114.0/24 +169.56.115.0/24 +169.56.116.0/24 +169.56.117.0/24 +169.56.118.0/24 +169.56.119.0/24 +169.56.120.0/24 +169.56.121.0/24 +169.56.122.0/24 +169.56.123.0/24 +169.56.124.0/24 +169.56.125.0/24 +169.56.126.0/24 +169.56.127.0/24 +169.56.160.0/24 +169.56.161.0/24 +169.56.162.0/24 +169.56.163.0/24 +169.56.164.0/24 +169.56.165.0/24 +169.56.166.0/24 +169.56.167.0/24 +169.56.168.0/24 +169.56.169.0/24 +169.56.170.0/24 +169.56.171.0/24 +169.56.172.0/24 +169.56.173.0/24 +169.56.174.0/24 +169.56.175.0/24 +169.56.176.0/24 +169.56.177.0/24 +169.56.178.0/24 +169.56.179.0/24 +169.56.180.0/24 +169.56.181.0/24 +169.56.182.0/24 +169.56.183.0/24 +169.56.184.0/24 +169.56.185.0/24 +169.56.186.0/24 +169.56.187.0/24 +169.56.188.0/24 +169.56.189.0/24 +169.56.190.0/24 +169.56.191.0/24 +172.0.0.0/4 +172.96.97.0/24 +172.96.98.0/24 +172.224.0.0/16 +172.226.0.0/16 +172.227.0.0/16 +172.228.0.0/16 +172.229.0.0/16 +172.230.0.0/16 +172.231.0.0/16 +172.255.224.0/24 +172.255.226.0/24 +172.255.227.0/24 +172.255.229.0/24 +173.0.0.0/4 +173.197.0.0/16 +173.197.192.0/24 +173.205.0.0/16 +173.205.6.0/24 +173.205.14.0/24 +173.222.0.0/16 +173.222.108.0/24 +173.223.0.0/16 +173.252.0.0/16 +174.36.0.0/16 +174.36.196.242/32 +174.69.172.0/24 +174.129.0.0/16 +175.41.128.0/18 +175.41.128.0/24 +175.41.192.0/24 +175.99.0.0/16 +175.139.0.0/16 +176.32.64.0/24 +176.32.96.0/24 +176.32.104.0/24 +176.32.120.0/24 +176.34.0.0/16 +176.34.32.0/24 +176.34.64.0/24 +176.34.128.0/24 +177.71.128.0/24 +177.72.240.0/24 +178.236.0.0/16 +182.50.136.0/24 +182.162.0.0/16 +182.162.106.0/24 +184.0.0.0/4 +184.24.0.0/16 +184.25.0.0/16 +184.25.56.0/23 +184.25.56.0/24 +184.25.205.0/24 +184.26.0.0/16 +184.26.114.0/24 +184.29.0.0/16 +184.29.59.0/24 +184.30.0.0/16 +184.30.226.0/24 +184.31.0.0/16 +184.50.0.0/16 +184.50.87.0/24 +184.51.0.0/16 +184.51.1.0/24 +184.51.15.0/24 +184.51.198.0/24 +184.51.200.0/24 +184.72.64.0/18 +184.72.64.0/24 +184.72.128.0/17 +184.72.128.0/24 +184.73.0.0/16 +184.84.0.0/16 +184.85.0.0/16 +184.85.120.0/24 +184.87.0.0/16 +185.25.0.0/16 +185.25.180.0/24 +185.27.0.0/16 +185.27.16.0/24 +185.48.120.0/24 +185.80.220.0/24 +185.80.221.0/24 +185.88.0.0/16 +185.88.181.0/24 +185.143.16.0/24 +185.225.208.0/24 +188.42.39.0/24 +188.42.40.0/24 +188.42.41.0/24 +188.42.42.0/24 +188.42.172.0/24 +188.42.174.0/24 +188.93.59.0/24 +191.233.32.0/24 +191.234.2.16/32 +191.234.2.64/32 +191.234.2.128/32 +191.234.3.0/24 +191.234.16.0/24 +191.237.236.0/24 +191.237.238.0/24 +191.237.238.32/32 +191.237.238.64/32 +191.237.238.112/32 +191.238.68.0/24 +191.238.80.0/24 +191.238.88.0/24 +191.238.92.0/24 +191.239.96.0/24 +192.81.0.0/16 +192.81.222.0/24 +192.204.26.0/24 +197.165.7.0/24 +198.41.0.0/16 +198.87.0.0/16 +198.87.188.0/24 +198.172.0.0/16 +198.172.88.0/24 +199.0.0.0/4 +199.239.0.0/16 +199.239.182.0/24 +203.69.0.0/16 +203.69.81.0/24 +203.83.220.0/24 +203.195.120.0/24 +204.1.136.0/24 +204.236.192.0/18 +204.236.192.0/24 +204.246.164.0/22 +204.246.168.0/22 +204.246.172.0/23 +204.246.174.0/23 +204.246.176.0/20 +205.168.236.0/24 +205.186.0.0/16 +205.197.0.0/16 +205.197.140.0/24 +205.251.192.0/19 +205.251.215.0/24 +205.251.224.0/24 +205.251.240.0/24 +205.251.244.0/24 +205.251.247.0/24 +205.251.248.0/24 +205.251.249.0/24 +205.251.250.0/23 +205.251.252.0/23 +205.251.254.0/24 +207.46.87.0/24 +207.46.89.16/32 +207.46.95.48/32 +207.46.128.0/24 +207.109.221.0/24 +207.171.160.0/24 +207.171.176.0/24 +208.0.0.0/4 +208.64.0.0/16 +208.64.201.0/24 +208.78.0.0/16 +208.78.164.0/24 +208.185.115.0/24 +209.133.57.0/24 +209.170.0.0/16 +209.170.97.0/24 +210.61.0.0/16 +210.61.248.0/24 +210.201.0.0/16 +210.201.31.0/24 +211.43.13.0/24 +216.3.0.0/16 +216.3.133.0/24 +216.137.32.0/19 +216.137.61.0/24 +216.156.0.0/16 +216.156.211.0/24 +216.182.224.0/21 +216.182.224.0/24 +216.182.232.0/22 +216.182.238.0/23 +223.119.0.0/16 +223.119.50.0/24 \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/etc/openclash/game_rules/Steam.rules b/package/ctcgfw/luci-app-openclash/files/etc/openclash/game_rules/Steam.rules new file mode 100644 index 0000000000..417e71919e --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/etc/openclash/game_rules/Steam.rules @@ -0,0 +1,949 @@ +#Steam,Steam-社区(Beta),0,0,1,0,0,0,By-FQrabbit +2.16.4.0/24 +2.16.10.0/24 +2.16.17.0/24 +2.16.21.0/24 +2.16.39.0/24 +2.16.59.0/24 +2.16.82.0/24 +2.16.95.0/24 +2.16.104.0/23 +2.16.111.0/24 +2.17.55.0/24 +2.17.98.0/24 +2.17.191.0/24 +2.18.119.0/24 +2.18.152.0/24 +2.18.199.0/24 +2.19.131.0/24 +2.19.147.0/24 +2.19.225.0/24 +2.20.57.0/24 +2.20.166.0/24 +2.20.177.0/24 +2.20.200.0/24 +2.20.214.0/24 +2.21.31.0/24 +2.21.46.0/24 +2.21.75.0/24 +2.21.131.0/24 +2.21.145.0/24 +2.21.150.0/24 +2.21.195.0/24 +2.21.205.0/24 +2.21.248.0/24 +2.22.13.0/24 +2.22.15.0/24 +2.22.36.0/24 +2.22.69.0/24 +2.22.73.0/24 +2.22.74.0/23 +2.22.146.0/24 +2.23.151.0/24 +2.23.181.0/24 +8.7.198.0/24 +14.21.78.0/24 +23.0.7.0/24 +23.0.21.0/24 +23.0.83.0/24 +23.0.146.0/24 +23.0.168.0/24 +23.0.178.0/24 +23.0.232.0/24 +23.0.252.0/24 +23.1.15.0/24 +23.1.26.0/24 +23.1.45.0/24 +23.1.227.0/24 +23.2.8.0/24 +23.2.11.0/24 +23.2.16.0/24 +23.2.18.0/24 +23.2.29.0/24 +23.2.42.0/24 +23.2.59.0/24 +23.2.92.0/24 +23.2.204.0/24 +23.2.206.0/24 +23.3.244.0/24 +23.4.168.0/24 +23.4.251.0/24 +23.5.114.0/24 +23.5.117.0/24 +23.5.156.0/24 +23.5.170.0/24 +23.5.241.0/24 +23.5.242.0/24 +23.7.39.0/24 +23.7.80.0/24 +23.7.128.0/24 +23.7.199.0/24 +23.7.246.0/24 +23.8.12.0/24 +23.8.117.0/24 +23.8.229.0/24 +23.9.9.0/24 +23.9.154.0/24 +23.10.0.0/16 +23.11.202.0/24 +23.11.204.0/24 +23.11.225.0/24 +23.11.236.0/24 +23.12.34.0/24 +23.12.109.0/24 +23.12.227.0/24 +23.12.229.0/24 +23.13.147.0/24 +23.14.6.0/24 +23.14.10.0/24 +23.14.68.0/24 +23.14.77.0/24 +23.14.85.0/24 +23.14.222.0/24 +23.14.229.0/24 +23.15.4.0/24 +23.15.81.0/24 +23.15.91.0/24 +23.15.94.0/24 +23.15.98.0/23 +23.15.184.0/24 +23.15.187.0/24 +23.15.224.0/24 +23.32.17.0/24 +23.32.86.0/24 +23.32.113.0/24 +23.32.131.0/24 +23.32.163.0/24 +23.32.215.0/24 +23.32.216.0/24 +23.32.248.0/24 +23.32.254.0/24 +23.33.75.0/24 +23.33.88.0/24 +23.33.112.0/24 +23.33.168.0/24 +23.33.255.0/24 +23.34.60.0/24 +23.34.65.0/24 +23.34.75.0/24 +23.35.225.0/24 +23.35.230.0/24 +23.36.26.0/24 +23.36.105.0/24 +23.36.141.0/24 +23.36.148.0/24 +23.36.165.0/24 +23.36.216.0/24 +23.36.220.0/24 +23.36.230.0/23 +23.37.53.0/24 +23.37.58.0/24 +23.37.67.0/24 +23.37.147.0/24 +23.37.148.0/24 +23.37.237.0/24 +23.37.239.0/24 +23.37.242.0/23 +23.37.249.0/24 +23.37.250.0/24 +23.38.3.0/24 +23.38.77.0/24 +23.38.109.0/24 +23.38.153.0/24 +23.38.155.0/24 +23.38.166.0/24 +23.39.136.0/24 +23.40.1.0/24 +23.40.4.0/24 +23.40.31.0/24 +23.40.247.0/24 +23.41.5.0/24 +23.41.59.0/24 +23.41.102.0/24 +23.41.132.0/24 +23.41.149.0/24 +23.41.165.0/24 +23.41.243.0/24 +23.42.6.0/24 +23.42.69.0/24 +23.42.83.0/24 +23.42.165.0/24 +23.42.212.0/24 +23.42.232.0/24 +23.42.248.0/24 +23.43.0.0/16 +23.44.193.0/24 +23.45.96.0/24 +23.45.201.0/24 +23.46.18.0/24 +23.46.24.0/24 +23.46.104.0/24 +23.46.241.0/24 +23.47.0.0/16 +23.48.4.0/24 +23.48.219.0/24 +23.49.4.0/24 +23.49.119.0/24 +23.49.135.0/24 +23.49.148.0/24 +23.49.224.0/24 +23.50.18.0/24 +23.50.37.0/24 +23.50.43.0/24 +23.50.69.0/24 +23.50.168.0/24 +23.51.39.0/24 +23.51.122.0/24 +23.51.131.0/24 +23.51.134.0/23 +23.51.154.0/24 +23.51.240.0/24 +23.51.246.0/24 +23.52.37.0/24 +23.52.51.0/24 +23.52.74.0/24 +23.52.82.0/24 +23.52.86.0/24 +23.53.33.0/24 +23.53.73.0/24 +23.53.195.0/24 +23.54.176.0/24 +23.54.179.0/24 +23.54.199.0/24 +23.54.247.0/24 +23.54.248.0/24 +23.54.250.0/24 +23.55.48.0/24 +23.55.53.0/24 +23.55.60.0/24 +23.55.139.0/24 +23.55.235.0/24 +23.56.115.0/24 +23.56.208.0/24 +23.57.32.0/24 +23.57.64.0/23 +23.57.230.0/24 +23.57.251.0/24 +23.58.0.0/24 +23.58.27.0/24 +23.58.36.0/24 +23.58.41.0/24 +23.58.75.0/24 +23.58.80.0/24 +23.58.154.0/24 +23.59.57.0/24 +23.59.96.0/24 +23.59.117.0/24 +23.60.41.0/24 +23.60.48.0/24 +23.60.123.0/24 +23.60.131.0/24 +23.61.10.0/24 +23.61.74.0/24 +23.61.161.0/24 +23.62.53.0/24 +23.62.102.0/24 +23.62.109.0/24 +23.62.145.0/24 +23.62.152.0/24 +23.63.11.0/24 +23.63.22.0/24 +23.63.32.0/24 +23.63.219.0/24 +23.63.228.0/24 +23.64.22.0/24 +23.64.34.0/24 +23.64.37.0/24 +23.64.38.0/24 +23.64.127.0/24 +23.64.158.0/24 +23.64.178.0/24 +23.65.80.0/24 +23.65.190.0/24 +23.65.225.0/24 +23.66.0.0/16 +23.67.65.0/24 +23.67.67.0/24 +23.67.69.0/24 +23.67.72.0/24 +23.67.76.0/24 +23.67.130.0/24 +23.67.161.0/24 +23.67.200.0/24 +23.67.204.0/24 +23.67.217.0/24 +23.72.20.0/24 +23.72.36.0/24 +23.72.58.0/24 +23.72.80.0/24 +23.72.92.0/24 +23.72.138.0/24 +23.72.156.0/24 +23.72.226.0/24 +23.72.250.0/24 +23.73.29.0/24 +23.73.77.0/24 +23.73.85.0/24 +23.73.137.0/24 +23.73.139.0/24 +23.73.144.0/24 +23.73.153.0/24 +23.73.168.0/24 +23.73.170.0/24 +23.73.199.0/24 +23.73.206.0/24 +23.74.15.0/24 +23.74.17.0/24 +23.74.57.0/24 +23.74.60.0/24 +23.74.138.0/24 +23.74.162.0/24 +23.74.170.0/24 +23.74.237.0/24 +23.75.12.0/24 +23.75.14.0/24 +23.75.30.0/24 +23.75.186.0/24 +23.75.210.0/24 +23.75.212.0/24 +23.75.216.0/23 +23.76.253.0/24 +23.77.32.0/24 +23.77.202.0/24 +23.77.208.0/24 +23.77.214.0/24 +23.78.23.0/24 +23.78.39.0/24 +23.78.54.0/24 +23.78.86.0/24 +23.78.117.0/24 +23.78.168.0/24 +23.79.15.0/24 +23.79.19.0/24 +23.79.68.0/24 +23.192.26.0/24 +23.192.38.0/24 +23.192.114.0/24 +23.192.116.0/24 +23.192.126.0/24 +23.192.168.0/24 +23.192.245.0/24 +23.193.64.0/24 +23.193.162.0/24 +23.193.168.0/24 +23.193.171.0/24 +23.193.175.0/24 +23.194.66.0/24 +23.194.88.0/24 +23.194.212.0/24 +23.194.216.0/24 +23.196.4.0/24 +23.196.56.0/24 +23.196.199.0/24 +23.196.214.0/24 +23.196.244.0/24 +23.197.49.0/24 +23.198.97.0/24 +23.198.108.0/24 +23.198.121.0/24 +23.198.213.0/24 +23.198.214.0/24 +23.199.7.0/24 +23.199.10.0/24 +23.199.67.0/24 +23.199.134.0/24 +23.199.138.0/24 +23.199.149.0/24 +23.199.152.0/24 +23.199.154.0/24 +23.199.207.0/24 +23.199.232.0/24 +23.199.234.0/24 +23.199.242.0/24 +23.199.248.0/24 +23.200.18.0/24 +23.200.26.0/24 +23.200.94.0/24 +23.200.103.0/24 +23.200.140.0/24 +23.201.23.0/24 +23.201.41.0/24 +23.201.103.0/24 +23.201.254.0/24 +23.202.39.0/24 +23.202.69.0/24 +23.202.70.0/24 +23.202.83.0/24 +23.202.117.0/24 +23.202.124.0/24 +23.202.128.0/24 +23.202.139.0/24 +23.202.143.0/24 +23.203.26.0/23 +23.203.50.0/24 +23.203.52.0/24 +23.203.62.0/24 +23.203.84.0/24 +23.203.132.0/24 +23.203.255.0/24 +23.204.36.0/24 +23.204.104.0/23 +23.204.148.0/24 +23.204.239.0/24 +23.205.26.0/24 +23.205.35.0/24 +23.205.132.0/24 +23.205.140.0/24 +23.205.226.0/24 +23.206.10.0/24 +23.206.13.0/24 +23.206.35.0/24 +23.206.51.0/24 +23.206.66.0/24 +23.206.90.0/24 +23.206.95.0/24 +23.206.112.0/24 +23.206.126.0/24 +23.206.169.0/24 +23.206.192.0/24 +23.206.197.0/24 +23.206.198.0/24 +23.206.211.0/24 +23.206.239.0/24 +23.206.246.0/24 +23.207.179.0/24 +23.208.28.0/24 +23.208.34.0/24 +23.208.36.0/24 +23.208.102.0/24 +23.208.123.0/24 +23.208.136.0/24 +23.208.138.0/24 +23.208.215.0/24 +23.208.228.0/24 +23.208.235.0/24 +23.209.75.0/24 +23.209.184.0/24 +23.210.0.0/24 +23.210.3.0/24 +23.210.203.0/24 +23.211.16.0/24 +23.211.40.0/24 +23.211.56.0/24 +23.211.106.0/24 +23.211.140.0/24 +23.211.150.0/24 +23.211.152.0/24 +23.212.53.0/24 +23.212.110.0/24 +23.212.141.0/24 +23.212.171.0/24 +23.213.53.0/24 +23.213.55.0/24 +23.213.138.0/24 +23.213.158.0/24 +23.213.176.0/24 +23.214.27.0/24 +23.214.43.0/24 +23.214.51.0/24 +23.214.66.0/24 +23.214.74.0/24 +23.214.102.0/23 +23.214.116.0/24 +23.214.165.0/24 +23.214.172.0/24 +23.215.0.0/24 +23.215.52.0/24 +23.215.57.0/24 +23.215.105.0/24 +23.215.130.0/24 +23.216.8.0/24 +23.216.202.0/24 +23.217.43.0/24 +23.217.106.0/24 +23.217.143.0/24 +23.217.226.0/24 +23.218.40.0/24 +23.218.144.0/24 +23.218.158.0/24 +23.218.215.0/24 +23.219.212.0/24 +23.220.38.0/24 +23.220.46.0/24 +23.220.181.0/24 +23.220.195.0/24 +23.220.206.0/24 +23.221.3.0/24 +23.221.17.0/24 +23.221.45.0/24 +23.221.46.0/24 +23.221.66.0/24 +23.221.154.0/24 +23.222.27.0/24 +23.222.61.0/24 +23.222.132.0/24 +23.222.161.0/24 +23.222.172.0/24 +23.222.195.0/24 +23.223.65.0/24 +23.223.75.0/24 +23.223.99.0/24 +31.13.0.0/16 +37.10.124.0/24 +45.121.186.0/24 +46.82.0.0/16 +59.24.0.0/16 +60.254.131.0/24 +60.254.171.0/24 +61.213.168.0/24 +63.146.69.0/24 +63.219.254.0/24 +63.243.244.0/24 +64.13.0.0/16 +65.158.114.0/24 +66.220.0.0/16 +67.15.0.0/16 +67.131.44.0/24 +67.228.0.0/16 +69.16.175.0/24 +69.63.0.0/16 +69.171.0.0/16 +69.192.12.0/24 +69.192.44.0/24 +72.165.61.0/24 +72.246.62.0/24 +72.246.91.0/24 +72.246.106.0/24 +72.246.167.0/24 +72.246.169.0/24 +72.246.174.0/24 +72.246.189.0/24 +72.246.190.0/24 +72.246.224.0/24 +72.247.90.0/24 +72.247.192.0/23 +72.247.198.0/24 +74.86.0.0/16 +74.201.99.0/24 +75.126.0.0/16 +78.16.49.0/24 +84.53.134.0/24 +85.190.158.0/24 +88.191.0.0/16 +88.221.34.0/24 +88.221.37.0/24 +88.221.71.0/24 +88.221.99.0/24 +88.221.172.0/24 +88.221.175.0/24 +88.221.195.0/24 +88.221.198.0/23 +92.122.5.0/24 +92.122.254.0/24 +92.123.123.0/24 +92.123.176.0/24 +92.123.208.0/24 +95.100.3.0/24 +95.100.60.0/24 +95.100.97.0/24 +95.100.142.0/24 +95.101.30.0/24 +95.101.51.0/24 +95.101.166.0/24 +95.101.199.0/24 +95.101.241.0/24 +95.101.247.0/24 +96.6.89.0/24 +96.6.161.0/24 +96.7.0.0/16 +96.16.160.0/24 +96.16.184.0/24 +96.16.186.0/24 +96.16.221.0/24 +96.17.38.0/24 +96.17.109.0/24 +96.17.210.0/24 +103.28.54.0/24 +103.74.6.0/24 +104.65.15.0/24 +104.66.5.0/24 +104.66.7.0/24 +104.66.36.0/24 +104.66.44.0/24 +104.66.140.0/24 +104.67.26.0/24 +104.67.37.0/24 +104.67.57.0/24 +104.67.152.0/24 +104.68.176.0/24 +104.68.183.0/24 +104.68.189.0/24 +104.69.0.0/16 +104.70.69.0/24 +104.70.154.0/24 +104.70.200.0/24 +104.70.204.0/24 +104.70.207.0/24 +104.71.138.0/24 +104.71.152.0/24 +104.71.213.0/24 +104.72.60.0/24 +104.72.63.0/24 +104.72.154.0/24 +104.72.156.0/24 +104.73.12.0/24 +104.74.0.0/16 +104.75.37.0/24 +104.75.57.0/24 +104.75.65.0/24 +104.75.228.0/24 +104.76.18.0/24 +104.76.58.0/24 +104.76.65.0/24 +104.76.88.0/24 +104.76.111.0/24 +104.76.114.0/24 +104.76.133.0/24 +104.77.22.0/24 +104.78.0.0/16 +104.79.88.0/24 +104.79.128.0/24 +104.79.153.0/24 +104.80.3.0/24 +104.80.29.0/24 +104.80.37.0/24 +104.80.53.0/24 +104.80.59.0/24 +104.80.64.0/24 +104.80.66.0/24 +104.80.88.0/24 +104.81.11.0/24 +104.81.23.0/24 +104.81.120.0/24 +104.81.126.0/24 +104.81.137.0/24 +104.81.141.0/24 +104.81.244.0/23 +104.82.83.0/24 +104.82.89.0/24 +104.82.180.0/23 +104.82.245.0/24 +104.82.247.0/24 +104.83.70.0/24 +104.83.83.0/24 +104.83.89.0/24 +104.83.100.0/24 +104.83.102.0/24 +104.84.154.0/24 +104.84.169.0/24 +104.84.187.0/24 +104.85.41.0/24 +104.85.50.0/24 +104.85.52.0/23 +104.85.172.0/24 +104.85.174.0/24 +104.86.44.0/23 +104.86.110.0/24 +104.86.250.0/24 +104.87.39.0/24 +104.87.102.0/24 +104.87.227.0/24 +104.87.228.0/24 +104.88.0.0/16 +104.89.8.0/24 +104.89.18.0/24 +104.89.38.0/23 +104.89.40.0/24 +104.89.143.0/24 +104.90.20.0/24 +104.90.24.0/24 +104.90.44.0/24 +104.90.49.0/24 +104.90.96.0/24 +104.90.100.0/24 +104.90.104.0/24 +104.90.140.0/24 +104.90.143.0/24 +104.90.180.0/24 +104.91.170.0/24 +104.91.217.0/24 +104.91.233.0/24 +104.92.6.0/24 +104.92.80.0/24 +104.92.90.0/24 +104.92.102.0/24 +104.92.123.0/24 +104.92.136.0/24 +104.92.153.0/24 +104.93.0.0/16 +104.94.2.0/24 +104.94.8.0/24 +104.94.18.0/24 +104.94.110.0/24 +104.94.173.0/24 +104.94.204.0/24 +104.95.20.0/24 +104.95.24.0/24 +104.95.59.0/24 +104.95.98.0/24 +104.95.110.0/24 +104.95.119.0/24 +104.95.197.0/24 +104.95.227.0/24 +104.96.0.0/16 +104.97.66.0/24 +104.97.113.0/24 +104.97.226.0/24 +104.97.228.0/24 +104.98.0.0/15 +104.100.51.0/24 +104.100.52.0/24 +104.100.187.0/24 +104.101.203.0/24 +104.102.10.0/24 +104.102.56.0/24 +104.103.52.0/24 +104.103.58.0/24 +104.103.70.0/24 +104.103.106.0/24 +104.103.157.0/24 +104.104.162.0/24 +104.104.187.0/24 +104.105.7.0/24 +104.105.10.0/24 +104.105.28.0/24 +104.105.58.0/24 +104.105.148.0/24 +104.105.153.0/24 +104.106.200.0/24 +104.106.236.0/24 +104.107.7.0/24 +104.107.52.0/23 +104.107.108.0/24 +104.107.168.0/23 +104.107.248.0/24 +104.108.46.0/24 +104.108.52.0/24 +104.108.69.0/24 +104.109.55.0/24 +104.109.66.0/24 +104.109.82.0/24 +104.109.130.0/24 +104.109.139.0/24 +104.109.142.0/24 +104.109.160.0/24 +104.109.208.0/24 +104.109.235.0/24 +104.110.104.0/24 +104.111.200.0/24 +104.111.247.0/24 +104.112.150.0/24 +104.112.238.0/24 +104.113.52.0/24 +104.113.62.0/24 +104.113.115.0/24 +104.115.83.0/24 +104.115.92.0/24 +104.115.97.0/24 +104.115.118.0/24 +104.115.125.0/24 +104.115.175.0/24 +104.115.209.0/24 +104.115.227.0/24 +104.115.233.0/24 +104.115.253.0/24 +104.116.0.0/24 +104.116.18.0/24 +104.116.70.0/24 +104.116.130.0/24 +104.116.145.0/24 +104.116.217.0/24 +104.116.243.0/24 +104.116.246.0/24 +104.116.251.0/24 +104.117.0.0/24 +104.117.65.0/24 +104.117.95.0/24 +104.117.105.0/24 +104.117.140.0/24 +104.118.6.0/24 +104.118.28.0/24 +104.118.96.0/24 +104.118.103.0/24 +104.118.112.0/24 +104.119.40.0/24 +104.119.181.0/24 +104.120.78.0/24 +104.120.86.0/24 +104.120.92.0/24 +104.120.143.0/24 +104.120.178.0/24 +104.120.219.0/24 +104.121.21.0/24 +104.121.70.0/24 +104.121.122.0/24 +104.121.226.0/24 +104.121.232.0/24 +104.121.249.0/24 +104.122.2.0/24 +104.122.10.0/24 +104.122.102.0/24 +104.122.198.0/24 +104.122.203.0/24 +104.122.220.0/24 +104.122.255.0/24 +104.123.122.0/24 +104.124.27.0/24 +104.124.49.0/24 +104.124.119.0/24 +104.124.134.0/24 +104.124.139.0/24 +104.124.182.0/24 +104.124.211.0/24 +104.124.228.0/24 +104.125.0.0/16 +104.126.21.0/24 +104.126.83.0/24 +104.127.43.0/24 +104.127.62.0/24 +104.127.119.0/24 +104.127.221.0/24 +106.15.109.0/24 +110.45.200.0/24 +115.223.23.0/24 +117.103.182.0/24 +118.155.230.0/24 +118.214.82.0/24 +118.214.249.0/24 +118.215.92.0/24 +118.215.97.0/24 +118.215.176.0/24 +121.156.60.0/24 +122.252.43.0/24 +125.56.227.0/24 +125.252.235.0/24 +128.241.91.0/24 +139.175.87.0/24 +141.0.168.0/24 +146.66.152.0/24 +152.199.38.0/24 +153.254.86.0/24 +155.133.227.0/24 +155.133.229.0/24 +155.133.230.0/24 +155.133.238.0/24 +155.133.242.0/24 +155.133.254.0/24 +162.254.193.0/24 +162.254.195.0/24 +162.254.196.0/23 +165.254.12.0/24 +165.254.105.0/24 +165.254.134.0/24 +172.16.0.0/16 +172.19.83.0/24 +172.224.1.0/24 +172.224.11.0/24 +172.226.72.0/24 +172.226.220.0/24 +172.227.13.0/24 +172.227.150.0/24 +172.227.171.0/24 +172.228.232.0/24 +172.229.58.0/24 +172.230.102.0/24 +172.230.106.0/24 +172.230.108.0/24 +172.230.172.0/24 +172.231.9.0/24 +173.197.192.0/24 +173.205.6.0/24 +173.222.1.0/24 +173.222.43.0/24 +173.222.193.0/24 +173.222.225.0/24 +173.222.237.0/24 +173.223.81.0/24 +173.223.87.0/24 +173.223.164.0/24 +173.252.0.0/16 +174.36.0.0/15 +175.99.100.0/24 +175.99.115.0/24 +175.139.142.0/24 +182.162.106.0/24 +184.24.26.0/24 +184.24.104.0/24 +184.24.110.0/24 +184.24.155.0/24 +184.24.195.0/24 +184.24.223.0/24 +184.25.19.0/24 +184.25.56.0/24 +184.25.61.0/24 +184.25.91.0/24 +184.25.146.0/24 +184.25.158.0/24 +184.25.205.0/24 +184.25.221.0/24 +184.25.243.0/24 +184.25.248.0/24 +184.25.252.0/23 +184.26.22.0/24 +184.26.84.0/24 +184.26.114.0/24 +184.26.120.0/24 +184.26.140.0/23 +184.26.221.0/24 +184.27.0.0/16 +184.28.0.0/16 +184.29.37.0/24 +184.29.59.0/24 +184.29.108.0/24 +184.29.150.0/24 +184.30.6.0/24 +184.30.19.0/24 +184.30.20.0/24 +184.30.226.0/24 +184.31.201.0/24 +184.50.2.0/24 +184.50.87.0/24 +184.50.163.0/24 +184.51.0.0/24 +184.51.15.0/24 +184.51.17.0/24 +184.51.56.0/24 +184.51.141.0/24 +184.84.56.0/24 +184.84.168.0/24 +184.85.67.0/24 +184.85.120.0/24 +184.85.244.0/24 +184.86.0.0/16 +184.87.14.0/24 +184.87.121.0/24 +184.87.197.0/24 +185.25.180.0/24 +185.27.16.0/24 +185.88.181.0/24 +192.81.222.0/24 +198.172.88.0/24 +199.16.0.0/16 +199.59.0.0/16 +199.239.182.0/24 +203.69.81.0/24 +205.186.152.0/24 +208.43.0.0/16 +208.64.201.0/24 +208.78.164.0/24 +208.101.0.0/16 +209.170.97.0/24 +210.61.248.0/24 +210.201.31.0/24 +216.3.133.0/24 +216.156.211.0/24 +223.119.157.0/24 +223.119.206.0/24 +223.119.217.0/24 +224.0.0.0/4 +243.185.187.0/24 diff --git a/package/ctcgfw/luci-app-openclash/files/etc/openclash/lhie1.yaml b/package/ctcgfw/luci-app-openclash/files/etc/openclash/lhie1.yaml new file mode 100644 index 0000000000..7f5758b939 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/etc/openclash/lhie1.yaml @@ -0,0 +1,9765 @@ +Rule: +##updated +##source:lhie1 +# Ads in Video apps + +# > iqiyi & pps +- DOMAIN-SUFFIX,a.ckm.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,ad.m.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,afp.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,androidgo.duapp.com,AdBlock +- DOMAIN-SUFFIX,api.cupid.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,api.cupid.qiyi.com,AdBlock +- DOMAIN-SUFFIX,c.uaa.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,cloudpush.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,cm.passport.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,count.game.pps.tv,AdBlock +- DOMAIN-SUFFIX,cupid.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,emoticon.sns.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,game.pps.tv,AdBlock +- DOMAIN-SUFFIX,gamecenter.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,ifacelog.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,mbdlog.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,msg.71.am,AdBlock +- DOMAIN-SUFFIX,msg.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,msg.video.qiyi.com,AdBlock +- DOMAIN-SUFFIX,msg2.video.qiyi.com,AdBlock +- DOMAIN-SUFFIX,msga.71.am,AdBlock +- DOMAIN-SUFFIX,msga.cupid.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,nl.notice.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,nl.rcd.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,notice.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,noxagile.duapp.com,AdBlock +- DOMAIN-SUFFIX,paopao.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,policy.video.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,qosp.msg.71.am,AdBlock +- DOMAIN-SUFFIX,static.g.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,static.g.ppstream.com,AdBlock +- DOMAIN-SUFFIX,store.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,t7z.cupid.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,tracker.sns.iqiyi.com,AdBlock +- DOMAIN-SUFFIX,yuedu.iqiyi.com,AdBlock +- IP-CIDR,101.227.97.240/32,AdBlock +- IP-CIDR,101.227.200.11/32,AdBlock +- IP-CIDR,101.227.200.28/32,AdBlock +- IP-CIDR,124.192.153.42/32,AdBlock + +# > Youku & Tudou +- DOMAIN-SUFFIX,actives.youku.com,AdBlock +- DOMAIN-SUFFIX,ad.api.3g.tudou.com,AdBlock +- DOMAIN-SUFFIX,ad.api.3g.youku.com,AdBlock +- DOMAIN-SUFFIX,ad.api.mobile.youku.com,AdBlock +- DOMAIN-SUFFIX,ad.mobile.youku.com,AdBlock +- DOMAIN-SUFFIX,a-dxk.play.api.3g.youku.com,AdBlock +- DOMAIN-SUFFIX,b.smartvideo.youku.com,AdBlock +- DOMAIN-SUFFIX,c.yes.youku.com,AdBlock +- DOMAIN-SUFFIX,das.api.youku.com,AdBlock +- DOMAIN-SUFFIX,das.mobile.youku.com,AdBlock +- DOMAIN-SUFFIX,dev-push.m.youku.com,AdBlock +- DOMAIN-SUFFIX,dl.g.youku.com,AdBlock +- DOMAIN-SUFFIX,dmapp.youku.com,AdBlock +- DOMAIN-SUFFIX,gamex.mobile.youku.com,AdBlock +- DOMAIN-SUFFIX,hudong.pl.youku.com,AdBlock +- DOMAIN-SUFFIX,huodong.pl.youku.com,AdBlock +- DOMAIN-SUFFIX,huodong.vip.youku.com,AdBlock +- DOMAIN-SUFFIX,hz.youku.com,AdBlock +- DOMAIN-SUFFIX,iyes.youku.com,AdBlock +- DOMAIN-SUFFIX,l.ykimg.com,AdBlock +- DOMAIN-SUFFIX,lstat.youku.com,AdBlock +- DOMAIN-SUFFIX,m.yes.youku.com,AdBlock +- DOMAIN-SUFFIX,mobilemsg.youku.com,AdBlock +- DOMAIN-SUFFIX,msg.youku.com,AdBlock +- DOMAIN-SUFFIX,myes.youku.com,AdBlock +- DOMAIN-SUFFIX,p.l.youku.com,AdBlock +- DOMAIN-SUFFIX,passport-log.youku.com,AdBlock +- DOMAIN-SUFFIX,p-log.ykimg.com,AdBlock +- DOMAIN-SUFFIX,push.m.youku.com,AdBlock +- DOMAIN-SUFFIX,r.l.youku.com,AdBlock +- DOMAIN-SUFFIX,s.p.youku.com,AdBlock +- DOMAIN-SUFFIX,sdk.api.gamex.mobile.youku.com,AdBlock +- DOMAIN-SUFFIX,sdk.m.youku.com,AdBlock +- DOMAIN-SUFFIX,stat.youku.com,AdBlock +- DOMAIN-SUFFIX,store.tv.api.3g.youku.com,AdBlock +- DOMAIN-SUFFIX,store.xl.api.3g.youku.com,AdBlock +- DOMAIN-SUFFIX,tdrec.youku.com,AdBlock +- DOMAIN-SUFFIX,test.ott.youku.com,AdBlock +- DOMAIN-SUFFIX,urchin.lstat.youku.com,AdBlock +- DOMAIN-SUFFIX,v.l.youku.com,AdBlock +- DOMAIN-SUFFIX,val.api.youku.com,AdBlock +- DOMAIN-SUFFIX,wan.youku.com,AdBlock +- DOMAIN-SUFFIX,ykatr.youku.com,AdBlock +- DOMAIN-SUFFIX,ykrec.youku.com,AdBlock +- IP-CIDR,117.177.248.17/32,AdBlock +- IP-CIDR,117.177.248.41/32,AdBlock +- IP-CIDR,223.87.176.139/32,AdBlock +- IP-CIDR,223.87.176.176/32,AdBlock +- IP-CIDR,223.87.177.180/32,AdBlock +- IP-CIDR,223.87.177.182/32,AdBlock +- IP-CIDR,223.87.177.184/32,AdBlock +- IP-CIDR,223.87.177.43/32,AdBlock +- IP-CIDR,223.87.177.47/32,AdBlock +- IP-CIDR,223.87.177.80/32,AdBlock +- IP-CIDR,223.87.182.101/32,AdBlock +- IP-CIDR,223.87.182.102/32,AdBlock +- IP-CIDR,223.87.182.11/32,AdBlock +- IP-CIDR,223.87.182.52/32,AdBlock + +# > MGTV +- DOMAIN-SUFFIX,ads-api.videojj.com,AdBlock +- DOMAIN-SUFFIX,cdn.cmop.mgtv.com,AdBlock +- DOMAIN-SUFFIX,click.hunantv.com,AdBlock +- DOMAIN-SUFFIX,cmop.mgtv.com,AdBlock +- DOMAIN-SUFFIX,cytron.videojj.com,AdBlock +- DOMAIN-SUFFIX,cytroncdn.videojj.com,AdBlock +- DOMAIN-SUFFIX,da.hunantv.com,AdBlock +- DOMAIN-SUFFIX,da.mgtv.com,AdBlock +- DOMAIN-SUFFIX,imgaliyun.da.mgtv.com,AdBlock +- DOMAIN-SUFFIX,imgaliyun.res.mgtv.com,AdBlock +- DOMAIN-SUFFIX,m2.da.mgtv.com,AdBlock +- DOMAIN-SUFFIX,me.videojj.com,AdBlock +- DOMAIN-SUFFIX,mobaliyun.res.mgtv.com,AdBlock +- DOMAIN-SUFFIX,mobile.da.mgtv.com,AdBlock +- DOMAIN-SUFFIX,mobile2.da.mgtv.com,AdBlock +- DOMAIN-SUFFIX,mp4.res.hunantv.com,AdBlock +- DOMAIN-SUFFIX,pc.da.mgtv.com,AdBlock +- DOMAIN-SUFFIX,pc1.da.mgtv.com,AdBlock +- DOMAIN-SUFFIX,pcvideoaliyun.titan.mgtv.com,AdBlock +- DOMAIN-SUFFIX,pcvideoyd.titan.mgtv.com,AdBlock +- DOMAIN-SUFFIX,pcweb.v1.mgtv.com,AdBlock +- DOMAIN-SUFFIX,plat.videojj.com,AdBlock +- DOMAIN-SUFFIX,py.da.mgtv.com,AdBlock +- DOMAIN-SUFFIX,res.hunantv.com,AdBlock +- DOMAIN-SUFFIX,store.videojj.com,AdBlock +- DOMAIN-SUFFIX,v2.da.mgtv.com,AdBlock +- DOMAIN-SUFFIX,va.videojj.com,AdBlock +- DOMAIN-SUFFIX,videojj.com,AdBlock +- DOMAIN-SUFFIX,web.da.mgtv.com,AdBlock +- DOMAIN-SUFFIX,x.da.hunantv.com,AdBlock +- DOMAIN-SUFFIX,x.da.mgtv.com,AdBlock +- DOMAIN-SUFFIX,x1.da.hunantv.com,AdBlock +- DOMAIN-SUFFIX,y.da.hunantv.com,AdBlock +- DOMAIN-SUFFIX,y.da.mgtv.com,AdBlock + +# > Letv +- DOMAIN-SUFFIX,1.letvlive.com,AdBlock +- DOMAIN-SUFFIX,2.letvlive.com,AdBlock +- DOMAIN-SUFFIX,ads1.lfengmobile.com,AdBlock +- DOMAIN-SUFFIX,api.game.letvstore.com,AdBlock +- DOMAIN-SUFFIX,api.push.le.com,AdBlock +- DOMAIN-SUFFIX,ark.letv.com,AdBlock +- DOMAIN-SUFFIX,cdn.zampdsp.com,AdBlock +- DOMAIN-SUFFIX,cm.fancyapi.com,AdBlock +- DOMAIN-SUFFIX,cn.api.push.le.com,AdBlock +- DOMAIN-SUFFIX,dc.letv.com,AdBlock +- DOMAIN-SUFFIX,fz.letv.com,AdBlock +- DOMAIN-SUFFIX,g3.letv.com,AdBlock +- DOMAIN-SUFFIX,minisite.letv.com,AdBlock +- DOMAIN-SUFFIX,msg.m.letv.com,AdBlock +- DOMAIN-SUFFIX,n.mark.letv.com,AdBlock +- DOMAIN-SUFFIX,pro.hoye.letv.com,AdBlock +- DOMAIN-SUFFIX,pro.letv.com,AdBlock +- DOMAIN-SUFFIX,s.zampdsp.com,AdBlock +- DOMAIN-SUFFIX,stat.letv.com,AdBlock +- DOMAIN-SUFFIX,static.app.m.letv.com,AdBlock +- DOMAIN-SUFFIX,webp2p.letv.com,AdBlock +- DOMAIN-SUFFIX,zamplus.com,AdBlock + +# > Youtube +- DOMAIN-SUFFIX,azabu-u.ac.jp,AdBlock +- DOMAIN-SUFFIX,couchcoaster.jp,AdBlock +- DOMAIN-SUFFIX,delivery.dmkt-sp.jp,AdBlock +- DOMAIN-SUFFIX,ehg-youtube.hitbox.com,AdBlock +- DOMAIN-SUFFIX,m-78.jp,AdBlock +- DOMAIN-SUFFIX,nichibenren.or.jp,AdBlock +- DOMAIN-SUFFIX,nicorette.co.kr,AdBlock + +# > Sohu +- DOMAIN-SUFFIX,adnet.sohu.com,AdBlock +- DOMAIN-SUFFIX,aty.sohu.com,AdBlock +- DOMAIN-SUFFIX,data.vod.itc.cn,AdBlock +- DOMAIN-SUFFIX,epro.sogou.com,AdBlock +- DOMAIN-SUFFIX,go.sohu.com,AdBlock +- DOMAIN-SUFFIX,golden1.sogou.com,AdBlock +- DOMAIN-SUFFIX,imp.optaim.com,AdBlock +- DOMAIN-SUFFIX,inte.sogou.com,AdBlock +- DOMAIN-SUFFIX,inte.sogoucdn.com,AdBlock +- DOMAIN-SUFFIX,lu.sogoucdn.com,AdBlock +- DOMAIN-SUFFIX,theta.sogoucdn.com,AdBlock +- DOMAIN-SUFFIX,uranus.sogou.com,AdBlock + +# > PPTV +- DOMAIN-SUFFIX,afp.pplive.com,AdBlock +- DOMAIN-SUFFIX,app.aplus.pptv.com,AdBlock +- DOMAIN-SUFFIX,as.aplus.pptv.com,AdBlock +- DOMAIN-SUFFIX,asimgs.pplive.cn,AdBlock +- DOMAIN-SUFFIX,de.as.pptv.com,AdBlock +- DOMAIN-SUFFIX,jp.as.pptv.com,AdBlock +- DOMAIN-SUFFIX,pp2.pptv.com,AdBlock +- DOMAIN-SUFFIX,stat.pptv.com,AdBlock +- DOMAIN-SUFFIX,static.g.pptv.com,AdBlock + +# > Site +- DOMAIN-SUFFIX,deliver.ifeng.com,AdBlock +- DOMAIN-SUFFIX,hxjs.tool.hexun.com,AdBlock +- DOMAIN-SUFFIX,hxsame.hexun.com,AdBlock +- DOMAIN-SUFFIX,itv.hexun.com,AdBlock +- DOMAIN-SUFFIX,utrack.hexun.com,AdBlock + +# > Vod +- DOMAIN-SUFFIX,ad.cmvideo.cn,AdBlock +- DOMAIN-SUFFIX,atm.cp31.ott.cibntv.net,AdBlock +- DOMAIN-SUFFIX,aty.cp45.ott.cibntv.net,AdBlock +- DOMAIN-SUFFIX,cpm.cm.kankan.com,AdBlock +- DOMAIN-SUFFIX,float.kankan.com,AdBlock +- DOMAIN-SUFFIX,houyi.baofeng.net,AdBlock +- DOMAIN-SUFFIX,iadctest.qwapi.com,AdBlock + +# > Other +- DOMAIN-SUFFIX,ad.video.51togic.com,AdBlock +- DOMAIN-SUFFIX,biz5.kankan.com,AdBlock +- DOMAIN-SUFFIX,c.algovid.com,AdBlock +- DOMAIN-SUFFIX,cms.laifeng.com,AdBlock +- DOMAIN-SUFFIX,da.mmarket.com,AdBlock +- DOMAIN-SUFFIX,dotcounter.douyutv.com,AdBlock +- DOMAIN-SUFFIX,g.uusee.com,AdBlock +- DOMAIN-SUFFIX,gcdn.2mdn.net,AdBlock +- DOMAIN-SUFFIX,gentags.net,AdBlock +- DOMAIN-SUFFIX,gg.jtertp.com,AdBlock +- DOMAIN-SUFFIX,gug.ku6cdn.com,AdBlock +- DOMAIN-SUFFIX,hp.smiler-ad.com,AdBlock +- DOMAIN-SUFFIX,kooyum.com,AdBlock +- DOMAIN-SUFFIX,ld.kuaigames.com,AdBlock +- DOMAIN-SUFFIX,logstat.t.sfht.com,AdBlock +- DOMAIN-SUFFIX,match.rtbidder.net,AdBlock +- DOMAIN-SUFFIX,mixer.cupid.ptqy.gitv.tv,AdBlock +- DOMAIN-SUFFIX,msg.c002.ottcn.com,AdBlock +- DOMAIN-SUFFIX,msga.ptqy.gitv.tv,AdBlock +- DOMAIN-SUFFIX,njwxh.com,AdBlock +- DOMAIN-SUFFIX,nl.rcd.ptqy.gitv.tv,AdBlock +- DOMAIN-SUFFIX,n-st.vip.com,AdBlock +- DOMAIN-SUFFIX,pb.bi.gitv.tv,AdBlock +- DOMAIN-SUFFIX,pop.uusee.com,AdBlock +- DOMAIN-SUFFIX,rd.kuaigames.com,AdBlock +- DOMAIN-SUFFIX,shizen-no-megumi.com,AdBlock +- DOMAIN-SUFFIX,shrek.6.cn,AdBlock +- DOMAIN-SUFFIX,simba.6.cn,AdBlock +- DOMAIN-SUFFIX,st.vq.ku6.cn,AdBlock +- DOMAIN-SUFFIX,statcounter.com,AdBlock +- DOMAIN-SUFFIX,static.duoshuo.com,AdBlock +- DOMAIN-SUFFIX,static.ku6.com,AdBlock +- DOMAIN-SUFFIX,static8.pmadx.com,AdBlock +- DOMAIN-SUFFIX,store.ptqy.gitv.tv,AdBlock +- DOMAIN-SUFFIX,t7z.cupid.ptqy.gitv.tv,AdBlock +- DOMAIN-SUFFIX,traffic.uusee.com,AdBlock +- DOMAIN-SUFFIX,union.6.cn,AdBlock +- DOMAIN-SUFFIX,wa.gtimg.com,AdBlock +- DOMAIN-SUFFIX,bfshan.cn,AdBlock + + + +# REJECT + +# > Client +- DOMAIN-KEYWORD,admaster,AdBlock +- DOMAIN-KEYWORD,admdfs,AdBlock +- DOMAIN-KEYWORD,adnewnc,AdBlock +- DOMAIN-KEYWORD,adsage,AdBlock +- DOMAIN-KEYWORD,adsame,AdBlock +- DOMAIN-KEYWORD,adsensor,AdBlock +- DOMAIN-KEYWORD,adserver,AdBlock +- DOMAIN-KEYWORD,adservice,AdBlock +- DOMAIN-KEYWORD,adsmogo,AdBlock +- DOMAIN-KEYWORD,adsrvmedia,AdBlock +- DOMAIN-KEYWORD,adsserving,AdBlock +- DOMAIN-KEYWORD,adsystem,AdBlock +- DOMAIN-KEYWORD,advert,AdBlock +- DOMAIN-KEYWORD,adwords,AdBlock +- DOMAIN-KEYWORD,allyes,AdBlock +- DOMAIN-KEYWORD,analysis,AdBlock +- DOMAIN-KEYWORD,analysys,AdBlock +- DOMAIN-KEYWORD,applovin,AdBlock +- DOMAIN-KEYWORD,appsflyer,AdBlock +- DOMAIN-KEYWORD,dnserror,AdBlock +- DOMAIN-KEYWORD,domob,AdBlock +- DOMAIN-KEYWORD,duomeng,AdBlock +- DOMAIN-KEYWORD,dwtrack,AdBlock +- DOMAIN-KEYWORD,fenxi,AdBlock +- DOMAIN-KEYWORD,googleads,AdBlock +- DOMAIN-KEYWORD,guanggao,AdBlock +- DOMAIN-KEYWORD,inmobi,AdBlock +- DOMAIN-KEYWORD,lianmeng,AdBlock +- DOMAIN-KEYWORD,mobaders,AdBlock +- DOMAIN-KEYWORD,omgmta,AdBlock +- DOMAIN-KEYWORD,omniture,AdBlock +- DOMAIN-KEYWORD,openx,AdBlock +- DOMAIN-KEYWORD,partnerad,AdBlock +- DOMAIN-KEYWORD,securepubads,AdBlock +- DOMAIN-KEYWORD,socdm,AdBlock +- DOMAIN-KEYWORD,supersonicads,AdBlock +- DOMAIN-KEYWORD,taboola,AdBlock +- DOMAIN-KEYWORD,uedas,AdBlock +- DOMAIN-KEYWORD,umtrack,AdBlock +- DOMAIN-KEYWORD,uploadMobileData,AdBlock +- DOMAIN-KEYWORD,wlmonitor,AdBlock +- DOMAIN-KEYWORD,zjtoolbar,AdBlock + +- DOMAIN-SUFFIX,0.r.msn.com,AdBlock +- DOMAIN-SUFFIX,000dn.com,AdBlock +- DOMAIN-SUFFIX,001union.com,AdBlock +- DOMAIN-SUFFIX,0086555.com,AdBlock +- DOMAIN-SUFFIX,00880808.com,AdBlock +- DOMAIN-SUFFIX,00oo00.com,AdBlock +- DOMAIN-SUFFIX,01.gxso.net,AdBlock +- DOMAIN-SUFFIX,010teacher.com,AdBlock +- DOMAIN-SUFFIX,010xk.com,AdBlock +- DOMAIN-SUFFIX,018520.com,AdBlock +- DOMAIN-SUFFIX,01daa.lubih.com,AdBlock +- DOMAIN-SUFFIX,01daa.lutci.com,AdBlock +- DOMAIN-SUFFIX,01daa.lutgh.com,AdBlock +- DOMAIN-SUFFIX,01daa.luvbr.com,AdBlock +- DOMAIN-SUFFIX,01daa.luytr.com,AdBlock +- DOMAIN-SUFFIX,022aifang.com,AdBlock +- DOMAIN-SUFFIX,023hysj.com,AdBlock +- DOMAIN-SUFFIX,025suyu.com,AdBlock +- DOMAIN-SUFFIX,0313413.com,AdBlock +- DOMAIN-SUFFIX,0451106.com,AdBlock +- DOMAIN-SUFFIX,0531kt.com,AdBlock +- DOMAIN-SUFFIX,0592weixin.com,AdBlock +- DOMAIN-SUFFIX,0594003.com,AdBlock +- DOMAIN-SUFFIX,06362.com,AdBlock +- DOMAIN-SUFFIX,0756sjlm.com.cn,AdBlock +- DOMAIN-SUFFIX,09_19.supfree.net,AdBlock +- DOMAIN-SUFFIX,0aqpqdju.me,AdBlock +- DOMAIN-SUFFIX,0x01e7.website,AdBlock +- DOMAIN-SUFFIX,0xxd.com,AdBlock +- DOMAIN-SUFFIX,1.1010pic.com,AdBlock +- DOMAIN-SUFFIX,1.201980.com,AdBlock +- DOMAIN-SUFFIX,1.21shebao.com,AdBlock +- DOMAIN-SUFFIX,1.51sxue.cn,AdBlock +- DOMAIN-SUFFIX,1.aili.com,AdBlock +- DOMAIN-SUFFIX,1.bashenghuo.com,AdBlock +- DOMAIN-SUFFIX,1.chcx.cn,AdBlock +- DOMAIN-SUFFIX,1.cjcp.cn,AdBlock +- DOMAIN-SUFFIX,1.codesdq.com,AdBlock +- DOMAIN-SUFFIX,1.feihua.com,AdBlock +- DOMAIN-SUFFIX,1.glook.cn,AdBlock +- DOMAIN-SUFFIX,1.hao123.com,AdBlock +- DOMAIN-SUFFIX,1.hnyouneng.com,AdBlock +- DOMAIN-SUFFIX,1.hslyqs.com,AdBlock +- DOMAIN-SUFFIX,1.i1766.com,AdBlock +- DOMAIN-SUFFIX,1.iqeq.com.cn,AdBlock +- DOMAIN-SUFFIX,1.jeasyui.net,AdBlock +- DOMAIN-SUFFIX,1.mgff.com,AdBlock +- DOMAIN-SUFFIX,1.nanrenwo.net,AdBlock +- DOMAIN-SUFFIX,1.panduoduo.net,AdBlock +- DOMAIN-SUFFIX,1.qtmojo.cn,AdBlock +- DOMAIN-SUFFIX,1.rengshu.com,AdBlock +- DOMAIN-SUFFIX,1.soufy.cn,AdBlock +- DOMAIN-SUFFIX,1.tulaoshi.com,AdBlock +- DOMAIN-SUFFIX,1.tuxi.com.cn,AdBlock +- DOMAIN-SUFFIX,1.win7china.com,AdBlock +- DOMAIN-SUFFIX,1.win7sky.com,AdBlock +- DOMAIN-SUFFIX,1.wps.cn,AdBlock +- DOMAIN-SUFFIX,1.xiaopin5.com,AdBlock +- DOMAIN-SUFFIX,1.xiaozhizhijia.com,AdBlock +- DOMAIN-SUFFIX,1.xilu.com,AdBlock +- DOMAIN-SUFFIX,1.zw3e.com,AdBlock +- DOMAIN-SUFFIX,1000dy.com,AdBlock +- DOMAIN-SUFFIX,10086.cn.baidu.cdn.yiwk.com,AdBlock +- DOMAIN-SUFFIX,100fenlm.com,AdBlock +- DOMAIN-SUFFIX,1017.cn,AdBlock +- DOMAIN-SUFFIX,10up.com,AdBlock +- DOMAIN-SUFFIX,11.hydcd.com,AdBlock +- DOMAIN-SUFFIX,111111qb.com,AdBlock +- DOMAIN-SUFFIX,111cn.net,AdBlock +- DOMAIN-SUFFIX,1133.cc,AdBlock +- DOMAIN-SUFFIX,114la.com,AdBlock +- DOMAIN-SUFFIX,1178.shucong.com,AdBlock +- DOMAIN-SUFFIX,11g.yiqig.cn,AdBlock +- DOMAIN-SUFFIX,1224.dxsbb.com,AdBlock +- DOMAIN-SUFFIX,123.sogou.com,AdBlock +- DOMAIN-SUFFIX,12306media.com,AdBlock +- DOMAIN-SUFFIX,1234xm.com,AdBlock +- DOMAIN-SUFFIX,12365chia.com,AdBlock +- DOMAIN-SUFFIX,123hala.com,AdBlock +- DOMAIN-SUFFIX,123juzi.net,AdBlock +- DOMAIN-SUFFIX,13023.url.7wkw.com,AdBlock +- DOMAIN-SUFFIX,138138138.top,AdBlock +- DOMAIN-SUFFIX,142904.com,AdBlock +- DOMAIN-SUFFIX,144.dragonparking.com,AdBlock +- DOMAIN-SUFFIX,1495039.com,AdBlock +- DOMAIN-SUFFIX,163.wrating.com,AdBlock +- DOMAIN-SUFFIX,163ren.com,AdBlock +- DOMAIN-SUFFIX,168.it168.com,AdBlock +- DOMAIN-SUFFIX,1680go.com,AdBlock +- DOMAIN-SUFFIX,168ad.cc,AdBlock +- DOMAIN-SUFFIX,170yy.com,AdBlock +- DOMAIN-SUFFIX,175bar.com,AdBlock +- DOMAIN-SUFFIX,176um.com,AdBlock +- DOMAIN-SUFFIX,178gg.com,AdBlock +- DOMAIN-SUFFIX,17gouwuba.com,AdBlock +- DOMAIN-SUFFIX,17leyi.com,AdBlock +- DOMAIN-SUFFIX,17un.co,AdBlock +- DOMAIN-SUFFIX,17un.com,AdBlock +- DOMAIN-SUFFIX,17zhaole.com,AdBlock +- DOMAIN-SUFFIX,189zj.cn,AdBlock +- DOMAIN-SUFFIX,18av.mm-cg.co,AdBlock +- DOMAIN-SUFFIX,18dusun.com,AdBlock +- DOMAIN-SUFFIX,18tzx.com,AdBlock +- DOMAIN-SUFFIX,1933000.com,AdBlock +- DOMAIN-SUFFIX,1d1px.net,AdBlock +- DOMAIN-SUFFIX,1e2hyl3b.wq42211.com,AdBlock +- DOMAIN-SUFFIX,1i580.com,AdBlock +- DOMAIN-SUFFIX,1kmb.cn,AdBlock +- DOMAIN-SUFFIX,1kxun.mobi,AdBlock +- DOMAIN-SUFFIX,1kzh.com,AdBlock +- DOMAIN-SUFFIX,1l1.cc,AdBlock +- DOMAIN-SUFFIX,1lib.cn,AdBlock +- DOMAIN-SUFFIX,1o26.com,AdBlock +- DOMAIN-SUFFIX,1qwe3r.com,AdBlock +- DOMAIN-SUFFIX,1tlm.cn,AdBlock +- DOMAIN-SUFFIX,1uandun.com,AdBlock +- DOMAIN-SUFFIX,1x3x.com,AdBlock +- DOMAIN-SUFFIX,2.1010pic.com,AdBlock +- DOMAIN-SUFFIX,2.21shebao.com,AdBlock +- DOMAIN-SUFFIX,2.5aigushi.com,AdBlock +- DOMAIN-SUFFIX,2.aili.com,AdBlock +- DOMAIN-SUFFIX,2.bashenghuo.com,AdBlock +- DOMAIN-SUFFIX,2.heiyange.com,AdBlock +- DOMAIN-SUFFIX,2.mobixs.cn,AdBlock +- DOMAIN-SUFFIX,2.nanrenwo.net,AdBlock +- DOMAIN-SUFFIX,2.rengshu.com,AdBlock +- DOMAIN-SUFFIX,2.tuxi.com.cn,AdBlock +- DOMAIN-SUFFIX,201071.com,AdBlock +- DOMAIN-SUFFIX,2012.8684.com,AdBlock +- DOMAIN-SUFFIX,2012ui.com,AdBlock +- DOMAIN-SUFFIX,20150930.cf,AdBlock +- DOMAIN-SUFFIX,2016.sina.cn,AdBlock +- DOMAIN-SUFFIX,2016bobo.cf,AdBlock +- DOMAIN-SUFFIX,2017img.myxh999.com,AdBlock +- DOMAIN-SUFFIX,202m.com,AdBlock +- DOMAIN-SUFFIX,203710.com,AdBlock +- DOMAIN-SUFFIX,2144.cn,AdBlock +- DOMAIN-SUFFIX,21union.com,AdBlock +- DOMAIN-SUFFIX,22.qingsongbar.com,AdBlock +- DOMAIN-SUFFIX,22222jsc.com,AdBlock +- DOMAIN-SUFFIX,222627.com,AdBlock +- DOMAIN-SUFFIX,22lm.cc,AdBlock +- DOMAIN-SUFFIX,233wo.com,AdBlock +- DOMAIN-SUFFIX,2345.cn,AdBlock +- DOMAIN-SUFFIX,2345api.dftoutiao.com,AdBlock +- DOMAIN-SUFFIX,2345apicode.dftoutiao.com,AdBlock +- DOMAIN-SUFFIX,2345at.com,AdBlock +- DOMAIN-SUFFIX,235123.net,AdBlock +- DOMAIN-SUFFIX,24haitao.net,AdBlock +- DOMAIN-SUFFIX,256ppp.com,AdBlock +- DOMAIN-SUFFIX,268mob.cn,AdBlock +- DOMAIN-SUFFIX,272829.cc,AdBlock +- DOMAIN-SUFFIX,272xb.com,AdBlock +- DOMAIN-SUFFIX,285680.com,AdBlock +- DOMAIN-SUFFIX,28acglz.com,AdBlock +- DOMAIN-SUFFIX,2a.com.cn,AdBlock +- DOMAIN-SUFFIX,2cnt.net,AdBlock +- DOMAIN-SUFFIX,2m2n.com,AdBlock +- DOMAIN-SUFFIX,2o7.net,AdBlock +- DOMAIN-SUFFIX,3.guidaye.com,AdBlock +- DOMAIN-SUFFIX,3.ssqzj.com,AdBlock +- DOMAIN-SUFFIX,30350f.com,AdBlock +- DOMAIN-SUFFIX,30407799.com,AdBlock +- DOMAIN-SUFFIX,30ampj.com,AdBlock +- DOMAIN-SUFFIX,31.media.tumblr.com,AdBlock +- DOMAIN-SUFFIX,312036.com,AdBlock +- DOMAIN-SUFFIX,3180555.com,AdBlock +- DOMAIN-SUFFIX,32414.com,AdBlock +- DOMAIN-SUFFIX,32666099.com,AdBlock +- DOMAIN-SUFFIX,33.autohome.com.cn,AdBlock +- DOMAIN-SUFFIX,33.pcpop.com,AdBlock +- DOMAIN-SUFFIX,33544444.com,AdBlock +- DOMAIN-SUFFIX,336.com,AdBlock +- DOMAIN-SUFFIX,3388pjdc.com,AdBlock +- DOMAIN-SUFFIX,339.cn,AdBlock +- DOMAIN-SUFFIX,3393.com,AdBlock +- DOMAIN-SUFFIX,33lm.cc,AdBlock +- DOMAIN-SUFFIX,33shangyou.com,AdBlock +- DOMAIN-SUFFIX,35baba.cn,AdBlock +- DOMAIN-SUFFIX,3600.com,AdBlock +- DOMAIN-SUFFIX,360640.com,AdBlock +- DOMAIN-SUFFIX,360baidus.com,AdBlock +- DOMAIN-SUFFIX,360jiaquan.com,AdBlock +- DOMAIN-SUFFIX,360safego.com,AdBlock +- DOMAIN-SUFFIX,360shopping.com.cn,AdBlock +- DOMAIN-SUFFIX,360vip.front99.com,AdBlock +- DOMAIN-SUFFIX,361315.cc,AdBlock +- DOMAIN-SUFFIX,365bibi.com,AdBlock +- DOMAIN-SUFFIX,365safego.com,AdBlock +- DOMAIN-SUFFIX,366safego.com,AdBlock +- DOMAIN-SUFFIX,36pn.com,AdBlock +- DOMAIN-SUFFIX,3721zh.com,AdBlock +- DOMAIN-SUFFIX,376zf.com,AdBlock +- DOMAIN-SUFFIX,37cs.com,AdBlock +- DOMAIN-SUFFIX,37mnm.com,AdBlock +- DOMAIN-SUFFIX,37pk49.com,AdBlock +- DOMAIN-SUFFIX,37see.com,AdBlock +- DOMAIN-SUFFIX,37wan.cn,AdBlock +- DOMAIN-SUFFIX,37wan.com,AdBlock +- DOMAIN-SUFFIX,3808010.com,AdBlock +- DOMAIN-SUFFIX,38330.bet,AdBlock +- DOMAIN-SUFFIX,3839168.com,AdBlock +- DOMAIN-SUFFIX,38499.com,AdBlock +- DOMAIN-SUFFIX,38c99.com,AdBlock +- DOMAIN-SUFFIX,39330.bet,AdBlock +- DOMAIN-SUFFIX,3975lm.com,AdBlock +- DOMAIN-SUFFIX,39xc.net,AdBlock +- DOMAIN-SUFFIX,3dm.huya.com,AdBlock +- DOMAIN-SUFFIX,3dns-2.adobe.com,AdBlock +- DOMAIN-SUFFIX,3dns-3.adobe.com,AdBlock +- DOMAIN-SUFFIX,3dwwwgame.com,AdBlock +- DOMAIN-SUFFIX,3g.990.net,AdBlock +- DOMAIN-SUFFIX,3gmimo.com,AdBlock +- DOMAIN-SUFFIX,3gmtr.com,AdBlock +- DOMAIN-SUFFIX,3htai.com,AdBlock +- DOMAIN-SUFFIX,3qmh.com,AdBlock +- DOMAIN-SUFFIX,3rd.t.sohu.com,AdBlock +- DOMAIN-SUFFIX,3wz6z.bchuangpi.cn,AdBlock +- DOMAIN-SUFFIX,3ygww.com,AdBlock +- DOMAIN-SUFFIX,4009997658.com,AdBlock +- DOMAIN-SUFFIX,404.safedog.cn,AdBlock +- DOMAIN-SUFFIX,4207008.com,AdBlock +- DOMAIN-SUFFIX,4242jj.com,AdBlock +- DOMAIN-SUFFIX,4242lll.com,AdBlock +- DOMAIN-SUFFIX,4242uuu.com,AdBlock +- DOMAIN-SUFFIX,4336wang.cn,AdBlock +- DOMAIN-SUFFIX,456juhd.com,AdBlock +- DOMAIN-SUFFIX,46sg.com,AdBlock +- DOMAIN-SUFFIX,49wanwan.com,AdBlock +- DOMAIN-SUFFIX,4ggww.com,AdBlock +- DOMAIN-SUFFIX,4paradigm.com,AdBlock +- DOMAIN-SUFFIX,4wad.com,AdBlock +- DOMAIN-SUFFIX,4xhyr.shuimujinggong.com,AdBlock +- DOMAIN-SUFFIX,504pk.com,AdBlock +- DOMAIN-SUFFIX,5066.net,AdBlock +- DOMAIN-SUFFIX,50bang.org,AdBlock +- DOMAIN-SUFFIX,51.la,AdBlock +- DOMAIN-SUFFIX,5125129.com,AdBlock +- DOMAIN-SUFFIX,513hch.com,AdBlock +- DOMAIN-SUFFIX,517m.cn,AdBlock +- DOMAIN-SUFFIX,518.sdinfo.net,AdBlock +- DOMAIN-SUFFIX,5188yy.com,AdBlock +- DOMAIN-SUFFIX,519397.com,AdBlock +- DOMAIN-SUFFIX,51ads.com,AdBlock +- DOMAIN-SUFFIX,51chumoping.com,AdBlock +- DOMAIN-SUFFIX,51dql.com,AdBlock +- DOMAIN-SUFFIX,51gxqm.com,AdBlock +- DOMAIN-SUFFIX,51jumintong.com,AdBlock +- DOMAIN-SUFFIX,51la.net,AdBlock +- DOMAIN-SUFFIX,51link.com,AdBlock +- DOMAIN-SUFFIX,51mld.cn,AdBlock +- DOMAIN-SUFFIX,51network.com,AdBlock +- DOMAIN-SUFFIX,51vipedu.com,AdBlock +- DOMAIN-SUFFIX,51weidashi.com,AdBlock +- DOMAIN-SUFFIX,51xumei.com,AdBlock +- DOMAIN-SUFFIX,51yes.com,AdBlock +- DOMAIN-SUFFIX,51zhanzhuang.cn,AdBlock +- DOMAIN-SUFFIX,5207470.com,AdBlock +- DOMAIN-SUFFIX,5269120.com,AdBlock +- DOMAIN-SUFFIX,526d.uunice.com,AdBlock +- DOMAIN-SUFFIX,526dimg.uunice.com,AdBlock +- DOMAIN-SUFFIX,5293.com,AdBlock +- DOMAIN-SUFFIX,52kmh.com,AdBlock +- DOMAIN-SUFFIX,52kmk.com,AdBlock +- DOMAIN-SUFFIX,52lubo.cn,AdBlock +- DOMAIN-SUFFIX,5345ll.com,AdBlock +- DOMAIN-SUFFIX,537901.com,AdBlock +- DOMAIN-SUFFIX,55.la,AdBlock +- DOMAIN-SUFFIX,555p555p.com,AdBlock +- DOMAIN-SUFFIX,559gp.com,AdBlock +- DOMAIN-SUFFIX,55lu.com,AdBlock +- DOMAIN-SUFFIX,5634.com,AdBlock +- DOMAIN-SUFFIX,5675146.com,AdBlock +- DOMAIN-SUFFIX,57.com.cn,AdBlock +- DOMAIN-SUFFIX,57union.com,AdBlock +- DOMAIN-SUFFIX,58.xgo.com.cn,AdBlock +- DOMAIN-SUFFIX,5814889.com,AdBlock +- DOMAIN-SUFFIX,5857.com,AdBlock +- DOMAIN-SUFFIX,588yw.com,AdBlock +- DOMAIN-SUFFIX,58lm.vip,AdBlock +- DOMAIN-SUFFIX,58mingri.cn,AdBlock +- DOMAIN-SUFFIX,58mingtian.cn,AdBlock +- DOMAIN-SUFFIX,592man.com,AdBlock +- DOMAIN-SUFFIX,5dg.me,AdBlock +- DOMAIN-SUFFIX,5dian.org,AdBlock +- DOMAIN-SUFFIX,5egk.com,AdBlock +- DOMAIN-SUFFIX,5imoney.com,AdBlock +- DOMAIN-SUFFIX,5jcom.com.cn,AdBlock +- DOMAIN-SUFFIX,5vz3cfs0yd.me,AdBlock +- DOMAIN-SUFFIX,5y9nfpes.52pk.com,AdBlock +- DOMAIN-SUFFIX,5yrra.deshuangwang.cn,AdBlock +- DOMAIN-SUFFIX,600ad.com,AdBlock +- DOMAIN-SUFFIX,601654.com,AdBlock +- DOMAIN-SUFFIX,60608787.com,AdBlock +- DOMAIN-SUFFIX,626uc.com,AdBlock +- DOMAIN-SUFFIX,644446.com,AdBlock +- DOMAIN-SUFFIX,649558.com,AdBlock +- DOMAIN-SUFFIX,64si.com,AdBlock +- DOMAIN-SUFFIX,654mmm.com,AdBlock +- DOMAIN-SUFFIX,6615338.cn,AdBlock +- DOMAIN-SUFFIX,6666349.com,AdBlock +- DOMAIN-SUFFIX,6669667.com,AdBlock +- DOMAIN-SUFFIX,66992949.com,AdBlock +- DOMAIN-SUFFIX,66san.com,AdBlock +- DOMAIN-SUFFIX,6711.com,AdBlock +- DOMAIN-SUFFIX,6728812.com,AdBlock +- DOMAIN-SUFFIX,685wo.com,AdBlock +- DOMAIN-SUFFIX,68665565.com,AdBlock +- DOMAIN-SUFFIX,69duk.com,AdBlock +- DOMAIN-SUFFIX,6a4cc.lubue.com,AdBlock +- DOMAIN-SUFFIX,6a4cc.luvbq.com,AdBlock +- DOMAIN-SUFFIX,6a4cc.luvbr.com,AdBlock +- DOMAIN-SUFFIX,6a4cc.luytr.com,AdBlock +- DOMAIN-SUFFIX,6boou.voluumtrk.com,AdBlock +- DOMAIN-SUFFIX,6d63d3.com,AdBlock +- DOMAIN-SUFFIX,6dad.com,AdBlock +- DOMAIN-SUFFIX,6dvip.com,AdBlock +- DOMAIN-SUFFIX,6huu.com,AdBlock +- DOMAIN-SUFFIX,6kwan.com,AdBlock +- DOMAIN-SUFFIX,6tsbe1zs.me,AdBlock +- DOMAIN-SUFFIX,700900.com,AdBlock +- DOMAIN-SUFFIX,706529.com,AdBlock +- DOMAIN-SUFFIX,7080555.com,AdBlock +- DOMAIN-SUFFIX,70e.com,AdBlock +- DOMAIN-SUFFIX,70lm.com,AdBlock +- DOMAIN-SUFFIX,711kk.com,AdBlock +- DOMAIN-SUFFIX,716703.com,AdBlock +- DOMAIN-SUFFIX,71sem.com,AdBlock +- DOMAIN-SUFFIX,73.sinawap.com,AdBlock +- DOMAIN-SUFFIX,743m1.11a12.com,AdBlock +- DOMAIN-SUFFIX,749558.com,AdBlock +- DOMAIN-SUFFIX,749808.com,AdBlock +- DOMAIN-SUFFIX,7540.com,AdBlock +- DOMAIN-SUFFIX,75to.com,AdBlock +- DOMAIN-SUFFIX,7631.com,AdBlock +- DOMAIN-SUFFIX,766ba.net,AdBlock +- DOMAIN-SUFFIX,76802.net,AdBlock +- DOMAIN-SUFFIX,77455.com,AdBlock +- DOMAIN-SUFFIX,778669.com,AdBlock +- DOMAIN-SUFFIX,7794.com,AdBlock +- DOMAIN-SUFFIX,77power.com,AdBlock +- DOMAIN-SUFFIX,77u.com,AdBlock +- DOMAIN-SUFFIX,77xtv.com,AdBlock +- DOMAIN-SUFFIX,7891655.cn,AdBlock +- DOMAIN-SUFFIX,7car.com.cn,AdBlock +- DOMAIN-SUFFIX,7clink.com,AdBlock +- DOMAIN-SUFFIX,7dah8.com,AdBlock +- DOMAIN-SUFFIX,7gg.cc,AdBlock +- DOMAIN-SUFFIX,7jiajiao.com,AdBlock +- DOMAIN-SUFFIX,7mad.7m.cn,AdBlock +- DOMAIN-SUFFIX,7pk.com,AdBlock +- DOMAIN-SUFFIX,7wen.cn,AdBlock +- DOMAIN-SUFFIX,7xz3.com,AdBlock +- DOMAIN-SUFFIX,7z66.com,AdBlock +- DOMAIN-SUFFIX,8.jrj.com,AdBlock +- DOMAIN-SUFFIX,801.tianyaui.com,AdBlock +- DOMAIN-SUFFIX,8066hg.com,AdBlock +- DOMAIN-SUFFIX,80sjw.com,AdBlock +- DOMAIN-SUFFIX,813690.top,AdBlock +- DOMAIN-SUFFIX,8184.cc,AdBlock +- DOMAIN-SUFFIX,818mov.com,AdBlock +- DOMAIN-SUFFIX,81c.cn,AdBlock +- DOMAIN-SUFFIX,8269996.com,AdBlock +- DOMAIN-SUFFIX,8368661.com,AdBlock +- DOMAIN-SUFFIX,846.move7.com,AdBlock +- DOMAIN-SUFFIX,849558.com,AdBlock +- DOMAIN-SUFFIX,85058s.com,AdBlock +- DOMAIN-SUFFIX,8521448.com,AdBlock +- DOMAIN-SUFFIX,85655095.com,AdBlock +- DOMAIN-SUFFIX,859377.com,AdBlock +- DOMAIN-SUFFIX,85tgw.com,AdBlock +- DOMAIN-SUFFIX,86.cc,AdBlock +- DOMAIN-SUFFIX,860010.com,AdBlock +- DOMAIN-SUFFIX,86kx.com,AdBlock +- DOMAIN-SUFFIX,878090.com,AdBlock +- DOMAIN-SUFFIX,8800271.com.cn,AdBlock +- DOMAIN-SUFFIX,88210212.com,AdBlock +- DOMAIN-SUFFIX,8866786.com,AdBlock +- DOMAIN-SUFFIX,888.izhufu.net,AdBlock +- DOMAIN-SUFFIX,888.jiuwanwang.com,AdBlock +- DOMAIN-SUFFIX,888.tv.sohu.com,AdBlock +- DOMAIN-SUFFIX,88818122.cn,AdBlock +- DOMAIN-SUFFIX,888zr022.com,AdBlock +- DOMAIN-SUFFIX,88cncc.com,AdBlock +- DOMAIN-SUFFIX,88rpg.net,AdBlock +- DOMAIN-SUFFIX,88shu.cn,AdBlock +- DOMAIN-SUFFIX,892155.com,AdBlock +- DOMAIN-SUFFIX,89h8.com,AdBlock +- DOMAIN-SUFFIX,8dulm.com,AdBlock +- DOMAIN-SUFFIX,8hykthze.cricket,AdBlock +- DOMAIN-SUFFIX,8jd2lfsq.me,AdBlock +- DOMAIN-SUFFIX,8jkx.com,AdBlock +- DOMAIN-SUFFIX,8le8le.com,AdBlock +- DOMAIN-SUFFIX,8mfty.com,AdBlock +- DOMAIN-SUFFIX,8ox.cn,AdBlock +- DOMAIN-SUFFIX,90053999.com,AdBlock +- DOMAIN-SUFFIX,910weixin.com,AdBlock +- DOMAIN-SUFFIX,911.cc,AdBlock +- DOMAIN-SUFFIX,915.com,AdBlock +- DOMAIN-SUFFIX,91ad.bestvogue.com,AdBlock +- DOMAIN-SUFFIX,91adv.com,AdBlock +- DOMAIN-SUFFIX,91hui.com,AdBlock +- DOMAIN-SUFFIX,91veg.com,AdBlock +- DOMAIN-SUFFIX,91xry.com,AdBlock +- DOMAIN-SUFFIX,91ysa.com,AdBlock +- DOMAIN-SUFFIX,91zgm.com,AdBlock +- DOMAIN-SUFFIX,92x.tumblr.com,AdBlock +- DOMAIN-SUFFIX,930.dragonparking.com,AdBlock +- DOMAIN-SUFFIX,93manhua.com,AdBlock +- DOMAIN-SUFFIX,94lm.com,AdBlock +- DOMAIN-SUFFIX,95105012.com,AdBlock +- DOMAIN-SUFFIX,9519.net,AdBlock +- DOMAIN-SUFFIX,95558000.com,AdBlock +- DOMAIN-SUFFIX,9565365.com,AdBlock +- DOMAIN-SUFFIX,9566180.com,AdBlock +- DOMAIN-SUFFIX,96mob.com,AdBlock +- DOMAIN-SUFFIX,9948000.com,AdBlock +- DOMAIN-SUFFIX,99909988.com,AdBlock +- DOMAIN-SUFFIX,99click.com,AdBlock +- DOMAIN-SUFFIX,99ddd.com,AdBlock +- DOMAIN-SUFFIX,99lolo.com,AdBlock +- DOMAIN-SUFFIX,9ads.net,AdBlock +- DOMAIN-SUFFIX,9dtiny.cn,AdBlock +- DOMAIN-SUFFIX,9kff.com,AdBlock +- DOMAIN-SUFFIX,9pkw.com,AdBlock +- DOMAIN-SUFFIX,9s6q.cn,AdBlock +- DOMAIN-SUFFIX,9tn.cc,AdBlock +- DOMAIN-SUFFIX,9wushuo.com,AdBlock +- DOMAIN-SUFFIX,a.198banjia.com,AdBlock +- DOMAIN-SUFFIX,a.53yao.com,AdBlock +- DOMAIN-SUFFIX,a.5ykj.com,AdBlock +- DOMAIN-SUFFIX,a.80982.org,AdBlock +- DOMAIN-SUFFIX,a.ads1.msn.com,AdBlock +- DOMAIN-SUFFIX,a.ads2.msn.com,AdBlock +- DOMAIN-SUFFIX,a.armystar.com,AdBlock +- DOMAIN-SUFFIX,a.baidu.com,AdBlock +- DOMAIN-SUFFIX,a.baiy.net,AdBlock +- DOMAIN-SUFFIX,a.baomihua.com,AdBlock +- DOMAIN-SUFFIX,a.beilamusi.com,AdBlock +- DOMAIN-SUFFIX,a.benshiw.net,AdBlock +- DOMAIN-SUFFIX,a.bshu.com,AdBlock +- DOMAIN-SUFFIX,a.cdngeek.net,AdBlock +- DOMAIN-SUFFIX,a.clipconverter.cc,AdBlock +- DOMAIN-SUFFIX,a.cn.duoyi.com,AdBlock +- DOMAIN-SUFFIX,a.dangdang.com,AdBlock +- DOMAIN-SUFFIX,a.dianjoy.com,AdBlock +- DOMAIN-SUFFIX,a.dounanhuahui.com,AdBlock +- DOMAIN-SUFFIX,a.duanmeiwen.com,AdBlock +- DOMAIN-SUFFIX,a.e7009.com,AdBlock +- DOMAIN-SUFFIX,a.ecook.cn,AdBlock +- DOMAIN-SUFFIX,a.epinv.com,AdBlock +- DOMAIN-SUFFIX,a.eporner.com,AdBlock +- DOMAIN-SUFFIX,a.exam58.com,AdBlock +- DOMAIN-SUFFIX,a.fengyx.com,AdBlock +- DOMAIN-SUFFIX,a.fwsir.com,AdBlock +- DOMAIN-SUFFIX,a.giantrealm.com,AdBlock +- DOMAIN-SUFFIX,a.global.msads.net,AdBlock +- DOMAIN-SUFFIX,a.hl.mi.com,AdBlock +- DOMAIN-SUFFIX,a.holagames.com,AdBlock +- DOMAIN-SUFFIX,a.irs01.com,AdBlock +- DOMAIN-SUFFIX,a.itiexue.net,AdBlock +- DOMAIN-SUFFIX,a.jyeoo.com,AdBlock +- DOMAIN-SUFFIX,a.kandiaoyu.com,AdBlock +- DOMAIN-SUFFIX,a.kejixun.com,AdBlock +- DOMAIN-SUFFIX,a.kickass.to,AdBlock +- DOMAIN-SUFFIX,a.koudai.com,AdBlock +- DOMAIN-SUFFIX,a.livesportmedia.eu,AdBlock +- DOMAIN-SUFFIX,a.lolwot.com,AdBlock +- DOMAIN-SUFFIX,a.ltdnc.com,AdBlock +- DOMAIN-SUFFIX,a.lwinl.com,AdBlock +- DOMAIN-SUFFIX,a.lz13.cn,AdBlock +- DOMAIN-SUFFIX,a.m.gxwztv.com,AdBlock +- DOMAIN-SUFFIX,a.m.shuhuangge.org,AdBlock +- DOMAIN-SUFFIX,a.mct01.com,AdBlock +- DOMAIN-SUFFIX,a.mjlnbx.cn,AdBlock +- DOMAIN-SUFFIX,a.nanhuwang.com,AdBlock +- DOMAIN-SUFFIX,a.nowscore.com,AdBlock +- DOMAIN-SUFFIX,a.qiao024.com,AdBlock +- DOMAIN-SUFFIX,a.qinghua5.com,AdBlock +- DOMAIN-SUFFIX,a.shangz99991.com,AdBlock +- DOMAIN-SUFFIX,a.shczz.com,AdBlock +- DOMAIN-SUFFIX,a.shenchuang.com,AdBlock +- DOMAIN-SUFFIX,a.shuoshuodaquan.net,AdBlock +- DOMAIN-SUFFIX,a.solarmovie.is,AdBlock +- DOMAIN-SUFFIX,a.soonyou123.com,AdBlock +- DOMAIN-SUFFIX,a.starstar19999.com,AdBlock +- DOMAIN-SUFFIX,a.startui19999.com,AdBlock +- DOMAIN-SUFFIX,a.thefreethoughtproject.com,AdBlock +- DOMAIN-SUFFIX,a.tribalfusion.com,AdBlock +- DOMAIN-SUFFIX,a.tujidao.com,AdBlock +- DOMAIN-SUFFIX,a.tuuituii2999.com,AdBlock +- DOMAIN-SUFFIX,a.ucoz.net,AdBlock +- DOMAIN-SUFFIX,a.union.mi.com,AdBlock +- DOMAIN-SUFFIX,a.visualrevenue.com,AdBlock +- DOMAIN-SUFFIX,a.vlion.cn,AdBlock +- DOMAIN-SUFFIX,a.waczt.cn,AdBlock +- DOMAIN-SUFFIX,a.wlfnb.com,AdBlock +- DOMAIN-SUFFIX,a.xinwenge.net,AdBlock +- DOMAIN-SUFFIX,a.xixiyishu.com,AdBlock +- DOMAIN-SUFFIX,a.xizi.com,AdBlock +- DOMAIN-SUFFIX,a.xywy.com,AdBlock +- DOMAIN-SUFFIX,a.yangshengtang123.com,AdBlock +- DOMAIN-SUFFIX,a.yixie8.com,AdBlock +- DOMAIN-SUFFIX,a.yjbys.com,AdBlock +- DOMAIN-SUFFIX,a.youdao.com,AdBlock +- DOMAIN-SUFFIX,a1.0s.net.cn,AdBlock +- DOMAIN-SUFFIX,a1.azg168.cn,AdBlock +- DOMAIN-SUFFIX,a1.gexing.me,AdBlock +- DOMAIN-SUFFIX,a1.huanqiumil.com,AdBlock +- DOMAIN-SUFFIX,a1.huiqituan.com,AdBlock +- DOMAIN-SUFFIX,a1.itc.cn,AdBlock +- DOMAIN-SUFFIX,a1.liuxue86.com,AdBlock +- DOMAIN-SUFFIX,a1.lmaq.cn,AdBlock +- DOMAIN-SUFFIX,a1.peoplecdn.cn,AdBlock +- DOMAIN-SUFFIX,a1.vdolady.com,AdBlock +- DOMAIN-SUFFIX,a1.yuuedu.com,AdBlock +- DOMAIN-SUFFIX,a1.zhanzhang.net,AdBlock +- DOMAIN-SUFFIX,a1click.cpc.sogou.com,AdBlock +- DOMAIN-SUFFIX,a2.b310.com,AdBlock +- DOMAIN-SUFFIX,a2.huanqiumil.com,AdBlock +- DOMAIN-SUFFIX,a2.rabbitpre.com,AdBlock +- DOMAIN-SUFFIX,a3.ikafan.com,AdBlock +- DOMAIN-SUFFIX,a3p4.net,AdBlock +- DOMAIN-SUFFIX,a4.b2b168.com,AdBlock +- DOMAIN-SUFFIX,a4.ikafan.com,AdBlock +- DOMAIN-SUFFIX,a4.yeshj.com,AdBlock +- DOMAIN-SUFFIX,a5.yeshj.com,AdBlock +- DOMAIN-SUFFIX,a6.bjdianyue.com,AdBlock +- DOMAIN-SUFFIX,a6.codejumps.com,AdBlock +- DOMAIN-SUFFIX,a6.taobanapp.com,AdBlock +- DOMAIN-SUFFIX,a6s.1cakeclub.com,AdBlock +- DOMAIN-SUFFIX,a6s.modoupai.com,AdBlock +- DOMAIN-SUFFIX,a6s.ruyiqufu.com,AdBlock +- DOMAIN-SUFFIX,a6s.ve001nz.com,AdBlock +- DOMAIN-SUFFIX,a7shun.com,AdBlock +- DOMAIN-SUFFIX,a907907.com,AdBlock +- DOMAIN-SUFFIX,a9377j.com,AdBlock +- DOMAIN-SUFFIX,aa.goodsblock.mgid.com,AdBlock +- DOMAIN-SUFFIX,aa.jiankang.com,AdBlock +- DOMAIN-SUFFIX,aa.tianya999.com,AdBlock +- DOMAIN-SUFFIX,aa.xiangxiangmf.com,AdBlock +- DOMAIN-SUFFIX,aa.zldh123.com,AdBlock +- DOMAIN-SUFFIX,aa0.pub.funshion.com,AdBlock +- DOMAIN-SUFFIX,aa1.pub.funshion.com,AdBlock +- DOMAIN-SUFFIX,aafanke.cc,AdBlock +- DOMAIN-SUFFIX,aa-gb.mgid.com,AdBlock +- DOMAIN-SUFFIX,aam.adsremote.scrippsnetworks.com,AdBlock +- DOMAIN-SUFFIX,ab.dydab.com,AdBlock +- DOMAIN-SUFFIX,ab.goodsblock.mgid.com,AdBlock +- DOMAIN-SUFFIX,ab.hysdknb.com,AdBlock +- DOMAIN-SUFFIX,ab.meishiba.com.cn,AdBlock +- DOMAIN-SUFFIX,ab.sc115.com,AdBlock +- DOMAIN-SUFFIX,abbyychina.com,AdBlock +- DOMAIN-SUFFIX,abc.dooccn.com,AdBlock +- DOMAIN-SUFFIX,abc.douguo.com,AdBlock +- DOMAIN-SUFFIX,abc.eastlady.cn,AdBlock +- DOMAIN-SUFFIX,abc.hkepc.com,AdBlock +- DOMAIN-SUFFIX,abc.ruiwen.com,AdBlock +- DOMAIN-SUFFIX,abc.xtyx918.com,AdBlock +- DOMAIN-SUFFIX,abc.yjbys.com,AdBlock +- DOMAIN-SUFFIX,abc.zhiyaspa.com,AdBlock +- DOMAIN-SUFFIX,abcd.zsrt88.cn,AdBlock +- DOMAIN-SUFFIX,abcj.dooccn.com,AdBlock +- DOMAIN-SUFFIX,ab-gb.mgid.com,AdBlock +- DOMAIN-SUFFIX,abtest.mistat.xiaomi.com,AdBlock +- DOMAIN-SUFFIX,ac.atpanel.com,AdBlock +- DOMAIN-SUFFIX,ac.mmstat.com,AdBlock +- DOMAIN-SUFFIX,ac2.msn.com,AdBlock +- DOMAIN-SUFFIX,ac3.msn.com,AdBlock +- DOMAIN-SUFFIX,acasys88.cn,AdBlock +- DOMAIN-SUFFIX,access.njherald.com,AdBlock +- DOMAIN-SUFFIX,ac-gb.mgid.com,AdBlock +- DOMAIN-SUFFIX,acint.net,AdBlock +- DOMAIN-SUFFIX,acm.dzwww.com,AdBlock +- DOMAIN-SUFFIX,acs86.com,AdBlock +- DOMAIN-SUFFIX,acsystem.wasu.cn,AdBlock +- DOMAIN-SUFFIX,act2.mediafour.com,AdBlock +- DOMAIN-SUFFIX,activate.adobe.com,AdBlock +- DOMAIN-SUFFIX,activate.wip3.adobe.com,AdBlock +- DOMAIN-SUFFIX,activate-sea.adobe.com,AdBlock +- DOMAIN-SUFFIX,activate-sjc0.adobe.com,AdBlock +- DOMAIN-SUFFIX,activation.cyberlink.com,AdBlock +- DOMAIN-SUFFIX,activation.easeus.com,AdBlock +- DOMAIN-SUFFIX,active.baofeng.com,AdBlock +- DOMAIN-SUFFIX,activeqq.3g.qq.com,AdBlock +- DOMAIN-SUFFIX,activity.app.autohome.com.cn,AdBlock +- DOMAIN-SUFFIX,activity.serving-sys.com,AdBlock +- DOMAIN-SUFFIX,activity.tuifish.com,AdBlock +- DOMAIN-SUFFIX,activity.yuyiya.com,AdBlock +- DOMAIN-SUFFIX,actlog.dftoutiao.com,AdBlock +- DOMAIN-SUFFIX,actsdk.idreamsky.com,AdBlock +- DOMAIN-SUFFIX,acuityplatform.com,AdBlock +- DOMAIN-SUFFIX,acwgf.com,AdBlock +- DOMAIN-SUFFIX,acxiom-online.com,AdBlock +- DOMAIN-SUFFIX,ad.1111cpc.com,AdBlock +- DOMAIN-SUFFIX,ad.12306.cn,AdBlock +- DOMAIN-SUFFIX,ad.17173.com,AdBlock +- DOMAIN-SUFFIX,ad.1kxun.com,AdBlock +- DOMAIN-SUFFIX,ad.3.cn,AdBlock +- DOMAIN-SUFFIX,ad.360yield.com,AdBlock +- DOMAIN-SUFFIX,ad.363.in,AdBlock +- DOMAIN-SUFFIX,ad.3dnews.ru,AdBlock +- DOMAIN-SUFFIX,ad.51wnl.com,AdBlock +- DOMAIN-SUFFIX,ad.95306.cn,AdBlock +- DOMAIN-SUFFIX,ad.about.co.kr,AdBlock +- DOMAIN-SUFFIX,ad.accessmediaproductions.com,AdBlock +- DOMAIN-SUFFIX,ad.adhouyi.cn,AdBlock +- DOMAIN-SUFFIX,ad.aidalan.com,AdBlock +- DOMAIN-SUFFIX,ad.api.moji.com,AdBlock +- DOMAIN-SUFFIX,ad.auditude.com,AdBlock +- DOMAIN-SUFFIX,ad.bayescom.com,AdBlock +- DOMAIN-SUFFIX,ad.beihai365.com,AdBlock +- DOMAIN-SUFFIX,ad.bitmedia.io,AdBlock +- DOMAIN-SUFFIX,ad.bjmama.net,AdBlock +- DOMAIN-SUFFIX,ad.cacafly.com,AdBlock +- DOMAIN-SUFFIX,ad.caiyunapp.com,AdBlock +- DOMAIN-SUFFIX,ad.cctv.com,AdBlock +- DOMAIN-SUFFIX,ad.cooks.com,AdBlock +- DOMAIN-SUFFIX,ad.crichd.in,AdBlock +- DOMAIN-SUFFIX,ad.csdn.net,AdBlock +- DOMAIN-SUFFIX,ad.dedecms.com,AdBlock +- DOMAIN-SUFFIX,ad.digitimes.com.tw,AdBlock +- DOMAIN-SUFFIX,ad.directmirror.com,AdBlock +- DOMAIN-SUFFIX,ad.dokrmob.com,AdBlock +- DOMAIN-SUFFIX,ad.doubanio.com,AdBlock +- DOMAIN-SUFFIX,ad.download.cnet.com,AdBlock +- DOMAIN-SUFFIX,ad.dqwjzm.com,AdBlock +- DOMAIN-SUFFIX,ad.duapps.com,AdBlock +- DOMAIN-SUFFIX,ad.duga.jp,AdBlock +- DOMAIN-SUFFIX,ad.dumedia.ru,AdBlock +- DOMAIN-SUFFIX,ad.duomi.com,AdBlock +- DOMAIN-SUFFIX,ad.dzwindows.com,AdBlock +- DOMAIN-SUFFIX,ad.dzwww.com,AdBlock +- DOMAIN-SUFFIX,ad.egou.com,AdBlock +- DOMAIN-SUFFIX,ad.endpo.in,AdBlock +- DOMAIN-SUFFIX,ad.epochtimes.com,AdBlock +- DOMAIN-SUFFIX,ad.eporner.com,AdBlock +- DOMAIN-SUFFIX,ad.evozi.com,AdBlock +- DOMAIN-SUFFIX,ad.flipboard.com,AdBlock +- DOMAIN-SUFFIX,ad.flurry.com,AdBlock +- DOMAIN-SUFFIX,ad.flux.com,AdBlock +- DOMAIN-SUFFIX,ad.fnnews.com,AdBlock +- DOMAIN-SUFFIX,ad.foxnetworks.com,AdBlock +- DOMAIN-SUFFIX,ad.funp.com,AdBlock +- DOMAIN-SUFFIX,ad.funshion.org.cn,AdBlock +- DOMAIN-SUFFIX,ad.gametower.com.tw,AdBlock +- DOMAIN-SUFFIX,ad.ganji.com,AdBlock +- DOMAIN-SUFFIX,ad.gmw.cn,AdBlock +- DOMAIN-SUFFIX,ad.go.com,AdBlock +- DOMAIN-SUFFIX,ad.greedland.net,AdBlock +- DOMAIN-SUFFIX,ad.gtbrowser.com,AdBlock +- DOMAIN-SUFFIX,ad.hefei.cc,AdBlock +- DOMAIN-SUFFIX,ad.hiiir.com,AdBlock +- DOMAIN-SUFFIX,ad.holaq.com,AdBlock +- DOMAIN-SUFFIX,ad.hot-mob.com,AdBlock +- DOMAIN-SUFFIX,ad.house365.com,AdBlock +- DOMAIN-SUFFIX,ad.huajiao.com,AdBlock +- DOMAIN-SUFFIX,ad.ibookstar.com,AdBlock +- DOMAIN-SUFFIX,ad.icasthq.com,AdBlock +- DOMAIN-SUFFIX,ad.idgtn.net,AdBlock +- DOMAIN-SUFFIX,ad.iloveinterracial.com,AdBlock +- DOMAIN-SUFFIX,ad.ipadview.com,AdBlock +- DOMAIN-SUFFIX,ad.jamba.net,AdBlock +- DOMAIN-SUFFIX,ad.jamster.co.uk,AdBlock +- DOMAIN-SUFFIX,ad.jamster.com,AdBlock +- DOMAIN-SUFFIX,ad.jiemian.com,AdBlock +- DOMAIN-SUFFIX,ad.jsnbrynb.com,AdBlock +- DOMAIN-SUFFIX,ad.jxnews.com.cn,AdBlock +- DOMAIN-SUFFIX,ad.kissanime.io,AdBlock +- DOMAIN-SUFFIX,ad.kisscartoon.io,AdBlock +- DOMAIN-SUFFIX,ad.leadbolt.net,AdBlock +- DOMAIN-SUFFIX,ad.leadboltads.net,AdBlock +- DOMAIN-SUFFIX,ad.leadboltapps.net,AdBlock +- DOMAIN-SUFFIX,ad.leadboltmobile.net,AdBlock +- DOMAIN-SUFFIX,ad.livere.co.kr,AdBlock +- DOMAIN-SUFFIX,ad.lqalm.com,AdBlock +- DOMAIN-SUFFIX,ad.lyricswire.com,AdBlock +- DOMAIN-SUFFIX,ad.madserving.com,AdBlock +- DOMAIN-SUFFIX,ad.mail.ru,AdBlock +- DOMAIN-SUFFIX,ad.mail.sohu.com,AdBlock +- DOMAIN-SUFFIX,ad.mangareader.net,AdBlock +- DOMAIN-SUFFIX,ad.mediabong.net,AdBlock +- DOMAIN-SUFFIX,ad.mesomorphosis.com,AdBlock +- DOMAIN-SUFFIX,ad.mi.com,AdBlock +- DOMAIN-SUFFIX,ad.mnt123.com,AdBlock +- DOMAIN-SUFFIX,ad.molitv.cn,AdBlock +- DOMAIN-SUFFIX,ad.naver.com,AdBlock +- DOMAIN-SUFFIX,ad.netowl.jp,AdBlock +- DOMAIN-SUFFIX,ad.newegg.com,AdBlock +- DOMAIN-SUFFIX,ad.obuy.tw,AdBlock +- DOMAIN-SUFFIX,ad.openmultimedia.biz,AdBlock +- DOMAIN-SUFFIX,ad.outsidehub.com,AdBlock +- DOMAIN-SUFFIX,ad.pandora.tv,AdBlock +- DOMAIN-SUFFIX,ad.pchome.com.tw,AdBlock +- DOMAIN-SUFFIX,ad.pickple.net,AdBlock +- DOMAIN-SUFFIX,ad.pixnet.in,AdBlock +- DOMAIN-SUFFIX,ad.pixnet.net,AdBlock +- DOMAIN-SUFFIX,ad.player.baidu.com,AdBlock +- DOMAIN-SUFFIX,ad.propellerads.com,AdBlock +- DOMAIN-SUFFIX,ad.proxy.sh,AdBlock +- DOMAIN-SUFFIX,ad.qingting.fm,AdBlock +- DOMAIN-SUFFIX,ad.qq.com,AdBlock +- DOMAIN-SUFFIX,ad.r.worldssl.net,AdBlock +- DOMAIN-SUFFIX,ad.rambler.ru,AdBlock +- DOMAIN-SUFFIX,ad.reachlocal.com,AdBlock +- DOMAIN-SUFFIX,ad.rednet.cn,AdBlock +- DOMAIN-SUFFIX,ad.reklamport.com,AdBlock +- DOMAIN-SUFFIX,ad.search.ch,AdBlock +- DOMAIN-SUFFIX,ad.seeyouyima.com,AdBlock +- DOMAIN-SUFFIX,ad.sensismediasmart.com.au,AdBlock +- DOMAIN-SUFFIX,ad.services.distractify.com,AdBlock +- DOMAIN-SUFFIX,ad.shuoshuomi.com,AdBlock +- DOMAIN-SUFFIX,ad.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,ad.sinovision.net,AdBlock +- DOMAIN-SUFFIX,ad.slutload.com,AdBlock +- DOMAIN-SUFFIX,ad.smartclip.net,AdBlock +- DOMAIN-SUFFIX,ad.sohu.com,AdBlock +- DOMAIN-SUFFIX,ad.spielothek.so,AdBlock +- DOMAIN-SUFFIX,ad.spreaker.com,AdBlock +- DOMAIN-SUFFIX,ad.stsywl.com,AdBlock +- DOMAIN-SUFFIX,ad.tatatimes.com,AdBlock +- DOMAIN-SUFFIX,ad.test.ximalaya.com,AdBlock +- DOMAIN-SUFFIX,ad.thepaper.cn,AdBlock +- DOMAIN-SUFFIX,ad.thisav.com,AdBlock +- DOMAIN-SUFFIX,ad.thsi.cn,AdBlock +- DOMAIN-SUFFIX,ad.toutiao.com,AdBlock +- DOMAIN-SUFFIX,ad.turn.com,AdBlock +- DOMAIN-SUFFIX,ad.unimhk.com,AdBlock +- DOMAIN-SUFFIX,ad.userporn.com,AdBlock +- DOMAIN-SUFFIX,ad.vidaroo.com,AdBlock +- DOMAIN-SUFFIX,ad.vryeye.com,AdBlock +- DOMAIN-SUFFIX,ad.walkgame.com,AdBlock +- DOMAIN-SUFFIX,ad.wang502.com,AdBlock +- DOMAIN-SUFFIX,ad.winningpartner.com,AdBlock +- DOMAIN-SUFFIX,ad.winrar.com.cn,AdBlock +- DOMAIN-SUFFIX,ad.wretch.cc,AdBlock +- DOMAIN-SUFFIX,ad.xiaomi.com,AdBlock +- DOMAIN-SUFFIX,ad.ximalaya.com,AdBlock +- DOMAIN-SUFFIX,ad.xmovies8.ru,AdBlock +- DOMAIN-SUFFIX,ad.xxguan.cn,AdBlock +- DOMAIN-SUFFIX,ad.yeshitv.com,AdBlock +- DOMAIN-SUFFIX,ad.yieldlab.net,AdBlock +- DOMAIN-SUFFIX,ad.yixin.im,AdBlock +- DOMAIN-SUFFIX,ad.ylunion.com,AdBlock +- DOMAIN-SUFFIX,ad.zanox.com,AdBlock +- DOMAIN-SUFFIX,ad.zdworks.com,AdBlock +- DOMAIN-SUFFIX,ad.zhangyue.com,AdBlock +- DOMAIN-SUFFIX,ad.zhidian3g.cn,AdBlock +- DOMAIN-SUFFIX,ad.zuimeitianqi.com,AdBlock +- DOMAIN-SUFFIX,ad0.bigmir.net,AdBlock +- DOMAIN-SUFFIX,ad000000.com,AdBlock +- DOMAIN-SUFFIX,ad1.bigmir.net,AdBlock +- DOMAIN-SUFFIX,ad1.greedland.net,AdBlock +- DOMAIN-SUFFIX,ad1.nend.net,AdBlock +- DOMAIN-SUFFIX,ad1.netshelter.net,AdBlock +- DOMAIN-SUFFIX,ad1.p5w.net,AdBlock +- DOMAIN-SUFFIX,ad1.udn.com,AdBlock +- DOMAIN-SUFFIX,ad1.xiaomi.com,AdBlock +- DOMAIN-SUFFIX,ad1.yangjinyou.com,AdBlock +- DOMAIN-SUFFIX,ad2.nend.net,AdBlock +- DOMAIN-SUFFIX,ad2.udn.com,AdBlock +- DOMAIN-SUFFIX,ad2.yam.com,AdBlock +- DOMAIN-SUFFIX,ad2.yangjinyou.com,AdBlock +- DOMAIN-SUFFIX,ad3.udn.com,AdBlock +- DOMAIN-SUFFIX,ad4.bigmir.net,AdBlock +- DOMAIN-SUFFIX,ad4.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,ad4.udn.com,AdBlock +- DOMAIN-SUFFIX,ad4game.com,AdBlock +- DOMAIN-SUFFIX,ad5.bigmir.net,AdBlock +- DOMAIN-SUFFIX,ad6.bigmir.net,AdBlock +- DOMAIN-SUFFIX,ad7.bigmir.net,AdBlock +- DOMAIN-SUFFIX,ad7.com,AdBlock +- DOMAIN-SUFFIX,ad7.on.cc,AdBlock +- DOMAIN-SUFFIX,ad7.tagphi.net,AdBlock +- DOMAIN-SUFFIX,ad8.adfarm1.adition.com,AdBlock +- DOMAIN-SUFFIX,ad9377.com,AdBlock +- DOMAIN-SUFFIX,adadapted.com,AdBlock +- DOMAIN-SUFFIX,adadmin.house365.com,AdBlock +- DOMAIN-SUFFIX,adadvisor.net,AdBlock +- DOMAIN-SUFFIX,ad-android.51wnl.com,AdBlock +- DOMAIN-SUFFIX,adap.tv,AdBlock +- DOMAIN-SUFFIX,adapi.lenovogame.com,AdBlock +- DOMAIN-SUFFIX,adasad.myweb.hinet.net,AdBlock +- DOMAIN-SUFFIX,adash.m.taobao.com,AdBlock +- DOMAIN-SUFFIX,adbana.com,AdBlock +- DOMAIN-SUFFIX,ad-beta.flipboard.com,AdBlock +- DOMAIN-SUFFIX,adbot.tw,AdBlock +- DOMAIN-SUFFIX,adbox.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,ad-brix.com,AdBlock +- DOMAIN-SUFFIX,adbuyer3.lycos.com,AdBlock +- DOMAIN-SUFFIX,adbxb.com,AdBlock +- DOMAIN-SUFFIX,adcast.deviantart.com,AdBlock +- DOMAIN-SUFFIX,adcast.fblife.com,AdBlock +- DOMAIN-SUFFIX,adccoo.cn,AdBlock +- DOMAIN-SUFFIX,adcdn.goo.ne.jp,AdBlock +- DOMAIN-SUFFIX,adchina.com,AdBlock +- DOMAIN-SUFFIX,adcitrus.com,AdBlock +- DOMAIN-SUFFIX,adcl.pchome.com.tw,AdBlock +- DOMAIN-SUFFIX,adclick.g.doublecklick.net,AdBlock +- DOMAIN-SUFFIX,adclient.uimserv.net,AdBlock +- DOMAIN-SUFFIX,adclock.zdworks.com,AdBlock +- DOMAIN-SUFFIX,adcloud.jp,AdBlock +- DOMAIN-SUFFIX,ad-cloud.jp,AdBlock +- DOMAIN-SUFFIX,ad-cn.jovcloud.com,AdBlock +- DOMAIN-SUFFIX,adcolony.com,AdBlock +- DOMAIN-SUFFIX,adcome.cn,AdBlock +- DOMAIN-SUFFIX,adcore.lenovomm.com,AdBlock +- DOMAIN-SUFFIX,adcount.yoka.com,AdBlock +- DOMAIN-SUFFIX,adcr.naver.com,AdBlock +- DOMAIN-SUFFIX,adcreative.naver.com,AdBlock +- DOMAIN-SUFFIX,add.bugun.com.tr,AdBlock +- DOMAIN-SUFFIX,add.dz19.net,AdBlock +- DOMAIN-SUFFIX,add.freeimg8.com,AdBlock +- DOMAIN-SUFFIX,add.mmyuer.com,AdBlock +- DOMAIN-SUFFIX,addata.ku6.com,AdBlock +- DOMAIN-SUFFIX,ad-delivery.net,AdBlock +- DOMAIN-SUFFIX,addirector.vindicosuite.com,AdBlock +- DOMAIN-SUFFIX,addl.easetuner.com,AdBlock +- DOMAIN-SUFFIX,adds.weatherology.com,AdBlock +- DOMAIN-SUFFIX,addthis.com,AdBlock +- DOMAIN-SUFFIX,addthisedge.com,AdBlock +- DOMAIN-SUFFIX,adeaz.com,AdBlock +- DOMAIN-SUFFIX,ader.mobi,AdBlock +- DOMAIN-SUFFIX,adeventtracker.spotify.com,AdBlock +- DOMAIN-SUFFIX,adexprt.com,AdBlock +- DOMAIN-SUFFIX,adf.dahe.cn,AdBlock +- DOMAIN-SUFFIX,adfarm.mediaplex.com,AdBlock +- DOMAIN-SUFFIX,adform.net,AdBlock +- DOMAIN-SUFFIX,adfront.auction.co.kr,AdBlock +- DOMAIN-SUFFIX,adfurikun.jp,AdBlock +- DOMAIN-SUFFIX,adfuture.cn,AdBlock +- DOMAIN-SUFFIX,ad-gb.mgid.com,AdBlock +- DOMAIN-SUFFIX,adgeo.163.com,AdBlock +- DOMAIN-SUFFIX,adhai.com,AdBlock +- DOMAIN-SUFFIX,adhome.1fangchan.com,AdBlock +- DOMAIN-SUFFIX,adhouyi.com,AdBlock +- DOMAIN-SUFFIX,adi.bigmir.net,AdBlock +- DOMAIN-SUFFIX,adi.cnool.net,AdBlock +- DOMAIN-SUFFIX,adi2007.cnool.net,AdBlock +- DOMAIN-SUFFIX,adimages.go.com,AdBlock +- DOMAIN-SUFFIX,adimages.sina.com.hk,AdBlock +- DOMAIN-SUFFIX,adimg.bbcss.com,AdBlock +- DOMAIN-SUFFIX,adimg.cqnews.net,AdBlock +- DOMAIN-SUFFIX,adimg.daumcdn.net,AdBlock +- DOMAIN-SUFFIX,adimg.deviantart.net,AdBlock +- DOMAIN-SUFFIX,adimg.mobile.sina.cn,AdBlock +- DOMAIN-SUFFIX,adimg.qxlsjw.com,AdBlock +- DOMAIN-SUFFIX,adimg.uimserv.net,AdBlock +- DOMAIN-SUFFIX,adimg.uve.weibo.com,AdBlock +- DOMAIN-SUFFIX,adimg1.chosun.com,AdBlock +- DOMAIN-SUFFIX,adimg3.search.naver.net,AdBlock +- DOMAIN-SUFFIX,adimgs.xici.net,AdBlock +- DOMAIN-SUFFIX,adimp.excite.co.jp,AdBlock +- DOMAIN-SUFFIX,adinall.com,AdBlock +- DOMAIN-SUFFIX,adinf.cp11.ott.cibntv.net,AdBlock +- DOMAIN-SUFFIX,adinf.voole.com,AdBlock +- DOMAIN-SUFFIX,adinfo.aol.com,AdBlock +- DOMAIN-SUFFIX,adinfo.ra1.xlmc.sec.miui.com,AdBlock +- DOMAIN-SUFFIX,adinfuse.com,AdBlock +- DOMAIN-SUFFIX,adingo.jp.eimg.jp,AdBlock +- DOMAIN-SUFFIX,adirects.com,AdBlock +- DOMAIN-SUFFIX,adjb.5nd.com,AdBlock +- DOMAIN-SUFFIX,adjust.com,AdBlock +- DOMAIN-SUFFIX,adjust.io,AdBlock +- DOMAIN-SUFFIX,adk.funshion.com,AdBlock +- DOMAIN-SUFFIX,adk2.co,AdBlock +- DOMAIN-SUFFIX,adk2x.com,AdBlock +- DOMAIN-SUFFIX,adkmob.com,AdBlock +- DOMAIN-SUFFIX,adkongjian.com,AdBlock +- DOMAIN-SUFFIX,adlabs-sync.rutarget.ru,AdBlock +- DOMAIN-SUFFIX,adlaunch.moji.com,AdBlock +- DOMAIN-SUFFIX,adlefee.com,AdBlock +- DOMAIN-SUFFIX,adlink.shopsafe.co.nz,AdBlock +- DOMAIN-SUFFIX,adlive.cn,AdBlock +- DOMAIN-SUFFIX,adlocus.com,AdBlock +- DOMAIN-SUFFIX,ad-locus.com,AdBlock +- DOMAIN-SUFFIX,adlog.flurry.com,AdBlock +- DOMAIN-SUFFIX,adm.10jqka.com.cn,AdBlock +- DOMAIN-SUFFIX,adm.265g.com,AdBlock +- DOMAIN-SUFFIX,adm.72zx.com,AdBlock +- DOMAIN-SUFFIX,adm.86wan.com,AdBlock +- DOMAIN-SUFFIX,adm.baidu.com,AdBlock +- DOMAIN-SUFFIX,adm.cloud.cnfol.com,AdBlock +- DOMAIN-SUFFIX,adm.easou.com,AdBlock +- DOMAIN-SUFFIX,adm.funshion.com,AdBlock +- DOMAIN-SUFFIX,adm.icast.cn,AdBlock +- DOMAIN-SUFFIX,adm.leju.com,AdBlock +- DOMAIN-SUFFIX,adm.leju.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,adm.myzaker.com,AdBlock +- DOMAIN-SUFFIX,adm.xmfish.com,AdBlock +- DOMAIN-SUFFIX,adm.zbinfo.net,AdBlock +- DOMAIN-SUFFIX,adm.zookingsoft.com,AdBlock +- DOMAIN-SUFFIX,adm0.autoimg.cn,AdBlock +- DOMAIN-SUFFIX,adm1.autoimg.cn,AdBlock +- DOMAIN-SUFFIX,adm2.autoimg.cn,AdBlock +- DOMAIN-SUFFIX,adm3.autoimg.cn,AdBlock +- DOMAIN-SUFFIX,admaji.com,AdBlock +- DOMAIN-SUFFIX,admarket.21cn.com,AdBlock +- DOMAIN-SUFFIX,admarket.mobi,AdBlock +- DOMAIN-SUFFIX,admd.yam.com,AdBlock +- DOMAIN-SUFFIX,admedia.com,AdBlock +- DOMAIN-SUFFIX,admeta.vo.llnwd.net,AdBlock +- DOMAIN-SUFFIX,admgr.qingting.fm,AdBlock +- DOMAIN-SUFFIX,admin.cooguo.com,AdBlock +- DOMAIN-SUFFIX,admin.louxia.org,AdBlock +- DOMAIN-SUFFIX,admin.ninebox.cn,AdBlock +- DOMAIN-SUFFIX,admin6.com,AdBlock +- DOMAIN-SUFFIX,admob.com,AdBlock +- DOMAIN-SUFFIX,admon.cn,AdBlock +- DOMAIN-SUFFIX,admtpmp124.com,AdBlock +- DOMAIN-SUFFIX,admx.baixing.com,AdBlock +- DOMAIN-SUFFIX,adn.ebay.com,AdBlock +- DOMAIN-SUFFIX,adn.insight.ucweb.com,AdBlock +- DOMAIN-SUFFIX,adnetpub.yaolan.com,AdBlock +- DOMAIN-SUFFIX,adnew.wifi8.com,AdBlock +- DOMAIN-SUFFIX,adnxs.com,AdBlock +- DOMAIN-SUFFIX,adobe-dns.adobe.com,AdBlock +- DOMAIN-SUFFIX,adobe-dns-2.adobe.com,AdBlock +- DOMAIN-SUFFIX,adobe-dns-3.adobe.com,AdBlock +- DOMAIN-SUFFIX,adomv.com,AdBlock +- DOMAIN-SUFFIX,adp.cnool.net,AdBlock +- DOMAIN-SUFFIX,adp.s8bbs.com,AdBlock +- DOMAIN-SUFFIX,adp1.cnool.net,AdBlock +- DOMAIN-SUFFIX,adpai.thepaper.cn,AdBlock +- DOMAIN-SUFFIX,adperium.com,AdBlock +- DOMAIN-SUFFIX,adping.qq.com,AdBlock +- DOMAIN-SUFFIX,adplatform.vrtcal.com,AdBlock +- DOMAIN-SUFFIX,ad-plus.cn,AdBlock +- DOMAIN-SUFFIX,adplus.goo.mx,AdBlock +- DOMAIN-SUFFIX,adplxmd.com,AdBlock +- DOMAIN-SUFFIX,adpm.app.qq.com,AdBlock +- DOMAIN-SUFFIX,adpolestar.net,AdBlock +- DOMAIN-SUFFIX,adpro.cn,AdBlock +- DOMAIN-SUFFIX,adpro.pro.cn,AdBlock +- DOMAIN-SUFFIX,adpub.yaolan.com,AdBlock +- DOMAIN-SUFFIX,adpublish.ydstatic.com,AdBlock +- DOMAIN-SUFFIX,adpubs.yaolan.com,AdBlock +- DOMAIN-SUFFIX,adpush.cn,AdBlock +- DOMAIN-SUFFIX,adq.chinaso.com,AdBlock +- DOMAIN-SUFFIX,adrdir.qq.com,AdBlock +- DOMAIN-SUFFIX,adreal.cn,AdBlock +- DOMAIN-SUFFIX,adres.myaora.net,AdBlock +- DOMAIN-SUFFIX,adriver.ru,AdBlock +- DOMAIN-SUFFIX,adriver-sync.rutarget.ru,AdBlock +- DOMAIN-SUFFIX,adroll.com,AdBlock +- DOMAIN-SUFFIX,adrotator.se,AdBlock +- DOMAIN-SUFFIX,adrs.sdo.com,AdBlock +- DOMAIN-SUFFIX,adrunnr.com,AdBlock +- DOMAIN-SUFFIX,ads1.msads.net,AdBlock +- DOMAIN-SUFFIX,ads1.msn.com,AdBlock +- DOMAIN-SUFFIX,ads2.contentabc.com,AdBlock +- DOMAIN-SUFFIX,ads2.msads.net,AdBlock +- DOMAIN-SUFFIX,ads2.msn.com,AdBlock +- DOMAIN-SUFFIX,ads2.opensubtitles.org,AdBlock +- DOMAIN-SUFFIX,ads8.com,AdBlock +- DOMAIN-SUFFIX,ads80.com,AdBlock +- DOMAIN-SUFFIX,adsame.com,AdBlock +- DOMAIN-SUFFIX,adsapi.manhuaren.com,AdBlock +- DOMAIN-SUFFIX,adsatt.abcnews.starwave.com,AdBlock +- DOMAIN-SUFFIX,adsatt.disney.starwave.com,AdBlock +- DOMAIN-SUFFIX,adsatt.espn.go.com,AdBlock +- DOMAIN-SUFFIX,adsatt.espn.starwave.com,AdBlock +- DOMAIN-SUFFIX,adsatt.familyfun.starwave.com,AdBlock +- DOMAIN-SUFFIX,adsatt.go.starwave.com,AdBlock +- DOMAIN-SUFFIX,adsatt.movies.starwave.com,AdBlock +- DOMAIN-SUFFIX,adscaspion.appspot.com,AdBlock +- DOMAIN-SUFFIX,adscdn.baidu.com,AdBlock +- DOMAIN-SUFFIX,adsclick.qq.com,AdBlock +- DOMAIN-SUFFIX,adsclick.yx.js.cn,AdBlock +- DOMAIN-SUFFIX,adsco.re,AdBlock +- DOMAIN-SUFFIX,adscript.gmarket.co.kr,AdBlock +- DOMAIN-SUFFIX,adsdk.9imobi.com,AdBlock +- DOMAIN-SUFFIX,adsdk.dmzj.com,AdBlock +- DOMAIN-SUFFIX,adse.test.ximalaya.com,AdBlock +- DOMAIN-SUFFIX,adse.ximalaya.com,AdBlock +- DOMAIN-SUFFIX,adsence.sogou.com,AdBlock +- DOMAIN-SUFFIX,adsense.html5.qq.com,AdBlock +- DOMAIN-SUFFIX,adserve2.tom.com,AdBlock +- DOMAIN-SUFFIX,adsfactor.net,AdBlock +- DOMAIN-SUFFIX,adsfile.bssdlbig.kugou.com,AdBlock +- DOMAIN-SUFFIX,adsfile.qq.com,AdBlock +- DOMAIN-SUFFIX,adsfs.oppomobile.com,AdBlock +- DOMAIN-SUFFIX,adsgroup.qq.com,AdBlock +- DOMAIN-SUFFIX,adshare.freedocast.com,AdBlock +- DOMAIN-SUFFIX,adshmct.qq.com,AdBlock +- DOMAIN-SUFFIX,adshmmsg.qq.com,AdBlock +- DOMAIN-SUFFIX,adshost2.com,AdBlock +- DOMAIN-SUFFIX,adshow.58.com,AdBlock +- DOMAIN-SUFFIX,adshow.it168.com,AdBlock +- DOMAIN-SUFFIX,adshows.21cn.com,AdBlock +- DOMAIN-SUFFIX,adsin.zhangyoubao.com,AdBlock +- DOMAIN-SUFFIX,adsinstant.com,AdBlock +- DOMAIN-SUFFIX,adslvfile.qq.com,AdBlock +- DOMAIN-SUFFIX,adslvseed.qq.com,AdBlock +- DOMAIN-SUFFIX,adsmart.yicha.cn,AdBlock +- DOMAIN-SUFFIX,adsolution.imtt.qq.com,AdBlock +- DOMAIN-SUFFIX,adsor.openrunner.com,AdBlock +- DOMAIN-SUFFIX,adsp.xunlei.com,AdBlock +- DOMAIN-SUFFIX,ad-specs.guoshipartners.com,AdBlock +- DOMAIN-SUFFIX,adsqqclick.qq.com,AdBlock +- DOMAIN-SUFFIX,adsremote.scrippsnetworks.com,AdBlock +- DOMAIN-SUFFIX,adsrvr.org,AdBlock +- DOMAIN-SUFFIX,adss.dotdo.net,AdBlock +- DOMAIN-SUFFIX,adss.yahoo.com,AdBlock +- DOMAIN-SUFFIX,adstat.cp11.ott.cibntv.net,AdBlock +- DOMAIN-SUFFIX,adstextview.qq.com,AdBlock +- DOMAIN-SUFFIX,adstil.indiatimes.com,AdBlock +- DOMAIN-SUFFIX,ad-stir.com,AdBlock +- DOMAIN-SUFFIX,adstream.123.sogoucdn.com,AdBlock +- DOMAIN-SUFFIX,ads-twitter.com,AdBlock +- DOMAIN-SUFFIX,adsunflower.com,AdBlock +- DOMAIN-SUFFIX,adsunion.com,AdBlock +- DOMAIN-SUFFIX,ad-survey.com,AdBlock +- DOMAIN-SUFFIX,adsview.qq.com,AdBlock +- DOMAIN-SUFFIX,adsview2.qq.com,AdBlock +- DOMAIN-SUFFIX,adsymptotic.com,AdBlock +- DOMAIN-SUFFIX,adsyndication.msn.com,AdBlock +- DOMAIN-SUFFIX,adsys.chinacloudapp.cn,AdBlock +- DOMAIN-SUFFIX,adsys.sinovision.net,AdBlock +- DOMAIN-SUFFIX,adtaily.com,AdBlock +- DOMAIN-SUFFIX,adtechjp.com,AdBlock +- DOMAIN-SUFFIX,adtechus.com,AdBlock +- DOMAIN-SUFFIX,adtest.theonion.com,AdBlock +- DOMAIN-SUFFIX,adthor.com,AdBlock +- DOMAIN-SUFFIX,adtrack.ucweb.com,AdBlock +- DOMAIN-SUFFIX,adtrk.me,AdBlock +- DOMAIN-SUFFIX,adui.tg.meitu.com,AdBlock +- DOMAIN-SUFFIX,adultfriendfinder.com,AdBlock +- DOMAIN-SUFFIX,adups.com,AdBlock +- DOMAIN-SUFFIX,aduu.cn,AdBlock +- DOMAIN-SUFFIX,adv.app.qq.com,AdBlock +- DOMAIN-SUFFIX,adv.ccb.com,AdBlock +- DOMAIN-SUFFIX,adv.fjtv.net,AdBlock +- DOMAIN-SUFFIX,adv.jxnews.com.cn,AdBlock +- DOMAIN-SUFFIX,adv.madserving.com,AdBlock +- DOMAIN-SUFFIX,adv.s8bbs.com,AdBlock +- DOMAIN-SUFFIX,adv.sec.miui.com,AdBlock +- DOMAIN-SUFFIX,adv2.downsave.com,AdBlock +- DOMAIN-SUFFIX,advapi.ahtv.cn,AdBlock +- DOMAIN-SUFFIX,adver.qq.com,AdBlock +- DOMAIN-SUFFIX,adview.cn,AdBlock +- DOMAIN-SUFFIX,advmob.cn,AdBlock +- DOMAIN-SUFFIX,advombat.ru,AdBlock +- DOMAIN-SUFFIX,adwasu.wasu.tv,AdBlock +- DOMAIN-SUFFIX,adweb.test.ximalaya.com,AdBlock +- DOMAIN-SUFFIX,adweb.ximalaya.com,AdBlock +- DOMAIN-SUFFIX,adwhirl.com,AdBlock +- DOMAIN-SUFFIX,adwo.com,AdBlock +- DOMAIN-SUFFIX,adx.adxglobal.com,AdBlock +- DOMAIN-SUFFIX,adx.chip.de,AdBlock +- DOMAIN-SUFFIX,adx.dlads.cn,AdBlock +- DOMAIN-SUFFIX,adx.kat.ph,AdBlock +- DOMAIN-SUFFIX,adx.pro.cn,AdBlock +- DOMAIN-SUFFIX,adx.xiaodutv.com,AdBlock +- DOMAIN-SUFFIX,adx3.iq39.com,AdBlock +- DOMAIN-SUFFIX,adxmi.com,AdBlock +- DOMAIN-SUFFIX,adxpansion.com,AdBlock +- DOMAIN-SUFFIX,adxserver.ad.cmvideo.cn,AdBlock +- DOMAIN-SUFFIX,adytx.com,AdBlock +- DOMAIN-SUFFIX,adyun.com,AdBlock +- DOMAIN-SUFFIX,adz.zwee.ly,AdBlock +- DOMAIN-SUFFIX,adzerk.net,AdBlock +- DOMAIN-SUFFIX,aec.shjk123.net,AdBlock +- DOMAIN-SUFFIX,aecpm.alicdn.com,AdBlock +- DOMAIN-SUFFIX,ae-gb.mgid.com,AdBlock +- DOMAIN-SUFFIX,aercxy.com,AdBlock +- DOMAIN-SUFFIX,aerserv.com,AdBlock +- DOMAIN-SUFFIX,aes01.com,AdBlock +- DOMAIN-SUFFIX,afd.baidu.com,AdBlock +- DOMAIN-SUFFIX,afd.l.google.com,AdBlock +- DOMAIN-SUFFIX,aff.eteachergroup.com,AdBlock +- DOMAIN-SUFFIX,aff.lmgtfy.com,AdBlock +- DOMAIN-SUFFIX,aff.marathonbet.com,AdBlock +- DOMAIN-SUFFIX,aff.svjump.com,AdBlock +- DOMAIN-SUFFIX,affil.mupromo.com,AdBlock +- DOMAIN-SUFFIX,affiliategroove.com,AdBlock +- DOMAIN-SUFFIX,affiliateprogram.keywordspy.com,AdBlock +- DOMAIN-SUFFIX,affiliates.allposters.com,AdBlock +- DOMAIN-SUFFIX,affiliates.goodvibes.com,AdBlock +- DOMAIN-SUFFIX,affiliates.thrixxx.com,AdBlock +- DOMAIN-SUFFIX,affiliatesmedia.sbobet.com,AdBlock +- DOMAIN-SUFFIX,affiliation.fotovista.com,AdBlock +- DOMAIN-SUFFIX,afjlb.com,AdBlock +- DOMAIN-SUFFIX,afp.alicdn.com,AdBlock +- DOMAIN-SUFFIX,afp.chinanews.com,AdBlock +- DOMAIN-SUFFIX,afp.csbew.com,AdBlock +- DOMAIN-SUFFIX,afp.m1905.com,AdBlock +- DOMAIN-SUFFIX,afp.wasu.cn,AdBlock +- DOMAIN-SUFFIX,afp.zol-img.com.cn,AdBlock +- DOMAIN-SUFFIX,afpcreative.wasu.cn,AdBlock +- DOMAIN-SUFFIX,afpimages.eastday,AdBlock +- DOMAIN-SUFFIX,afpimages.eastday.com,AdBlock +- DOMAIN-SUFFIX,afpmm.alicdn.com,AdBlock +- DOMAIN-SUFFIX,afptrack.csbew.com,AdBlock +- DOMAIN-SUFFIX,afs.googlesyndication.com,AdBlock +- DOMAIN-SUFFIX,ag.nukefans.net,AdBlock +- DOMAIN-SUFFIX,agenda.complex.com,AdBlock +- DOMAIN-SUFFIX,ag-gb.marketgid.com,AdBlock +- DOMAIN-SUFFIX,agn.aty.cp45.ott.cibntv.net,AdBlock +- DOMAIN-SUFFIX,agn.aty.snmsohu.aisee.tv,AdBlock +- DOMAIN-SUFFIX,agoodm.m.taobao.com,AdBlock +- DOMAIN-SUFFIX,agr.voiceads.cn,AdBlock +- DOMAIN-SUFFIX,agrant.cn,AdBlock +- DOMAIN-SUFFIX,agrantsem.com,AdBlock +- DOMAIN-SUFFIX,ahhuazhen.com,AdBlock +- DOMAIN-SUFFIX,ahyau.com,AdBlock +- DOMAIN-SUFFIX,ahyuns.com,AdBlock +- DOMAIN-SUFFIX,ai.bioon.com,AdBlock +- DOMAIN-SUFFIX,ai.m.taobao.com,AdBlock +- DOMAIN-SUFFIX,ai.taobao.com,AdBlock +- DOMAIN-SUFFIX,ai.xinju.cc,AdBlock +- DOMAIN-SUFFIX,ai.yimg.jp,AdBlock +- DOMAIN-SUFFIX,aibangzs.com,AdBlock +- DOMAIN-SUFFIX,aiclk.com,AdBlock +- DOMAIN-SUFFIX,aicydb.com,AdBlock +- DOMAIN-SUFFIX,aid.chinayk.com,AdBlock +- DOMAIN-SUFFIX,aider-res.meizu.com,AdBlock +- DOMAIN-SUFFIX,aihaoduo.cn,AdBlock +- DOMAIN-SUFFIX,aikan6.com,AdBlock +- DOMAIN-SUFFIX,ailicee.com,AdBlock +- DOMAIN-SUFFIX,aim.yoyi.com.cn,AdBlock +- DOMAIN-SUFFIX,air.yoyi.com.cn,AdBlock +- DOMAIN-SUFFIX,airpush.com,AdBlock +- DOMAIN-SUFFIX,airpushmarketing.s3.amazonaws.com,AdBlock +- DOMAIN-SUFFIX,ais.abacast.com,AdBlock +- DOMAIN-SUFFIX,aishang.bid,AdBlock +- DOMAIN-SUFFIX,aishiguolong.com,AdBlock +- DOMAIN-SUFFIX,aishowbger.com,AdBlock +- DOMAIN-SUFFIX,aiwen.cc,AdBlock +- DOMAIN-SUFFIX,ajapk.com,AdBlock +- DOMAIN-SUFFIX,ajaxcdn.org,AdBlock +- DOMAIN-SUFFIX,aj-gb.mgid.com,AdBlock +- DOMAIN-SUFFIX,ajhdf.com,AdBlock +- DOMAIN-SUFFIX,ajialive.com,AdBlock +- DOMAIN-SUFFIX,ajnad.aljazeera.net,AdBlock +- DOMAIN-SUFFIX,ajuhd.com,AdBlock +- DOMAIN-SUFFIX,ak.sascdn.com,AdBlock +- DOMAIN-SUFFIX,ak47.cooguo.com,AdBlock +- DOMAIN-SUFFIX,akrwi.cn,AdBlock +- DOMAIN-SUFFIX,akuai.top,AdBlock +- DOMAIN-SUFFIX,akxsrsdbursfpx.bid,AdBlock +- DOMAIN-SUFFIX,al.autohome.com.cn,AdBlock +- DOMAIN-SUFFIX,alertserver.ushaqi.com,AdBlock +- DOMAIN-SUFFIX,alipay.dajiadou6.com,AdBlock +- DOMAIN-SUFFIX,aliqqjd.cn,AdBlock +- DOMAIN-SUFFIX,alisinak.com,AdBlock +- DOMAIN-SUFFIX,alissl.ucdl.pp.uc.cn,AdBlock +- DOMAIN-SUFFIX,alistatic.cn,AdBlock +- DOMAIN-SUFFIX,alitianxia168.com,AdBlock +- DOMAIN-SUFFIX,alitui.weibo.com,AdBlock +- DOMAIN-SUFFIX,aliunion.cn.yahoo.com,AdBlock +- DOMAIN-SUFFIX,aliyuncss.com,AdBlock +- DOMAIN-SUFFIX,aliyunxin.com,AdBlock +- DOMAIN-SUFFIX,all.orfr.adgtw.orangeads.fr,AdBlock +- DOMAIN-SUFFIX,all.rising.com.cn,AdBlock +- DOMAIN-SUFFIX,allnews.uodoo.com,AdBlock +- DOMAIN-SUFFIX,allxin.com,AdBlock +- DOMAIN-SUFFIX,als.baidu.com,AdBlock +- DOMAIN-SUFFIX,alvares.esportsheaven.com,AdBlock +- DOMAIN-SUFFIX,am.6park.com,AdBlock +- DOMAIN-SUFFIX,am.g.ireader.com,AdBlock +- DOMAIN-SUFFIX,am.szhome.com,AdBlock +- DOMAIN-SUFFIX,am.zdnet.com.cn,AdBlock +- DOMAIN-SUFFIX,am15.net,AdBlock +- DOMAIN-SUFFIX,amazingmagics.com,AdBlock +- DOMAIN-SUFFIX,amdc.m.taobao.com,AdBlock +- DOMAIN-SUFFIX,amfi.gou.sogou.com,AdBlock +- DOMAIN-SUFFIX,amiok.org,AdBlock +- DOMAIN-SUFFIX,amps.yoyi.com.cn,AdBlock +- DOMAIN-SUFFIX,ams.fx678.com,AdBlock +- DOMAIN-SUFFIX,ams.lenovomm.com,AdBlock +- DOMAIN-SUFFIX,a-m-s.poco.cn,AdBlock +- DOMAIN-SUFFIX,amz.steamprices.com,AdBlock +- DOMAIN-SUFFIX,an.m.liebao.cn,AdBlock +- DOMAIN-SUFFIX,an.wikigifth.com,AdBlock +- DOMAIN-SUFFIX,an.yandex.ru,AdBlock +- DOMAIN-SUFFIX,ana.tatahn.com,AdBlock +- DOMAIN-SUFFIX,analy.qq.com,AdBlock +- DOMAIN-SUFFIX,andmejs.com,AdBlock +- DOMAIN-SUFFIX,android.push.126.net,AdBlock +- DOMAIN-SUFFIX,android.rqd.qq.com,AdBlock +- DOMAIN-SUFFIX,androidlog.shouji.baofeng.com,AdBlock +- DOMAIN-SUFFIX,android-lrcresource.wps.cn,AdBlock +- DOMAIN-SUFFIX,andrqd.play.aiseet.atianqi.com,AdBlock +- DOMAIN-SUFFIX,anfeng.com,AdBlock +- DOMAIN-SUFFIX,angsrvr.com,AdBlock +- DOMAIN-SUFFIX,anioscp.com,AdBlock +- DOMAIN-SUFFIX,ann5.net,AdBlock +- DOMAIN-SUFFIX,anquan.baidu.com,AdBlock +- DOMAIN-SUFFIX,anquan.org,AdBlock +- DOMAIN-SUFFIX,anreson.net,AdBlock +- DOMAIN-SUFFIX,antivirus.baidu.com,AdBlock +- DOMAIN-SUFFIX,anyangruisi.com,AdBlock +- DOMAIN-SUFFIX,anysdk.com,AdBlock +- DOMAIN-SUFFIX,aodongjiaosu.com,AdBlock +- DOMAIN-SUFFIX,aombjl099.com,AdBlock +- DOMAIN-SUFFIX,aoodoo.feng.com,AdBlock +- DOMAIN-SUFFIX,aoodoo.weiphone.com,AdBlock +- DOMAIN-SUFFIX,aos.wall.youmi.net,AdBlock +- DOMAIN-SUFFIX,aos-creative.prf.hn,AdBlock +- DOMAIN-SUFFIX,apas.aipai.com,AdBlock +- DOMAIN-SUFFIX,api.0.0.0.0.cn,AdBlock +- DOMAIN-SUFFIX,api.adv.ott.cibntv.net,AdBlock +- DOMAIN-SUFFIX,api.ahjinshu.com,AdBlock +- DOMAIN-SUFFIX,api.android.dianru.com,AdBlock +- DOMAIN-SUFFIX,api.anti.wauee.com,AdBlock +- DOMAIN-SUFFIX,api.appodeal.com,AdBlock +- DOMAIN-SUFFIX,api.apps.sina.cn,AdBlock +- DOMAIN-SUFFIX,api.bailingjiankang.com,AdBlock +- DOMAIN-SUFFIX,api.bs.zui.com,AdBlock +- DOMAIN-SUFFIX,api.cmt.mob.com,AdBlock +- DOMAIN-SUFFIX,api.coolguang.com,AdBlock +- DOMAIN-SUFFIX,api.dewmobile.net,AdBlock +- DOMAIN-SUFFIX,api.dianru.com,AdBlock +- DOMAIN-SUFFIX,api.doumob.com,AdBlock +- DOMAIN-SUFFIX,api.dreamfull.cn,AdBlock +- DOMAIN-SUFFIX,api.dsp.yhd.com,AdBlock +- DOMAIN-SUFFIX,api.exc.mob.com,AdBlock +- DOMAIN-SUFFIX,api.g1.junfull.com,AdBlock +- DOMAIN-SUFFIX,api.g2.junfull.com,AdBlock +- DOMAIN-SUFFIX,api.gi.igexin.com,AdBlock +- DOMAIN-SUFFIX,api.goulegu.com,AdBlock +- DOMAIN-SUFFIX,api.growingio.com,AdBlock +- DOMAIN-SUFFIX,api.iapps.ifeng.com,AdBlock +- DOMAIN-SUFFIX,api.iimedia.cn,AdBlock +- DOMAIN-SUFFIX,api.ijunhai.com,AdBlock +- DOMAIN-SUFFIX,api.itaoxiaoshuo.com,AdBlock +- DOMAIN-SUFFIX,api.joybj.com,AdBlock +- DOMAIN-SUFFIX,api.jr.mi.com,AdBlock +- DOMAIN-SUFFIX,api.ketedata.com,AdBlock +- DOMAIN-SUFFIX,api.koudaikj.com,AdBlock +- DOMAIN-SUFFIX,api.leadbolt.net,AdBlock +- DOMAIN-SUFFIX,api.mobgi.com,AdBlock +- DOMAIN-SUFFIX,api.mobula.sdk.duapps.com,AdBlock +- DOMAIN-SUFFIX,api.moogos.com,AdBlock +- DOMAIN-SUFFIX,api.mp.uc.cn,AdBlock +- DOMAIN-SUFFIX,api.newad.ifeng.com,AdBlock +- DOMAIN-SUFFIX,api.newbelden.com,AdBlock +- DOMAIN-SUFFIX,api.open.uc.cn,AdBlock +- DOMAIN-SUFFIX,api.pingstart.com,AdBlock +- DOMAIN-SUFFIX,api.ppoi.org,AdBlock +- DOMAIN-SUFFIX,api.primecaster.net,AdBlock +- DOMAIN-SUFFIX,api.push.daoyoudao.com,AdBlock +- DOMAIN-SUFFIX,api.ra2.xlmc.sec.miui.com,AdBlock +- DOMAIN-SUFFIX,api.rees46.com,AdBlock +- DOMAIN-SUFFIX,api.rideraid.net,AdBlock +- DOMAIN-SUFFIX,api.share.mob.com,AdBlock +- DOMAIN-SUFFIX,api.shuzilm.cn,AdBlock +- DOMAIN-SUFFIX,api.similarweb.com,AdBlock +- DOMAIN-SUFFIX,api.tr.blismedia.com,AdBlock +- DOMAIN-SUFFIX,api.tw06.xlmc.sec.miui.com,AdBlock +- DOMAIN-SUFFIX,api.ujian.cc,AdBlock +- DOMAIN-SUFFIX,api.union.vip.com,AdBlock +- DOMAIN-SUFFIX,api.uniplayad.com,AdBlock +- DOMAIN-SUFFIX,api.userstyles.org,AdBlock +- DOMAIN-SUFFIX,api.viglink.com,AdBlock +- DOMAIN-SUFFIX,api.waptest.taobao.com,AdBlock +- DOMAIN-SUFFIX,api.whizzone.com,AdBlock +- DOMAIN-SUFFIX,api.xk.miui.com,AdBlock +- DOMAIN-SUFFIX,api.y.igexin.com,AdBlock +- DOMAIN-SUFFIX,api.youxiaoad.com,AdBlock +- DOMAIN-SUFFIX,api.zol.com,AdBlock +- DOMAIN-SUFFIX,api2.play.cn,AdBlock +- DOMAIN-SUFFIX,api-flow.flyme.cn,AdBlock +- DOMAIN-SUFFIX,api-game.meizu.com,AdBlock +- DOMAIN-SUFFIX,apihk.growingio.com,AdBlock +- DOMAIN-SUFFIX,api-push.meizu.com,AdBlock +- DOMAIN-SUFFIX,api-shoulei-ssl.xunlei.com,AdBlock +- DOMAIN-SUFFIX,apisoft.df0535.com,AdBlock +- DOMAIN-SUFFIX,apk.idate520.com,AdBlock +- DOMAIN-SUFFIX,apk.supfast.net,AdBlock +- DOMAIN-SUFFIX,apkdo.com,AdBlock +- DOMAIN-SUFFIX,apkinfo.voole.com,AdBlock +- DOMAIN-SUFFIX,apklog.cp11.ott.cibntv.net,AdBlock +- DOMAIN-SUFFIX,apnmedia.ask.com,AdBlock +- DOMAIN-SUFFIX,apns.ios.ijinshan.com,AdBlock +- DOMAIN-SUFFIX,apoll.m.taobao.com,AdBlock +- DOMAIN-SUFFIX,apollo.caixin.com,AdBlock +- DOMAIN-SUFFIX,app.3987.com,AdBlock +- DOMAIN-SUFFIX,app.9yyg.cn,AdBlock +- DOMAIN-SUFFIX,app.abc000.today,AdBlock +- DOMAIN-SUFFIX,app.acm.dzwww.com,AdBlock +- DOMAIN-SUFFIX,app.adjust.com,AdBlock +- DOMAIN-SUFFIX,app.eduancm.com,AdBlock +- DOMAIN-SUFFIX,app.houyi.baofeng.net,AdBlock +- DOMAIN-SUFFIX,app.hytdsm.com,AdBlock +- DOMAIN-SUFFIX,app.ibaiducdn.com,AdBlock +- DOMAIN-SUFFIX,app.jgyee.com,AdBlock +- DOMAIN-SUFFIX,app.jiuzhilan.com,AdBlock +- DOMAIN-SUFFIX,app.juwang.com,AdBlock +- DOMAIN-SUFFIX,app.lz55.cn,AdBlock +- DOMAIN-SUFFIX,app.moji001.com,AdBlock +- DOMAIN-SUFFIX,app.starschina.com,AdBlock +- DOMAIN-SUFFIX,app.tanwan.com,AdBlock +- DOMAIN-SUFFIX,app.uu.cc,AdBlock +- DOMAIN-SUFFIX,app.waps.cn,AdBlock +- DOMAIN-SUFFIX,app.wapx.cn,AdBlock +- DOMAIN-SUFFIX,app.wumii.com,AdBlock +- DOMAIN-SUFFIX,app.xizi.com,AdBlock +- DOMAIN-SUFFIX,app.xyjqy.com,AdBlock +- DOMAIN-SUFFIX,app01.nodes.gslb.mi-idc.com,AdBlock +- DOMAIN-SUFFIX,app02.nodes.gslb.mi-idc.com,AdBlock +- DOMAIN-SUFFIX,appads.com,AdBlock +- DOMAIN-SUFFIX,appboy.com,AdBlock +- DOMAIN-SUFFIX,appc.baidu.com,AdBlock +- DOMAIN-SUFFIX,appcdn.wapx.cn,AdBlock +- DOMAIN-SUFFIX,appcdn.wapx.com,AdBlock +- DOMAIN-SUFFIX,appcpa.net,AdBlock +- DOMAIN-SUFFIX,appdriver.cn,AdBlock +- DOMAIN-SUFFIX,appdriver.com.cn,AdBlock +- DOMAIN-SUFFIX,appfh.com,AdBlock +- DOMAIN-SUFFIX,app-g.39.net,AdBlock +- DOMAIN-SUFFIX,appget.cn,AdBlock +- DOMAIN-SUFFIX,appgift.sinaapp.com,AdBlock +- DOMAIN-SUFFIX,appjiagu.com,AdBlock +- DOMAIN-SUFFIX,applifier.com,AdBlock +- DOMAIN-SUFFIX,applog.uc.cn,AdBlock +- DOMAIN-SUFFIX,applogapi.autohome.com.cn,AdBlock +- DOMAIN-SUFFIX,applogios.uc.cn,AdBlock +- DOMAIN-SUFFIX,app-measurement.com,AdBlock +- DOMAIN-SUFFIX,app-monitor.ele.me,AdBlock +- DOMAIN-SUFFIX,appnext.com,AdBlock +- DOMAIN-SUFFIX,appodealx.com,AdBlock +- DOMAIN-SUFFIX,apppic.yingyongbei.com,AdBlock +- DOMAIN-SUFFIX,apps.mobilityware.com,AdBlock +- DOMAIN-SUFFIX,apps.outfit7.com,AdBlock +- DOMAIN-SUFFIX,apps.supfast.net,AdBlock +- DOMAIN-SUFFIX,apps2.outfit7.com,AdBlock +- DOMAIN-SUFFIX,appsdk.tanv.com,AdBlock +- DOMAIN-SUFFIX,appservices.comcsoft.com,AdBlock +- DOMAIN-SUFFIX,appspromote.wostore.cn,AdBlock +- DOMAIN-SUFFIX,appsrv1.madserving.com,AdBlock +- DOMAIN-SUFFIX,appsrv4.madserving.com,AdBlock +- DOMAIN-SUFFIX,appsupdate.sinaapp.com,AdBlock +- DOMAIN-SUFFIX,appsupport.stargame.com,AdBlock +- DOMAIN-SUFFIX,apptentive.com,AdBlock +- DOMAIN-SUFFIX,appuu.cn,AdBlock +- DOMAIN-SUFFIX,apt.qumi.com,AdBlock +- DOMAIN-SUFFIX,aqgyju.cn,AdBlock +- DOMAIN-SUFFIX,aqqgli3vle.bid,AdBlock +- DOMAIN-SUFFIX,aqw.quanliyouxi.cn,AdBlock +- DOMAIN-SUFFIX,ar.atwola.com,AdBlock +- DOMAIN-SUFFIX,ar1.atwola.com,AdBlock +- DOMAIN-SUFFIX,ar7.atwola.com,AdBlock +- DOMAIN-SUFFIX,ar9.atwola.com,AdBlock +- DOMAIN-SUFFIX,aralego.com,AdBlock +- DOMAIN-SUFFIX,ard.ihookup.com,AdBlock +- DOMAIN-SUFFIX,ard.sweetdiscreet.com,AdBlock +- DOMAIN-SUFFIX,ard.yahoo.co.jp,AdBlock +- DOMAIN-SUFFIX,ardmall.com,AdBlock +- DOMAIN-SUFFIX,arealx.com,AdBlock +- DOMAIN-SUFFIX,aries.mzres.com,AdBlock +- DOMAIN-SUFFIX,ark.cocounion.com,AdBlock +- DOMAIN-SUFFIX,ark.cp21.ott.cibntv.net,AdBlock +- DOMAIN-SUFFIX,art.theta.sogoucdn.com,AdBlock +- DOMAIN-SUFFIX,as.bjmama.net,AdBlock +- DOMAIN-SUFFIX,as.casalemedia.com,AdBlock +- DOMAIN-SUFFIX,as.inbox.com,AdBlock +- DOMAIN-SUFFIX,as.kejet.com,AdBlock +- DOMAIN-SUFFIX,as.kejet.net,AdBlock +- DOMAIN-SUFFIX,as.sinahk.net,AdBlock +- DOMAIN-SUFFIX,as.trklinklog.com,AdBlock +- DOMAIN-SUFFIX,as.yuewz.com,AdBlock +- DOMAIN-SUFFIX,asd.projectfreetv.so,AdBlock +- DOMAIN-SUFFIX,asearch.alicdn.com,AdBlock +- DOMAIN-SUFFIX,ashiping.com,AdBlock +- DOMAIN-SUFFIX,ashow.pcpop.com,AdBlock +- DOMAIN-SUFFIX,asia.marketo.com,AdBlock +- DOMAIN-SUFFIX,ask.gaykes.com,AdBlock +- DOMAIN-SUFFIX,assets.210189.com,AdBlock +- DOMAIN-SUFFIX,assets.2343sdxs.com,AdBlock +- DOMAIN-SUFFIX,assets.258pcf.com,AdBlock +- DOMAIN-SUFFIX,assets.258ydh.com,AdBlock +- DOMAIN-SUFFIX,assets.easou.com,AdBlock +- DOMAIN-SUFFIX,asv.nuggad.net,AdBlock +- DOMAIN-SUFFIX,aswgbzsw.xingtangshuo.com,AdBlock +- DOMAIN-SUFFIX,aswl.d3kdh34.pw,AdBlock +- DOMAIN-SUFFIX,aswl.dfs3e4.pw,AdBlock +- DOMAIN-SUFFIX,aswl.zjhim.com,AdBlock +- DOMAIN-SUFFIX,aswlx.cn,AdBlock +- DOMAIN-SUFFIX,at.atwola.com,AdBlock +- DOMAIN-SUFFIX,at.mct01.com,AdBlock +- DOMAIN-SUFFIX,at98.com,AdBlock +- DOMAIN-SUFFIX,atanx.alicdn.com,AdBlock +- DOMAIN-SUFFIX,atanx2.alicdn.com,AdBlock +- DOMAIN-SUFFIX,atas.io,AdBlock +- DOMAIN-SUFFIX,atcryp.com,AdBlock +- DOMAIN-SUFFIX,atdmt.com,AdBlock +- DOMAIN-SUFFIX,athena.wan.sogou.com,AdBlock +- DOMAIN-SUFFIX,atiws.aipai.com,AdBlock +- DOMAIN-SUFFIX,atm.punchbox.org,AdBlock +- DOMAIN-SUFFIX,atm.sina.com,AdBlock +- DOMAIN-SUFFIX,atm.yoyi.com.cn,AdBlock +- DOMAIN-SUFFIX,atomicblast.lol,AdBlock +- DOMAIN-SUFFIX,atplay.cn,AdBlock +- DOMAIN-SUFFIX,att.stargame.com,AdBlock +- DOMAIN-SUFFIX,attach.s8bbs.com,AdBlock +- DOMAIN-SUFFIX,au.youmi.net,AdBlock +- DOMAIN-SUFFIX,audience.network,AdBlock +- DOMAIN-SUFFIX,authedmine.com,AdBlock +- DOMAIN-SUFFIX,avn.innity.com,AdBlock +- DOMAIN-SUFFIX,avpa.dzone.com,AdBlock +- DOMAIN-SUFFIX,avualrhg9p.bid,AdBlock +- DOMAIN-SUFFIX,aw.kejet.net,AdBlock +- DOMAIN-SUFFIX,award.sitekeuring.net,AdBlock +- DOMAIN-SUFFIX,awempire.com,AdBlock +- DOMAIN-SUFFIX,awkjs.com,AdBlock +- DOMAIN-SUFFIX,awyys.com,AdBlock +- DOMAIN-SUFFIX,ax.120ask.com,AdBlock +- DOMAIN-SUFFIX,ax.ggfeng.com,AdBlock +- DOMAIN-SUFFIX,axhxa.com,AdBlock +- DOMAIN-SUFFIX,axiba66.com,AdBlock +- DOMAIN-SUFFIX,axkxy.com,AdBlock +- DOMAIN-SUFFIX,ayabreya.xyz,AdBlock +- DOMAIN-SUFFIX,b.53yao.com,AdBlock +- DOMAIN-SUFFIX,b.77vcd.com,AdBlock +- DOMAIN-SUFFIX,b.9dreams.net,AdBlock +- DOMAIN-SUFFIX,b.ads1.msn.com,AdBlock +- DOMAIN-SUFFIX,b.aowugame.com,AdBlock +- DOMAIN-SUFFIX,b.babylon.com,AdBlock +- DOMAIN-SUFFIX,b.baiy.net,AdBlock +- DOMAIN-SUFFIX,b.bdstatic.com,AdBlock +- DOMAIN-SUFFIX,b.bst.126.net,AdBlock +- DOMAIN-SUFFIX,b.clkservice.youdao.com,AdBlock +- DOMAIN-SUFFIX,b.code.tanwanyx.com,AdBlock +- DOMAIN-SUFFIX,b.cyone.com.cn,AdBlock +- DOMAIN-SUFFIX,b.epinv.com,AdBlock +- DOMAIN-SUFFIX,b.flyreading.cn,AdBlock +- DOMAIN-SUFFIX,b.gwylm.com,AdBlock +- DOMAIN-SUFFIX,b.kuangtuiguoo18888.com,AdBlock +- DOMAIN-SUFFIX,b.livesport.eu,AdBlock +- DOMAIN-SUFFIX,b.localpages.com,AdBlock +- DOMAIN-SUFFIX,b.nvrentao8.com,AdBlock +- DOMAIN-SUFFIX,b.qchannel03.cn,AdBlock +- DOMAIN-SUFFIX,b.rifub.com,AdBlock +- DOMAIN-SUFFIX,b.scorecardresearch.com,AdBlock +- DOMAIN-SUFFIX,b.thefile.me,AdBlock +- DOMAIN-SUFFIX,b.xcafe.com,AdBlock +- DOMAIN-SUFFIX,b0.qinsx.cn,AdBlock +- DOMAIN-SUFFIX,b1.51scw.net,AdBlock +- DOMAIN-SUFFIX,b1.91jucai.com,AdBlock +- DOMAIN-SUFFIX,b1.c1km4.com,AdBlock +- DOMAIN-SUFFIX,b17.8794.cn,AdBlock +- DOMAIN-SUFFIX,b17.shangc.net,AdBlock +- DOMAIN-SUFFIX,b17.xiumu.cn,AdBlock +- DOMAIN-SUFFIX,b1sync.zemanta.com,AdBlock +- DOMAIN-SUFFIX,b4xuj.zzhhts.com,AdBlock +- DOMAIN-SUFFIX,b7nkd.cn,AdBlock +- DOMAIN-SUFFIX,b92.putniktravel.com,AdBlock +- DOMAIN-SUFFIX,b9377h.com,AdBlock +- DOMAIN-SUFFIX,b99u.top,AdBlock +- DOMAIN-SUFFIX,ba.ccm2.net,AdBlock +- DOMAIN-SUFFIX,ba.fqzds.com,AdBlock +- DOMAIN-SUFFIX,ba.kioskea.net,AdBlock +- DOMAIN-SUFFIX,baby.yf898.com,AdBlock +- DOMAIN-SUFFIX,backup.lumion3d.com,AdBlock +- DOMAIN-SUFFIX,backup.lumion3d.net,AdBlock +- DOMAIN-SUFFIX,bad1.51gxqm.com,AdBlock +- DOMAIN-SUFFIX,badad.googleplex.com,AdBlock +- DOMAIN-SUFFIX,badao37.net,AdBlock +- DOMAIN-SUFFIX,bai3.gushiwen.org,AdBlock +- DOMAIN-SUFFIX,baiapk.com,AdBlock +- DOMAIN-SUFFIX,baichuan.baidu.com,AdBlock +- DOMAIN-SUFFIX,baidu.cybcyw.com,AdBlock +- DOMAIN-SUFFIX,baidu.dsp.tansuotv.com,AdBlock +- DOMAIN-SUFFIX,baidu.greenxf.cn,AdBlock +- DOMAIN-SUFFIX,baidu.jz5u.net,AdBlock +- DOMAIN-SUFFIX,baiduace.com,AdBlock +- DOMAIN-SUFFIX,baidujs.cnys.com,AdBlock +- DOMAIN-SUFFIX,baidulao.com,AdBlock +- DOMAIN-SUFFIX,baidustatic.com,AdBlock +- DOMAIN-SUFFIX,baidut.github.io,AdBlock +- DOMAIN-SUFFIX,baidutv.baidu.com,AdBlock +- DOMAIN-SUFFIX,baidu-union-js.xiachufang.com,AdBlock +- DOMAIN-SUFFIX,baidu-union-pos.xiachufang.com,AdBlock +- DOMAIN-SUFFIX,baiduyubaidu.com,AdBlock +- DOMAIN-SUFFIX,baiduzhidahao.cc,AdBlock +- DOMAIN-SUFFIX,baifen.music.baidu.com,AdBlock +- DOMAIN-SUFFIX,baifendian.com,AdBlock +- DOMAIN-SUFFIX,baigm.com,AdBlock +- DOMAIN-SUFFIX,baiwanchuangyi.com,AdBlock +- DOMAIN-SUFFIX,bam.nr-data.net,AdBlock +- DOMAIN-SUFFIX,banlv.baidu.com,AdBlock +- DOMAIN-SUFFIX,banmamedia.com,AdBlock +- DOMAIN-SUFFIX,bannedbook.org,AdBlock +- DOMAIN-SUFFIX,banner.101xp.com,AdBlock +- DOMAIN-SUFFIX,banner.3ddownloads.com,AdBlock +- DOMAIN-SUFFIX,banner.automotiveworld.com,AdBlock +- DOMAIN-SUFFIX,banner.cooguo.com,AdBlock +- DOMAIN-SUFFIX,banner.europacasino.com,AdBlock +- DOMAIN-SUFFIX,banner.itweb.co.za,AdBlock +- DOMAIN-SUFFIX,banner.telefragged.com,AdBlock +- DOMAIN-SUFFIX,banner.titancasino.com,AdBlock +- DOMAIN-SUFFIX,banner1.pornhost.com,AdBlock +- DOMAIN-SUFFIX,banners.beevpn.com,AdBlock +- DOMAIN-SUFFIX,banners.beted.com,AdBlock +- DOMAIN-SUFFIX,banners.cams.com,AdBlock +- DOMAIN-SUFFIX,banners.clubworldgroup.com,AdBlock +- DOMAIN-SUFFIX,banners.expressindia.com,AdBlock +- DOMAIN-SUFFIX,banners.itweb.co.za,AdBlock +- DOMAIN-SUFFIX,banners.playocio.com,AdBlock +- DOMAIN-SUFFIX,bannershotlink.perfectgonzo.com,AdBlock +- DOMAIN-SUFFIX,baoyatu.cc,AdBlock +- DOMAIN-SUFFIX,bar.baidu.com,AdBlock +- DOMAIN-SUFFIX,bartender.cc,AdBlock +- DOMAIN-SUFFIX,base.filedot.xyz,AdBlock +- DOMAIN-SUFFIX,bat.bing.com,AdBlock +- DOMAIN-SUFFIX,bax.xiawu.com,AdBlock +- DOMAIN-SUFFIX,baxf.m.shuhuangge.org,AdBlock +- DOMAIN-SUFFIX,bay.xiawu.com,AdBlock +- DOMAIN-SUFFIX,baycode.cn,AdBlock +- DOMAIN-SUFFIX,bayimob.com,AdBlock +- DOMAIN-SUFFIX,bazinga.mse.sogou.com,AdBlock +- DOMAIN-SUFFIX,bb.tuku.cc,AdBlock +- DOMAIN-SUFFIX,bb1429.com,AdBlock +- DOMAIN-SUFFIX,bbcc.yxlady.com,AdBlock +- DOMAIN-SUFFIX,bbcoe.cn,AdBlock +- DOMAIN-SUFFIX,bbdm.051661.com,AdBlock +- DOMAIN-SUFFIX,bbsimages.zkxf119.com,AdBlock +- DOMAIN-SUFFIX,bc.geocities.yahoo.co.jp,AdBlock +- DOMAIN-SUFFIX,bccyyc.com,AdBlock +- DOMAIN-SUFFIX,bcjjg.bugsevent.com,AdBlock +- DOMAIN-SUFFIX,bcjxf.bugsevent.com,AdBlock +- DOMAIN-SUFFIX,bd.ershenghuo.com,AdBlock +- DOMAIN-SUFFIX,bd.gow100.com,AdBlock +- DOMAIN-SUFFIX,bd.haomagujia.com,AdBlock +- DOMAIN-SUFFIX,bd.soarfi.cn,AdBlock +- DOMAIN-SUFFIX,bd.wayqq.cn,AdBlock +- DOMAIN-SUFFIX,bd01.daqiso.com,AdBlock +- DOMAIN-SUFFIX,bd1.365qilu.com,AdBlock +- DOMAIN-SUFFIX,bd1.52che.com,AdBlock +- DOMAIN-SUFFIX,bd1.fengdu100.com,AdBlock +- DOMAIN-SUFFIX,bd1.flfgw.cn,AdBlock +- DOMAIN-SUFFIX,bd1.home8080.cn,AdBlock +- DOMAIN-SUFFIX,bd1.jobui.com,AdBlock +- DOMAIN-SUFFIX,bd1.nipic.com,AdBlock +- DOMAIN-SUFFIX,bd1.nxing.cn,AdBlock +- DOMAIN-SUFFIX,bd1.pipaw.com,AdBlock +- DOMAIN-SUFFIX,bd1.szhk.com,AdBlock +- DOMAIN-SUFFIX,bd1.wowoqq.com,AdBlock +- DOMAIN-SUFFIX,bd1.xiangha.com,AdBlock +- DOMAIN-SUFFIX,bd2.52che.com,AdBlock +- DOMAIN-SUFFIX,bd2.flfgw.cn,AdBlock +- DOMAIN-SUFFIX,bd2.home8080.cn,AdBlock +- DOMAIN-SUFFIX,bd2.jobui.com,AdBlock +- DOMAIN-SUFFIX,bd2.nipic.com,AdBlock +- DOMAIN-SUFFIX,bd2.pipaw.com,AdBlock +- DOMAIN-SUFFIX,bd3.chuiyue.com,AdBlock +- DOMAIN-SUFFIX,bd3.jobui.com,AdBlock +- DOMAIN-SUFFIX,bd4.chuiyue.com,AdBlock +- DOMAIN-SUFFIX,bdad.hao224.com,AdBlock +- DOMAIN-SUFFIX,bdcode.gaosan.com,AdBlock +- DOMAIN-SUFFIX,bdcode.youke.com,AdBlock +- DOMAIN-SUFFIX,bdd.hainan.net,AdBlock +- DOMAIN-SUFFIX,bddm.999d.com,AdBlock +- DOMAIN-SUFFIX,bdfpb1.8684.com,AdBlock +- DOMAIN-SUFFIX,bdfpb2.8684.com,AdBlock +- DOMAIN-SUFFIX,bdjiaoben.wmxa.cn,AdBlock +- DOMAIN-SUFFIX,bdjs.120askimages.com,AdBlock +- DOMAIN-SUFFIX,bdjs.6237237.com,AdBlock +- DOMAIN-SUFFIX,bdjs.99.com.cn,AdBlock +- DOMAIN-SUFFIX,bdjs.999d.com,AdBlock +- DOMAIN-SUFFIX,bd-js.baixing.net,AdBlock +- DOMAIN-SUFFIX,bdjs.faxingzhan.com,AdBlock +- DOMAIN-SUFFIX,bdjs.itechwall.com,AdBlock +- DOMAIN-SUFFIX,bdjs.ixiumei.com,AdBlock +- DOMAIN-SUFFIX,bdjs.jb51.net,AdBlock +- DOMAIN-SUFFIX,bdjs.kaixin100.com,AdBlock +- DOMAIN-SUFFIX,bdjs.laonanren.com,AdBlock +- DOMAIN-SUFFIX,bdjs.ylq.com,AdBlock +- DOMAIN-SUFFIX,bdjs1.ixiumei.com,AdBlock +- DOMAIN-SUFFIX,bdlm.120askimages.com,AdBlock +- DOMAIN-SUFFIX,bdlm1.hc360.com,AdBlock +- DOMAIN-SUFFIX,bdlncs1.familydoctor.com.cn,AdBlock +- DOMAIN-SUFFIX,bdmjs.xywy.com,AdBlock +- DOMAIN-SUFFIX,bdmm.xywy.com,AdBlock +- DOMAIN-SUFFIX,bdplus.baidu.com,AdBlock +- DOMAIN-SUFFIX,bdpuaw.com,AdBlock +- DOMAIN-SUFFIX,bd-s.baixing.net,AdBlock +- DOMAIN-SUFFIX,bds.hainan.net,AdBlock +- DOMAIN-SUFFIX,bds.soarfi.cn,AdBlock +- DOMAIN-SUFFIX,bdtongfei.cn,AdBlock +- DOMAIN-SUFFIX,bduserlog.eastmoney.com,AdBlock +- DOMAIN-SUFFIX,beacon.gtimg.com,AdBlock +- DOMAIN-SUFFIX,beacon.krxd.net,AdBlock +- DOMAIN-SUFFIX,beacon.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,beacon.tingyun.com,AdBlock +- DOMAIN-SUFFIX,beacon-us-sjc1.rubiconproject.com,AdBlock +- DOMAIN-SUFFIX,beap.adss.yahoo.com,AdBlock +- DOMAIN-SUFFIX,beap-bc.yahoo.com,AdBlock +- DOMAIN-SUFFIX,bebelait.com,AdBlock +- DOMAIN-SUFFIX,becode.qiushibaike.com,AdBlock +- DOMAIN-SUFFIX,beeho.site,AdBlock +- DOMAIN-SUFFIX,beerto.cn,AdBlock +- DOMAIN-SUFFIX,beha.ksmobile.com,AdBlock +- DOMAIN-SUFFIX,behe.com,AdBlock +- DOMAIN-SUFFIX,beilamusi.com,AdBlock +- DOMAIN-SUFFIX,beintoo.com,AdBlock +- DOMAIN-SUFFIX,benshiw.net,AdBlock +- DOMAIN-SUFFIX,bepolite.eu,AdBlock +- DOMAIN-SUFFIX,bes-progfree.com,AdBlock +- DOMAIN-SUFFIX,bet36500050.com,AdBlock +- DOMAIN-SUFFIX,beta.vpon.com,AdBlock +- DOMAIN-SUFFIX,betsonsport.ru,AdBlock +- DOMAIN-SUFFIX,betterzip.net,AdBlock +- DOMAIN-SUFFIX,bewaycare.com,AdBlock +- DOMAIN-SUFFIX,beyondcompare.cc,AdBlock +- DOMAIN-SUFFIX,bfdcdn.com,AdBlock +- DOMAIN-SUFFIX,bglog.bitauto.com,AdBlock +- DOMAIN-SUFFIX,bgrndi.com,AdBlock +- DOMAIN-SUFFIX,bh.contextweb.com,AdBlock +- DOMAIN-SUFFIX,bhjac.azvub.cn,AdBlock +- DOMAIN-SUFFIX,bianxianmao.com,AdBlock +- DOMAIN-SUFFIX,biddingos.com,AdBlock +- DOMAIN-SUFFIX,biddingx.com,AdBlock +- DOMAIN-SUFFIX,bidvertiser.com,AdBlock +- DOMAIN-SUFFIX,bigbos.top,AdBlock +- DOMAIN-SUFFIX,bigboy.eurogamer.net,AdBlock +- DOMAIN-SUFFIX,billionfocus.com,AdBlock +- DOMAIN-SUFFIX,binaryage-leechgate.herokuapp.com,AdBlock +- DOMAIN-SUFFIX,bingdianhuanyuan.cn,AdBlock +- DOMAIN-SUFFIX,bingyinq.com,AdBlock +- DOMAIN-SUFFIX,biq.keefung-zs.com,AdBlock +- DOMAIN-SUFFIX,bite.theta.sogoucdn.com,AdBlock +- DOMAIN-SUFFIX,bitsumactivationserver.com,AdBlock +- DOMAIN-SUFFIX,bivitr.com,AdBlock +- DOMAIN-SUFFIX,bixia.fymm.cn,AdBlock +- DOMAIN-SUFFIX,biyibia.com,AdBlock +- DOMAIN-SUFFIX,biz.gexing.com,AdBlock +- DOMAIN-SUFFIX,biz.live.xunlei.com,AdBlock +- DOMAIN-SUFFIX,biz.vpon.com,AdBlock +- DOMAIN-SUFFIX,biz.weibo.com,AdBlock +- DOMAIN-SUFFIX,biz37.net,AdBlock +- DOMAIN-SUFFIX,bizanti.youwatch.org,AdBlock +- DOMAIN-SUFFIX,bj.imp.voiceads.cn,AdBlock +- DOMAIN-SUFFIX,bj14.9669.cn,AdBlock +- DOMAIN-SUFFIX,bjcathay.com,AdBlock +- DOMAIN-SUFFIX,bjcu.u3.ucweb.com,AdBlock +- DOMAIN-SUFFIX,bjedpt.com,AdBlock +- DOMAIN-SUFFIX,bjs.9669.cn,AdBlock +- DOMAIN-SUFFIX,bkdg.net,AdBlock +- DOMAIN-SUFFIX,bl.wavecdn.de,AdBlock +- DOMAIN-SUFFIX,bla.gtimg.com,AdBlock +- DOMAIN-SUFFIX,blaaaa12.googlecode.com,AdBlock +- DOMAIN-SUFFIX,blb.winasdaq.com,AdBlock +- DOMAIN-SUFFIX,bllbaby.cn,AdBlock +- DOMAIN-SUFFIX,blogad01.myweb.hinet.net,AdBlock +- DOMAIN-SUFFIX,blogad02.myweb.hinet.net,AdBlock +- DOMAIN-SUFFIX,bluekai.com,AdBlock +- DOMAIN-SUFFIX,bluhostedbanners.blucigs.com,AdBlock +- DOMAIN-SUFFIX,bmg.wnbfw.com,AdBlock +- DOMAIN-SUFFIX,bmp.ali213.net,AdBlock +- DOMAIN-SUFFIX,bmp1.ali213.net,AdBlock +- DOMAIN-SUFFIX,bmw2ep.paomifen.cn,AdBlock +- DOMAIN-SUFFIX,bnrs.ilm.ee,AdBlock +- DOMAIN-SUFFIX,boardx.huanqiu.com,AdBlock +- DOMAIN-SUFFIX,bob.crazyshit.com,AdBlock +- DOMAIN-SUFFIX,bobo.163.com,AdBlock +- DOMAIN-SUFFIX,bolt.jebe.renren.com,AdBlock +- DOMAIN-SUFFIX,borsendental.com,AdBlock +- DOMAIN-SUFFIX,bosiwangzi.cn,AdBlock +- DOMAIN-SUFFIX,box.anchorfree.net,AdBlock +- DOMAIN-SUFFIX,boxercrazy.org,AdBlock +- DOMAIN-SUFFIX,boxshows.com,AdBlock +- DOMAIN-SUFFIX,boyxu.cn,AdBlock +- DOMAIN-SUFFIX,bp.mobad.ijinshan.com,AdBlock +- DOMAIN-SUFFIX,br.blackfling.com,AdBlock +- DOMAIN-SUFFIX,br.fling.com,AdBlock +- DOMAIN-SUFFIX,br.realitykings.com,AdBlock +- DOMAIN-SUFFIX,brakefluid.website,AdBlock +- DOMAIN-SUFFIX,brand.sogou.com,AdBlock +- DOMAIN-SUFFIX,brandshow.58.com,AdBlock +- DOMAIN-SUFFIX,brcache.madthumbs.com,AdBlock +- DOMAIN-SUFFIX,breeze.olclient.baofeng.com,AdBlock +- DOMAIN-SUFFIX,breezily168.com,AdBlock +- DOMAIN-SUFFIX,brizads.com,AdBlock +- DOMAIN-SUFFIX,bro.flyme.cn,AdBlock +- DOMAIN-SUFFIX,bryonypie.com,AdBlock +- DOMAIN-SUFFIX,bs.5442.com,AdBlock +- DOMAIN-SUFFIX,bs.serving-sys.com,AdBlock +- DOMAIN-SUFFIX,bs14.9669.cn,AdBlock +- DOMAIN-SUFFIX,bsch.serving-sys.com,AdBlock +- DOMAIN-SUFFIX,bsdev.cn,AdBlock +- DOMAIN-SUFFIX,bshare.cn,AdBlock +- DOMAIN-SUFFIX,bshare.optimix.asia,AdBlock +- DOMAIN-SUFFIX,bsiet.husky.sogou.com,AdBlock +- DOMAIN-SUFFIX,bss.pandora.xiaomi.com,AdBlock +- DOMAIN-SUFFIX,bstatic.1kejian.com,AdBlock +- DOMAIN-SUFFIX,bstatic.diyifanwen.com,AdBlock +- DOMAIN-SUFFIX,bt.xitongmonitor.com,AdBlock +- DOMAIN-SUFFIX,bt641499.gotoip4.com,AdBlock +- DOMAIN-SUFFIX,bthergyuan.com,AdBlock +- DOMAIN-SUFFIX,btlaunch.baidu.com,AdBlock +- DOMAIN-SUFFIX,btn.onlylady.com,AdBlock +- DOMAIN-SUFFIX,btn.pchome.net,AdBlock +- DOMAIN-SUFFIX,btr.domywife.com,AdBlock +- DOMAIN-SUFFIX,bttrack.com,AdBlock +- DOMAIN-SUFFIX,btyou.com,AdBlock +- DOMAIN-SUFFIX,bu01.zybang.com,AdBlock +- DOMAIN-SUFFIX,bu02.zybang.com,AdBlock +- DOMAIN-SUFFIX,bu1.duba.com,AdBlock +- DOMAIN-SUFFIX,bu2.duba.com,AdBlock +- DOMAIN-SUFFIX,bugtags.com,AdBlock +- DOMAIN-SUFFIX,business.92wy.com,AdBlock +- DOMAIN-SUFFIX,business.inveno.com,AdBlock +- DOMAIN-SUFFIX,buyimg.bianxianmao.com,AdBlock +- DOMAIN-SUFFIX,buysellads.com,AdBlock +- DOMAIN-SUFFIX,buyu8001.com,AdBlock +- DOMAIN-SUFFIX,bwp.theinsider.com.com,AdBlock +- DOMAIN-SUFFIX,bx.optimix.asia,AdBlock +- DOMAIN-SUFFIX,bx01.optimix.asia,AdBlock +- DOMAIN-SUFFIX,bxgmb.com,AdBlock +- DOMAIN-SUFFIX,bxjpl.cn,AdBlock +- DOMAIN-SUFFIX,by.dm5.com,AdBlock +- DOMAIN-SUFFIX,by.mbai.cn,AdBlock +- DOMAIN-SUFFIX,by.tel.cdndm.com,AdBlock +- DOMAIN-SUFFIX,by8974.com,AdBlock +- DOMAIN-SUFFIX,bydonline.com,AdBlock +- DOMAIN-SUFFIX,bypbwm.cn,AdBlock +- DOMAIN-SUFFIX,c.0.0.0.0.cn,AdBlock +- DOMAIN-SUFFIX,c.28487.net,AdBlock +- DOMAIN-SUFFIX,c.35kds.com,AdBlock +- DOMAIN-SUFFIX,c.365yigou.cn,AdBlock +- DOMAIN-SUFFIX,c.45io.com,AdBlock +- DOMAIN-SUFFIX,c.51y5.net,AdBlock +- DOMAIN-SUFFIX,c.adbxb.cn,AdBlock +- DOMAIN-SUFFIX,c.anmeilai.net,AdBlock +- DOMAIN-SUFFIX,c.autohome.com.cn,AdBlock +- DOMAIN-SUFFIX,c.baidu.com,AdBlock +- DOMAIN-SUFFIX,c.betrad.com,AdBlock +- DOMAIN-SUFFIX,c.bigmir.net,AdBlock +- DOMAIN-SUFFIX,c.bing.com,AdBlock +- DOMAIN-SUFFIX,c.bxb.oupeng.com,AdBlock +- DOMAIN-SUFFIX,c.codeonclick.com,AdBlock +- DOMAIN-SUFFIX,c.cyhx98.com,AdBlock +- DOMAIN-SUFFIX,c.cyto-biotherapy.com,AdBlock +- DOMAIN-SUFFIX,c.danangmo.cn,AdBlock +- DOMAIN-SUFFIX,c.data.mob.com,AdBlock +- DOMAIN-SUFFIX,c.dokrmob.com,AdBlock +- DOMAIN-SUFFIX,c.dzytjqcc.com,AdBlock +- DOMAIN-SUFFIX,c.effectivemeasure.net,AdBlock +- DOMAIN-SUFFIX,c.f1zd.com,AdBlock +- DOMAIN-SUFFIX,c.gj.qq.com,AdBlock +- DOMAIN-SUFFIX,c.guangtui1999.com,AdBlock +- DOMAIN-SUFFIX,c.gzsanxiaomingshi.cn,AdBlock +- DOMAIN-SUFFIX,c.idasui.cn,AdBlock +- DOMAIN-SUFFIX,c.iogous.com,AdBlock +- DOMAIN-SUFFIX,c.k429fma.com,AdBlock +- DOMAIN-SUFFIX,c.kbf365.cn,AdBlock +- DOMAIN-SUFFIX,c.kl6636.net,AdBlock +- DOMAIN-SUFFIX,c.kuwo.cn,AdBlock +- DOMAIN-SUFFIX,c.lianwangtech.com,AdBlock +- DOMAIN-SUFFIX,c.live.com,AdBlock +- DOMAIN-SUFFIX,c.lucktui.com,AdBlock +- DOMAIN-SUFFIX,c.metrigo.com,AdBlock +- DOMAIN-SUFFIX,c.mightiger.net,AdBlock +- DOMAIN-SUFFIX,c.minisplat.cn,AdBlock +- DOMAIN-SUFFIX,c.mkmp365.com,AdBlock +- DOMAIN-SUFFIX,c.mnjkw.cn,AdBlock +- DOMAIN-SUFFIX,c.mobishu.com,AdBlock +- DOMAIN-SUFFIX,c.msn.com,AdBlock +- DOMAIN-SUFFIX,c.msn.com.cn,AdBlock +- DOMAIN-SUFFIX,c.netu.tv,AdBlock +- DOMAIN-SUFFIX,c.ningbojipiao.com,AdBlock +- DOMAIN-SUFFIX,c.ns8d.com,AdBlock +- DOMAIN-SUFFIX,c.okmgy.cn,AdBlock +- DOMAIN-SUFFIX,c.panqis.cn,AdBlock +- DOMAIN-SUFFIX,c.panqishu.com,AdBlock +- DOMAIN-SUFFIX,c.piliangzhuce.cn,AdBlock +- DOMAIN-SUFFIX,c.ptffw.net,AdBlock +- DOMAIN-SUFFIX,c.queene.cn,AdBlock +- DOMAIN-SUFFIX,c.rexuebi.com,AdBlock +- DOMAIN-SUFFIX,c.rscxwmj.cn,AdBlock +- DOMAIN-SUFFIX,c.shunlige.com,AdBlock +- DOMAIN-SUFFIX,c.silvinst.com,AdBlock +- DOMAIN-SUFFIX,c.sss1989.com,AdBlock +- DOMAIN-SUFFIX,c.sssgao999.com,AdBlock +- DOMAIN-SUFFIX,c.start280.com,AdBlock +- DOMAIN-SUFFIX,c.statcounter.com,AdBlock +- DOMAIN-SUFFIX,c.statstat888.com,AdBlock +- DOMAIN-SUFFIX,c.sy123888.com,AdBlock +- DOMAIN-SUFFIX,c.t98u8f.com,AdBlock +- DOMAIN-SUFFIX,c.tctyb.cn,AdBlock +- DOMAIN-SUFFIX,c.v4dwkcv.com,AdBlock +- DOMAIN-SUFFIX,c.vip97.net,AdBlock +- DOMAIN-SUFFIX,c.wechat.jx.cn,AdBlock +- DOMAIN-SUFFIX,c.wkanx.com,AdBlock +- DOMAIN-SUFFIX,c.wrating.com,AdBlock +- DOMAIN-SUFFIX,c.xianguonongchang.org,AdBlock +- DOMAIN-SUFFIX,c.xznykf.org,AdBlock +- DOMAIN-SUFFIX,c.ylist.cn,AdBlock +- DOMAIN-SUFFIX,c.ynlysg.com,AdBlock +- DOMAIN-SUFFIX,c.youdao.com,AdBlock +- DOMAIN-SUFFIX,c.zgnm.cc,AdBlock +- DOMAIN-SUFFIX,c.zlongad.com,AdBlock +- DOMAIN-SUFFIX,c.zmjuan.org,AdBlock +- DOMAIN-SUFFIX,c.zxyywdj.org,AdBlock +- DOMAIN-SUFFIX,c0.ifengimg.com,AdBlock +- DOMAIN-SUFFIX,c03.optimix.asia,AdBlock +- DOMAIN-SUFFIX,c0563.com,AdBlock +- DOMAIN-SUFFIX,c0594.com,AdBlock +- DOMAIN-SUFFIX,c0i8h8ac7e.bid,AdBlock +- DOMAIN-SUFFIX,c1.4qx.net,AdBlock +- DOMAIN-SUFFIX,c1.668559.com,AdBlock +- DOMAIN-SUFFIX,c1.ifengimg.com,AdBlock +- DOMAIN-SUFFIX,c1.keyrun.cn,AdBlock +- DOMAIN-SUFFIX,c1.lianwangtech.com,AdBlock +- DOMAIN-SUFFIX,c1.minisplat.cn,AdBlock +- DOMAIN-SUFFIX,c1.popads.net,AdBlock +- DOMAIN-SUFFIX,c1.statcounter.com,AdBlock +- DOMAIN-SUFFIX,c1.ulink.cc,AdBlock +- DOMAIN-SUFFIX,c1.wkanx.com,AdBlock +- DOMAIN-SUFFIX,c1.xcy8.com,AdBlock +- DOMAIN-SUFFIX,c16cp358.com,AdBlock +- DOMAIN-SUFFIX,c2.58toto.net,AdBlock +- DOMAIN-SUFFIX,c2.popads.net,AdBlock +- DOMAIN-SUFFIX,c2.statcounter.com,AdBlock +- DOMAIN-SUFFIX,c3.gostats.cn,AdBlock +- DOMAIN-SUFFIX,c3.moogos.com,AdBlock +- DOMAIN-SUFFIX,c6.bjdianyue.com,AdBlock +- DOMAIN-SUFFIX,c6.lnymd.com,AdBlock +- DOMAIN-SUFFIX,c77777777.com,AdBlock +- DOMAIN-SUFFIX,c8.wangdq.com,AdBlock +- DOMAIN-SUFFIX,c8b.jcdb88.com,AdBlock +- DOMAIN-SUFFIX,ca.5173car.com,AdBlock +- DOMAIN-SUFFIX,ca.w8.com.cn,AdBlock +- DOMAIN-SUFFIX,caamei.com,AdBlock +- DOMAIN-SUFFIX,cacaca.0571yy.com,AdBlock +- DOMAIN-SUFFIX,cacaca.sp96878.com,AdBlock +- DOMAIN-SUFFIX,cacafly.net,AdBlock +- DOMAIN-SUFFIX,cache.betweendigital.com,AdBlock +- DOMAIN-SUFFIX,cache.soloth.com,AdBlock +- DOMAIN-SUFFIX,cache.xw126.com,AdBlock +- DOMAIN-SUFFIX,cachead.com,AdBlock +- DOMAIN-SUFFIX,cachenotice.cp11.ott.cibntv.net,AdBlock +- DOMAIN-SUFFIX,cachesit.com,AdBlock +- DOMAIN-SUFFIX,cache-ssl.celtra.com,AdBlock +- DOMAIN-SUFFIX,cad.chosun.com,AdBlock +- DOMAIN-SUFFIX,c-adash.m.taobao.com,AdBlock +- DOMAIN-SUFFIX,cadvv.heraldm.com,AdBlock +- DOMAIN-SUFFIX,cadvv.koreaherald.com,AdBlock +- DOMAIN-SUFFIX,caiyifz.com,AdBlock +- DOMAIN-SUFFIX,cal.meizu.com,AdBlock +- DOMAIN-SUFFIX,caliyuna.cn,AdBlock +- DOMAIN-SUFFIX,calopenupdate.comm.miui.com,AdBlock +- DOMAIN-SUFFIX,cams.pornrabbit.com,AdBlock +- DOMAIN-SUFFIX,cangnews.com,AdBlock +- DOMAIN-SUFFIX,canvas.thenextweb.com,AdBlock +- DOMAIN-SUFFIX,caob5.info,AdBlock +- DOMAIN-SUFFIX,caolvch.com,AdBlock +- DOMAIN-SUFFIX,cap.cyberlink.com,AdBlock +- DOMAIN-SUFFIX,cap.touclick.com,AdBlock +- DOMAIN-SUFFIX,car.mobadme.jp,AdBlock +- DOMAIN-SUFFIX,carbonads.net,AdBlock +- DOMAIN-SUFFIX,cas.clickability.com,AdBlock +- DOMAIN-SUFFIX,cas.criteo.com,AdBlock +- DOMAIN-SUFFIX,casalemedia.com,AdBlock +- DOMAIN-SUFFIX,casee.cn,AdBlock +- DOMAIN-SUFFIX,cash.neweramediaworks.com,AdBlock +- DOMAIN-SUFFIX,cast.innity.com,AdBlock +- DOMAIN-SUFFIX,cast.ra.icast.cn,AdBlock +- DOMAIN-SUFFIX,cast-bid27-j.adtdp.com,AdBlock +- DOMAIN-SUFFIX,castplatform.com,AdBlock +- DOMAIN-SUFFIX,catalog.video.msn.com,AdBlock +- DOMAIN-SUFFIX,catch.gift,AdBlock +- DOMAIN-SUFFIX,cayanfang.com,AdBlock +- DOMAIN-SUFFIX,cb.baidu.com,AdBlock +- DOMAIN-SUFFIX,cb.h5.coffeedak.cn,AdBlock +- DOMAIN-SUFFIX,cbjs.baidu.com,AdBlock +- DOMAIN-SUFFIX,cbs.wondershare.com,AdBlock +- DOMAIN-SUFFIX,cc.0133hao.net,AdBlock +- DOMAIN-SUFFIX,cc.1515788.net,AdBlock +- DOMAIN-SUFFIX,cc.365yigou.cn,AdBlock +- DOMAIN-SUFFIX,cc.700ok.net,AdBlock +- DOMAIN-SUFFIX,cc.dace.hupu.com,AdBlock +- DOMAIN-SUFFIX,cc.idasui.cn,AdBlock +- DOMAIN-SUFFIX,cc.moquanad.com,AdBlock +- DOMAIN-SUFFIX,cc.piao.jianzhigg.com,AdBlock +- DOMAIN-SUFFIX,cc.st123.info,AdBlock +- DOMAIN-SUFFIX,cc.xtgreat.com,AdBlock +- DOMAIN-SUFFIX,cc.yac8.com,AdBlock +- DOMAIN-SUFFIX,cca.mob.com,AdBlock +- DOMAIN-SUFFIX,ccb.uncle-ad.com,AdBlock +- DOMAIN-SUFFIX,ccbaihehq.com,AdBlock +- DOMAIN-SUFFIX,ccclub.cmbchina.com,AdBlock +- DOMAIN-SUFFIX,cccrir.com,AdBlock +- DOMAIN-SUFFIX,ccr.yxdown.com,AdBlock +- DOMAIN-SUFFIX,cctyly.com,AdBlock +- DOMAIN-SUFFIX,cd.bendibao.com,AdBlock +- DOMAIN-SUFFIX,cdgxq.com,AdBlock +- DOMAIN-SUFFIX,cdhoc.piyaji.cn,AdBlock +- DOMAIN-SUFFIX,cdn.0i-i0.com,AdBlock +- DOMAIN-SUFFIX,cdn.5bong.com,AdBlock +- DOMAIN-SUFFIX,cdn.adsk2.co,AdBlock +- DOMAIN-SUFFIX,cdn.adstract.com,AdBlock +- DOMAIN-SUFFIX,cdn.aegins.com,AdBlock +- DOMAIN-SUFFIX,cdn.aiclicash.com,AdBlock +- DOMAIN-SUFFIX,cdn.app.kachapt.cn,AdBlock +- DOMAIN-SUFFIX,cdn.app.liuxingyul.cn,AdBlock +- DOMAIN-SUFFIX,cdn.at.atwola.com,AdBlock +- DOMAIN-SUFFIX,cdn.atwola.com,AdBlock +- DOMAIN-SUFFIX,cdn.cooguo.com,AdBlock +- DOMAIN-SUFFIX,cdn.districtm.io,AdBlock +- DOMAIN-SUFFIX,cdn.dragonstatic.com,AdBlock +- DOMAIN-SUFFIX,cdn.dsp.com,AdBlock +- DOMAIN-SUFFIX,cdn.earnify.com,AdBlock +- DOMAIN-SUFFIX,cdn.fastclick.net,AdBlock +- DOMAIN-SUFFIX,cdn.hivps.xyz,AdBlock +- DOMAIN-SUFFIX,cdn.hyperpromote.com,AdBlock +- DOMAIN-SUFFIX,cdn.iclicash.com,AdBlock +- DOMAIN-SUFFIX,cdn.img.kachapt.cn,AdBlock +- DOMAIN-SUFFIX,cdn.img.liuxingyul.cn,AdBlock +- DOMAIN-SUFFIX,cdn.innity.net,AdBlock +- DOMAIN-SUFFIX,cdn.jesgoo.com,AdBlock +- DOMAIN-SUFFIX,cdn.jiuzhilan.com,AdBlock +- DOMAIN-SUFFIX,cdn.jllstudio.com,AdBlock +- DOMAIN-SUFFIX,cdn.komentary.aol.com,AdBlock +- DOMAIN-SUFFIX,cdn.krxd.net,AdBlock +- DOMAIN-SUFFIX,cdn.lu.sogoucdn.com,AdBlock +- DOMAIN-SUFFIX,cdn.marketgid.com,AdBlock +- DOMAIN-SUFFIX,cdn.mdotm.com,AdBlock +- DOMAIN-SUFFIX,cdn.media.innity.net,AdBlock +- DOMAIN-SUFFIX,cdn.millennialmedia.com,AdBlock +- DOMAIN-SUFFIX,cdn.mingmingtehui.com,AdBlock +- DOMAIN-SUFFIX,cdn.moji.com,AdBlock +- DOMAIN-SUFFIX,cdn.moji002.com,AdBlock +- DOMAIN-SUFFIX,cdn.moogos.com,AdBlock +- DOMAIN-SUFFIX,cdn.ndapp.com,AdBlock +- DOMAIN-SUFFIX,cdn.newapi.com,AdBlock +- DOMAIN-SUFFIX,cdn.optaim.com,AdBlock +- DOMAIN-SUFFIX,cdn.outfit7.com,AdBlock +- DOMAIN-SUFFIX,cdn.popcash.net,AdBlock +- DOMAIN-SUFFIX,cdn.popmyads.com,AdBlock +- DOMAIN-SUFFIX,cdn.puata.info,AdBlock +- DOMAIN-SUFFIX,cdn.scdng.com,AdBlock +- DOMAIN-SUFFIX,cdn.sp.rizhao9.com,AdBlock +- DOMAIN-SUFFIX,cdn.tianmidian.com,AdBlock +- DOMAIN-SUFFIX,cdn.tinglian.com,AdBlock +- DOMAIN-SUFFIX,cdn.vamaker.com,AdBlock +- DOMAIN-SUFFIX,cdn.viglink.com,AdBlock +- DOMAIN-SUFFIX,cdn.xianliao.me,AdBlock +- DOMAIN-SUFFIX,cdn.zampda.net,AdBlock +- DOMAIN-SUFFIX,cdn0.mobmore.com,AdBlock +- DOMAIN-SUFFIX,cdn1.lbesec.com,AdBlock +- DOMAIN-SUFFIX,cdn1.res.nx5.com,AdBlock +- DOMAIN-SUFFIX,cdn1.res.uzham.com,AdBlock +- DOMAIN-SUFFIX,cdn1.srv.revdepo.com,AdBlock +- DOMAIN-SUFFIX,cdn2.moji002.com,AdBlock +- DOMAIN-SUFFIX,cdnads.com,AdBlock +- DOMAIN-SUFFIX,cdn-ads.oss-cn-shanghai.aliyuncs.com,AdBlock +- DOMAIN-SUFFIX,cdnas.hyperpromote.com,AdBlock +- DOMAIN-SUFFIX,cdn-gcs.outfit7.com,AdBlock +- DOMAIN-SUFFIX,cdnimg.liehu.ijinshan.com,AdBlock +- DOMAIN-SUFFIX,cdnis.hyperpromote.com,AdBlock +- DOMAIN-SUFFIX,cdnmaster.com,AdBlock +- DOMAIN-SUFFIX,cdnny.com,AdBlock +- DOMAIN-SUFFIX,cdnpa.hyperpromote.com,AdBlock +- DOMAIN-SUFFIX,cdn-rtb.sape.ru,AdBlock +- DOMAIN-SUFFIX,cdn-settings.segment.com,AdBlock +- DOMAIN-SUFFIX,cdntest.a8tiyu.com,AdBlock +- DOMAIN-SUFFIX,cds.51y5.net,AdBlock +- DOMAIN-SUFFIX,cdyqc.com,AdBlock +- DOMAIN-SUFFIX,ced.sascdn.com,AdBlock +- DOMAIN-SUFFIX,cee1.iteye.com,AdBlock +- DOMAIN-SUFFIX,cee2.iteye.com,AdBlock +- DOMAIN-SUFFIX,cerebral.typn.com,AdBlock +- DOMAIN-SUFFIX,cfdanet.com,AdBlock +- DOMAIN-SUFFIX,cferw.com,AdBlock +- DOMAIN-SUFFIX,cfg-md.gridsumdissector.com,AdBlock +- DOMAIN-SUFFIX,cfg-vd.gridsumdissector.com,AdBlock +- DOMAIN-SUFFIX,cgskqg.com,AdBlock +- DOMAIN-SUFFIX,chadegongxiao.com,AdBlock +- DOMAIN-SUFFIX,chance-ad.com,AdBlock +- DOMAIN-SUFFIX,chanet.com.cn,AdBlock +- DOMAIN-SUFFIX,changan.bama555.com,AdBlock +- DOMAIN-SUFFIX,changhehengqi.com,AdBlock +- DOMAIN-SUFFIX,channel.fanxing.kugou.com,AdBlock +- DOMAIN-SUFFIX,channeladvisor.com,AdBlock +- DOMAIN-SUFFIX,chaojilamei.cn,AdBlock +- DOMAIN-SUFFIX,chaoliangyun.com,AdBlock +- DOMAIN-SUFFIX,chartbeat.com,AdBlock +- DOMAIN-SUFFIX,chartboost.com,AdBlock +- DOMAIN-SUFFIX,chebse.com,AdBlock +- DOMAIN-SUFFIX,chemdraw.com,AdBlock +- DOMAIN-SUFFIX,chemdraw.com.cn,AdBlock +- DOMAIN-SUFFIX,chengadx.com,AdBlock +- DOMAIN-SUFFIX,chenggao.cn,AdBlock +- DOMAIN-SUFFIX,chengzhao95511.com,AdBlock +- DOMAIN-SUFFIX,chenwen7788.com,AdBlock +- DOMAIN-SUFFIX,chicken18.com,AdBlock +- DOMAIN-SUFFIX,chidir.com,AdBlock +- DOMAIN-SUFFIX,chinacsky.com,AdBlock +- DOMAIN-SUFFIX,chinaheh.com,AdBlock +- DOMAIN-SUFFIX,chinauma.net,AdBlock +- DOMAIN-SUFFIX,chinaweichu.net,AdBlock +- DOMAIN-SUFFIX,chjxzk.1555110.cn,AdBlock +- DOMAIN-SUFFIX,chmae.com,AdBlock +- DOMAIN-SUFFIX,chnhty.com,AdBlock +- DOMAIN-SUFFIX,chuantu.biz,AdBlock +- DOMAIN-SUFFIX,chushoushijian.cn,AdBlock +- DOMAIN-SUFFIX,c-hzgt2.getui.com,AdBlock +- DOMAIN-SUFFIX,ci.csefaazc.net,AdBlock +- DOMAIN-SUFFIX,ciajingman.com,AdBlock +- DOMAIN-SUFFIX,cilidaquan.pw,AdBlock +- DOMAIN-SUFFIX,cindy17club.com,AdBlock +- DOMAIN-SUFFIX,cip6.czpush.com,AdBlock +- DOMAIN-SUFFIX,cishantao.com,AdBlock +- DOMAIN-SUFFIX,ciyitan.com,AdBlock +- DOMAIN-SUFFIX,cj.qidian.com,AdBlock +- DOMAIN-SUFFIX,cjhq.baidu.com,AdBlock +- DOMAIN-SUFFIX,cjmakeding.com,AdBlock +- DOMAIN-SUFFIX,cjmkt.com,AdBlock +- DOMAIN-SUFFIX,cjmooter.xcache.kinxcdn.com,AdBlock +- DOMAIN-SUFFIX,cjroq.bealge.sogou.com,AdBlock +- DOMAIN-SUFFIX,ck.houyi.baofeng.net,AdBlock +- DOMAIN-SUFFIX,ck.kejet.net,AdBlock +- DOMAIN-SUFFIX,cl.he9630.com,AdBlock +- DOMAIN-SUFFIX,cl.webterren.com,AdBlock +- DOMAIN-SUFFIX,cl.xzqxzs.com,AdBlock +- DOMAIN-SUFFIX,cl0.webterren.com,AdBlock +- DOMAIN-SUFFIX,cl2.webterren.com,AdBlock +- DOMAIN-SUFFIX,cl3.webterren.com,AdBlock +- DOMAIN-SUFFIX,cl4.webterren.com,AdBlock +- DOMAIN-SUFFIX,cl5.webterren.com,AdBlock +- DOMAIN-SUFFIX,clarity.abacast.com,AdBlock +- DOMAIN-SUFFIX,cleaner.baidu.com,AdBlock +- DOMAIN-SUFFIX,click1n.soufun.com,AdBlock +- DOMAIN-SUFFIX,clickadu.com,AdBlock +- DOMAIN-SUFFIX,click-cn.plista.com,AdBlock +- DOMAIN-SUFFIX,clicki.cn,AdBlock +- DOMAIN-SUFFIX,clicklog.moviebox.baofeng.net,AdBlock +- DOMAIN-SUFFIX,clickm.fang.com,AdBlock +- DOMAIN-SUFFIX,clickn.fang.com,AdBlock +- DOMAIN-SUFFIX,clicks.beap.bc.yahoo.com,AdBlock +- DOMAIN-SUFFIX,clicks.superpages.com,AdBlock +- DOMAIN-SUFFIX,clickstrip.6wav.es,AdBlock +- DOMAIN-SUFFIX,clicktracks.com,AdBlock +- DOMAIN-SUFFIX,clickzs.com,AdBlock +- DOMAIN-SUFFIX,client.88tours.com,AdBlock +- DOMAIN-SUFFIX,client.sidesearch.lycos.com,AdBlock +- DOMAIN-SUFFIX,client.stats.yinyuetai.com,AdBlock +- DOMAIN-SUFFIX,client.tenddata.com,AdBlock +- DOMAIN-SUFFIX,client-api.ele.me,AdBlock +- DOMAIN-SUFFIX,client-dmp.suishenyun.cn,AdBlock +- DOMAIN-SUFFIX,cliushow.com,AdBlock +- DOMAIN-SUFFIX,clk.dxpmedia.com,AdBlock +- DOMAIN-SUFFIX,clk.gentags.net,AdBlock +- DOMAIN-SUFFIX,clk.madserving.com,AdBlock +- DOMAIN-SUFFIX,clk.optaim.com,AdBlock +- DOMAIN-SUFFIX,clk.pdb.madserving.com,AdBlock +- DOMAIN-SUFFIX,clk.taptica.com,AdBlock +- DOMAIN-SUFFIX,clk.uunt.com,AdBlock +- DOMAIN-SUFFIX,clkads.com,AdBlock +- DOMAIN-SUFFIX,clkrev.com,AdBlock +- DOMAIN-SUFFIX,clkservice.mail.youdao.com,AdBlock +- DOMAIN-SUFFIX,clkservice.union.youdao.com,AdBlock +- DOMAIN-SUFFIX,clkservice.youdao.com,AdBlock +- DOMAIN-SUFFIX,clkservice2.dict.youdao.com,AdBlock +- DOMAIN-SUFFIX,cloud.codenow.cn,AdBlock +- DOMAIN-SUFFIX,cloud.rovio.com,AdBlock +- DOMAIN-SUFFIX,cloud.zyiis.net,AdBlock +- DOMAIN-SUFFIX,cloudad.asia,AdBlock +- DOMAIN-SUFFIX,cloudcdn.yousee.com,AdBlock +- DOMAIN-SUFFIX,cloudmobi.net,AdBlock +- DOMAIN-SUFFIX,cm.adgrx.com,AdBlock +- DOMAIN-SUFFIX,cm.baidu.com,AdBlock +- DOMAIN-SUFFIX,cm.bilibili.com,AdBlock +- DOMAIN-SUFFIX,cm.ctnsnet.com,AdBlock +- DOMAIN-SUFFIX,cm.eyereturn.com,AdBlock +- DOMAIN-SUFFIX,cm.mct01.com,AdBlock +- DOMAIN-SUFFIX,cm.netseer.com,AdBlock +- DOMAIN-SUFFIX,cm.p4p.cn.yahoo.com,AdBlock +- DOMAIN-SUFFIX,cm8.lycos.com,AdBlock +- DOMAIN-SUFFIX,cmarket.kejet.net,AdBlock +- DOMAIN-SUFFIX,cmaxisolation.com,AdBlock +- DOMAIN-SUFFIX,cmcdl.cmcm.com,AdBlock +- DOMAIN-SUFFIX,cmcore.com,AdBlock +- DOMAIN-SUFFIX,cmm.xmfish.com,AdBlock +- DOMAIN-SUFFIX,cmp288.com,AdBlock +- DOMAIN-SUFFIX,cmpp.gentags.net,AdBlock +- DOMAIN-SUFFIX,cms.an.m.liebao.cn,AdBlock +- DOMAIN-SUFFIX,cms.quantserve.com,AdBlock +- DOMAIN-SUFFIX,cmsapi.wifi8.com,AdBlock +- DOMAIN-SUFFIX,cmshow.gtimg.cn,AdBlock +- DOMAIN-SUFFIX,cmslayue.com,AdBlock +- DOMAIN-SUFFIX,cmx.autohome.com.cn,AdBlock +- DOMAIN-SUFFIX,cn.pub.vpon.com,AdBlock +- DOMAIN-SUFFIX,cn.tatami-solutions.com,AdBlock +- DOMAIN-SUFFIX,cnbole.net,AdBlock +- DOMAIN-SUFFIX,cncy8.com,AdBlock +- DOMAIN-SUFFIX,cndjs-1251973891.coshk.myqcloud.com,AdBlock +- DOMAIN-SUFFIX,cnetdirectintl.com,AdBlock +- DOMAIN-SUFFIX,cnetwidget.creativemark.co.uk,AdBlock +- DOMAIN-SUFFIX,cnfanglei.com,AdBlock +- DOMAIN-SUFFIX,cnhbxx.com,AdBlock +- DOMAIN-SUFFIX,cnkok.com,AdBlock +- DOMAIN-SUFFIX,cnn.dyn.cnn.com,AdBlock +- DOMAIN-SUFFIX,cnnic.cn,AdBlock +- DOMAIN-SUFFIX,cnnic.net,AdBlock +- DOMAIN-SUFFIX,cnnic.net.cn,AdBlock +- DOMAIN-SUFFIX,cnpinzhuo.com,AdBlock +- DOMAIN-SUFFIX,cnscdj.com,AdBlock +- DOMAIN-SUFFIX,cnsjx.net,AdBlock +- DOMAIN-SUFFIX,cnxad.com,AdBlock +- DOMAIN-SUFFIX,cnxad.net,AdBlock +- DOMAIN-SUFFIX,cnzhqs.com,AdBlock +- DOMAIN-SUFFIX,cnzz.cn,AdBlock +- DOMAIN-SUFFIX,cnzz.com,AdBlock +- DOMAIN-SUFFIX,co.dtech.baofeng.com,AdBlock +- DOMAIN-SUFFIX,cocounion.com,AdBlock +- DOMAIN-SUFFIX,cod.southmoney.com,AdBlock +- DOMAIN-SUFFIX,code.3shangyou.com,AdBlock +- DOMAIN-SUFFIX,code.fastclick.net,AdBlock +- DOMAIN-SUFFIX,code.hajuwang.cn,AdBlock +- DOMAIN-SUFFIX,code.hot-mob.com,AdBlock +- DOMAIN-SUFFIX,code.kaixinjiehun.com,AdBlock +- DOMAIN-SUFFIX,code.kejet.com,AdBlock +- DOMAIN-SUFFIX,code.laojiayoufang.com,AdBlock +- DOMAIN-SUFFIX,code.ttpaper.com,AdBlock +- DOMAIN-SUFFIX,code.wantaico.com,AdBlock +- DOMAIN-SUFFIX,code11.onetad.com,AdBlock +- DOMAIN-SUFFIX,code12.onetad.com,AdBlock +- DOMAIN-SUFFIX,code1f.m.shushu8.com,AdBlock +- DOMAIN-SUFFIX,code1fa.m.shushu8.com,AdBlock +- DOMAIN-SUFFIX,code222.com,AdBlock +- DOMAIN-SUFFIX,code668.com,AdBlock +- DOMAIN-SUFFIX,codenow.cn,AdBlock +- DOMAIN-SUFFIX,codesoftchina.com,AdBlock +- DOMAIN-SUFFIX,coinblind.com,AdBlock +- DOMAIN-SUFFIX,coinerra.com,AdBlock +- DOMAIN-SUFFIX,coin-have.com,AdBlock +- DOMAIN-SUFFIX,coinhive.com,AdBlock +- DOMAIN-SUFFIX,coin-hive.com,AdBlock +- DOMAIN-SUFFIX,coinhive-manager.com,AdBlock +- DOMAIN-SUFFIX,coin-hive-proxy-ybydcnjgkl.now.sh,AdBlock +- DOMAIN-SUFFIX,coinminerz.com,AdBlock +- DOMAIN-SUFFIX,coinnebula.com,AdBlock +- DOMAIN-SUFFIX,col.hztags.net,AdBlock +- DOMAIN-SUFFIX,col.pagechoice.net,AdBlock +- DOMAIN-SUFFIX,collector.githubapp.com,AdBlock +- DOMAIN-SUFFIX,collector.viki.io,AdBlock +- DOMAIN-SUFFIX,collector.wasu.cn,AdBlock +- DOMAIN-SUFFIX,combine.urbanairship.com,AdBlock +- DOMAIN-SUFFIX,com-eonsun-owl.oss-cn-hangzhou.aliyuncs.com,AdBlock +- DOMAIN-SUFFIX,com-eonsun-owl-user.oss-cn-hangzhou.aliyuncs.com,AdBlock +- DOMAIN-SUFFIX,comesgo.com,AdBlock +- DOMAIN-SUFFIX,comet.yahoo.com,AdBlock +- DOMAIN-SUFFIX,conf.funshion.com,AdBlock +- DOMAIN-SUFFIX,conf.vidown.cn,AdBlock +- DOMAIN-SUFFIX,conf.xiniuz.com,AdBlock +- DOMAIN-SUFFIX,config.baofeng.net,AdBlock +- DOMAIN-SUFFIX,config.cocounion.com,AdBlock +- DOMAIN-SUFFIX,config.ioam.de,AdBlock +- DOMAIN-SUFFIX,config.kuyun.com,AdBlock +- DOMAIN-SUFFIX,config.mobisage.cn,AdBlock +- DOMAIN-SUFFIX,config.push.sogou.com,AdBlock +- DOMAIN-SUFFIX,config.unityads.unity3d.com,AdBlock +- DOMAIN-SUFFIX,config2.mparticle.com,AdBlock +- DOMAIN-SUFFIX,connect.summit.co.uk,AdBlock +- DOMAIN-SUFFIX,content.livesportmedia.eu,AdBlock +- DOMAIN-SUFFIX,content.s8bbs.com,AdBlock +- DOMAIN-SUFFIX,content.streamplay.to,AdBlock +- DOMAIN-SUFFIX,contentabc.com,AdBlock +- DOMAIN-SUFFIX,contentrecommend-out.mobile.sina.cn,AdBlock +- DOMAIN-SUFFIX,conv.youdao.com,AdBlock +- DOMAIN-SUFFIX,conversion.pro.cn,AdBlock +- DOMAIN-SUFFIX,conviva.com,AdBlock +- DOMAIN-SUFFIX,cooguo.com,AdBlock +- DOMAIN-SUFFIX,cookiemapping.wrating.com,AdBlock +- DOMAIN-SUFFIX,coolguang.com,AdBlock +- DOMAIN-SUFFIX,coolnay.com,AdBlock +- DOMAIN-SUFFIX,cooolyi.cn,AdBlock +- DOMAIN-SUFFIX,cooolyi.com,AdBlock +- DOMAIN-SUFFIX,coop.pop.baofeng.com,AdBlock +- DOMAIN-SUFFIX,cootek-dialer-download.oss-cn-hangzhou.aliyuncs.com,AdBlock +- DOMAIN-SUFFIX,cootek-file.cdn.cootekservice.com,AdBlock +- DOMAIN-SUFFIX,cop.my,AdBlock +- DOMAIN-SUFFIX,coreldrawchina.com,AdBlock +- DOMAIN-SUFFIX,coremetrics.com,AdBlock +- DOMAIN-SUFFIX,corner.houyi.baofeng.net,AdBlock +- DOMAIN-SUFFIX,coro.benbaisteel.com,AdBlock +- DOMAIN-SUFFIX,corocksi.com,AdBlock +- DOMAIN-SUFFIX,corp.meitu.com,AdBlock +- DOMAIN-SUFFIX,corp.sohu.com,AdBlock +- DOMAIN-SUFFIX,cosoyoo.com,AdBlock +- DOMAIN-SUFFIX,count.cpm.cm.kankan.com,AdBlock +- DOMAIN-SUFFIX,count.knowsky.com,AdBlock +- DOMAIN-SUFFIX,count.mail.163.com,AdBlock +- DOMAIN-SUFFIX,count.pcpop.com,AdBlock +- DOMAIN-SUFFIX,count.video.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,count.wk2.com,AdBlock +- DOMAIN-SUFFIX,count5.pconline.com.cn,AdBlock +- DOMAIN-SUFFIX,count6.pconline.com.cn,AdBlock +- DOMAIN-SUFFIX,counter.csdn.net,AdBlock +- DOMAIN-SUFFIX,counter.kingsoft.com,AdBlock +- DOMAIN-SUFFIX,counter.m1905.com,AdBlock +- DOMAIN-SUFFIX,counter.marketgid.com,AdBlock +- DOMAIN-SUFFIX,counter.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,counter.yadro.ru,AdBlock +- DOMAIN-SUFFIX,counter.yesky.com,AdBlock +- DOMAIN-SUFFIX,countpvn.light.fang.com,AdBlock +- DOMAIN-SUFFIX,countubn.light.soufun.com,AdBlock +- DOMAIN-SUFFIX,couqm.com.cn,AdBlock +- DOMAIN-SUFFIX,cp.5jjx.net,AdBlock +- DOMAIN-SUFFIX,cp.ggyapp.com,AdBlock +- DOMAIN-SUFFIX,cp.greenxf.cn,AdBlock +- DOMAIN-SUFFIX,cp.gs307.com,AdBlock +- DOMAIN-SUFFIX,cp.jfcdns.com,AdBlock +- DOMAIN-SUFFIX,cp.jz5u.net,AdBlock +- DOMAIN-SUFFIX,cpc.sogou.com,AdBlock +- DOMAIN-SUFFIX,cpc.sohu.com,AdBlock +- DOMAIN-SUFFIX,cpcv.cc,AdBlock +- DOMAIN-SUFFIX,cpm.amateurcommunity.com,AdBlock +- DOMAIN-SUFFIX,cpm.amateurcommunity.de,AdBlock +- DOMAIN-SUFFIX,cpm.cm.sandai.net,AdBlock +- DOMAIN-SUFFIX,cpmchina.co,AdBlock +- DOMAIN-SUFFIX,cpms.cc,AdBlock +- DOMAIN-SUFFIX,cpro.9xu.com,AdBlock +- DOMAIN-SUFFIX,cpro.baidu.cn,AdBlock +- DOMAIN-SUFFIX,cpro.baidu.com,AdBlock +- DOMAIN-SUFFIX,cpro.fangtoo.com,AdBlock +- DOMAIN-SUFFIX,cpro.zhidao.baidu.com,AdBlock +- DOMAIN-SUFFIX,cpro.zol.com.cn,AdBlock +- DOMAIN-SUFFIX,cpro1.edushi.com,AdBlock +- DOMAIN-SUFFIX,cpro2.baidu.com,AdBlock +- DOMAIN-SUFFIX,cps.360buy.com,AdBlock +- DOMAIN-SUFFIX,cpu.baidu.com,AdBlock +- DOMAIN-SUFFIX,cpu-admin.baidu.com,AdBlock +- DOMAIN-SUFFIX,cpv.channelray,AdBlock +- DOMAIN-SUFFIX,cpv.czpush.com,AdBlock +- DOMAIN-SUFFIX,cpv.ty229.com,AdBlock +- DOMAIN-SUFFIX,cpv6.com,AdBlock +- DOMAIN-SUFFIX,cpva.cc,AdBlock +- DOMAIN-SUFFIX,cpv-adv.ggytc.com,AdBlock +- DOMAIN-SUFFIX,cpx24.com,AdBlock +- DOMAIN-SUFFIX,cqfangduan.com,AdBlock +- DOMAIN-SUFFIX,cqftonline.com,AdBlock +- DOMAIN-SUFFIX,cqhnm.com,AdBlock +- DOMAIN-SUFFIX,cqsta.com,AdBlock +- DOMAIN-SUFFIX,cqyhd.com,AdBlock +- DOMAIN-SUFFIX,cr.m.liebao.cn,AdBlock +- DOMAIN-SUFFIX,crashapi.growingio.com,AdBlock +- DOMAIN-SUFFIX,crashes.mo.wps.cn,AdBlock +- DOMAIN-SUFFIX,crasheye.cn,AdBlock +- DOMAIN-SUFFIX,crashlytics.163.com,AdBlock +- DOMAIN-SUFFIX,crashlytics.com,AdBlock +- DOMAIN-SUFFIX,crdrjs.info,AdBlock +- DOMAIN-SUFFIX,cre.dp.sina.cn,AdBlock +- DOMAIN-SUFFIX,cre.mix.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,cre99.com,AdBlock +- DOMAIN-SUFFIX,creatim.qtmojo.cn,AdBlock +- DOMAIN-SUFFIX,creative.1111cpc.com,AdBlock +- DOMAIN-SUFFIX,creative.jdkic.com,AdBlock +- DOMAIN-SUFFIX,creative.ltheanine.cn,AdBlock +- DOMAIN-SUFFIX,creatives.cliphunter.com,AdBlock +- DOMAIN-SUFFIX,creatives.ftchinese.com,AdBlock +- DOMAIN-SUFFIX,creatives.inmotionhosting.com,AdBlock +- DOMAIN-SUFFIX,creatives.livejasmin.com,AdBlock +- DOMAIN-SUFFIX,creatives.pichunter.com,AdBlock +- DOMAIN-SUFFIX,creatives.summitconnect.co.uk,AdBlock +- DOMAIN-SUFFIX,creatives1.ftimg.net,AdBlock +- DOMAIN-SUFFIX,cre-dp.sina.cn,AdBlock +- DOMAIN-SUFFIX,criteo.com,AdBlock +- DOMAIN-SUFFIX,criteo.net,AdBlock +- DOMAIN-SUFFIX,crl.microsoft.com,AdBlock +- DOMAIN-SUFFIX,crm-eve.b2b.alibaba-inc.com,AdBlock +- DOMAIN-SUFFIX,cr-nielsen.com,AdBlock +- DOMAIN-SUFFIX,crosschannel.com,AdBlock +- DOMAIN-SUFFIX,crossoverchina.com,AdBlock +- DOMAIN-SUFFIX,cr-p16.ladsp.com,AdBlock +- DOMAIN-SUFFIX,crs.baidu.com,AdBlock +- DOMAIN-SUFFIX,crwdcntrl.net,AdBlock +- DOMAIN-SUFFIX,cs.dqwjzm.com,AdBlock +- DOMAIN-SUFFIX,cs.twcczhu.com,AdBlock +- DOMAIN-SUFFIX,csad.cc,AdBlock +- DOMAIN-SUFFIX,csbew.com,AdBlock +- DOMAIN-SUFFIX,csi.gstatic.com,AdBlock +- DOMAIN-SUFFIX,csqiulong.com,AdBlock +- DOMAIN-SUFFIX,cstoa.com,AdBlock +- DOMAIN-SUFFIX,csxjys.com,AdBlock +- DOMAIN-SUFFIX,cszlks.com,AdBlock +- DOMAIN-SUFFIX,ct.210189.com,AdBlock +- DOMAIN-SUFFIX,ct.niu.xunlei.com,AdBlock +- DOMAIN-SUFFIX,cti.w55c.net,AdBlock +- DOMAIN-SUFFIX,ctrmi.com,AdBlock +- DOMAIN-SUFFIX,ctsywy.com,AdBlock +- DOMAIN-SUFFIX,cudaojia.com,AdBlock +- DOMAIN-SUFFIX,cupid.jebe.renren.com,AdBlock +- DOMAIN-SUFFIX,current.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,customad.cnn.com,AdBlock +- DOMAIN-SUFFIX,customer-security.online,AdBlock +- DOMAIN-SUFFIX,cut.qumi.com,AdBlock +- DOMAIN-SUFFIX,cvda.17173.com,AdBlock +- DOMAIN-SUFFIX,cvt.mydas.mobi,AdBlock +- DOMAIN-SUFFIX,cwpush.com,AdBlock +- DOMAIN-SUFFIX,cws-cctv.conviva.com,AdBlock +- DOMAIN-SUFFIX,cy123.cc,AdBlock +- DOMAIN-SUFFIX,cyacc.com,AdBlock +- DOMAIN-SUFFIX,cyad.cc,AdBlock +- DOMAIN-SUFFIX,cyad1.cyworld.com,AdBlock +- DOMAIN-SUFFIX,cyad1.nate.com,AdBlock +- DOMAIN-SUFFIX,cyad123.com,AdBlock +- DOMAIN-SUFFIX,cycy.kxrxh.com,AdBlock +- DOMAIN-SUFFIX,cylinderlongcheng.com,AdBlock +- DOMAIN-SUFFIX,cyylove.com,AdBlock +- DOMAIN-SUFFIX,cz.ifeng0.com,AdBlock +- DOMAIN-SUFFIX,cz01016102.cg2017.com,AdBlock +- DOMAIN-SUFFIX,cz01016102.ms758.com,AdBlock +- DOMAIN-SUFFIX,czdqhyo1.net,AdBlock +- DOMAIN-SUFFIX,czf.cchfjz.com,AdBlock +- DOMAIN-SUFFIX,czjiuding.cn,AdBlock +- DOMAIN-SUFFIX,czpush.com,AdBlock +- DOMAIN-SUFFIX,czpwm.com,AdBlock +- DOMAIN-SUFFIX,czxiangyue.com,AdBlock +- DOMAIN-SUFFIX,d.107788.com,AdBlock +- DOMAIN-SUFFIX,d.1391.com,AdBlock +- DOMAIN-SUFFIX,d.39.net,AdBlock +- DOMAIN-SUFFIX,d.admx.baixing.com,AdBlock +- DOMAIN-SUFFIX,d.agkn.com,AdBlock +- DOMAIN-SUFFIX,d.annarbor.com,AdBlock +- DOMAIN-SUFFIX,d.applovin.com,AdBlock +- DOMAIN-SUFFIX,d.beigedi.com,AdBlock +- DOMAIN-SUFFIX,d.businessinsider.com,AdBlock +- DOMAIN-SUFFIX,d.clkservice.youdao.com,AdBlock +- DOMAIN-SUFFIX,d.danangmo.cn,AdBlock +- DOMAIN-SUFFIX,d.elong.cn,AdBlock +- DOMAIN-SUFFIX,d.gossipcenter.com,AdBlock +- DOMAIN-SUFFIX,d.kugou.com,AdBlock +- DOMAIN-SUFFIX,d.ligatus.com,AdBlock +- DOMAIN-SUFFIX,d.mingyihui.net,AdBlock +- DOMAIN-SUFFIX,d.rexuebi.com,AdBlock +- DOMAIN-SUFFIX,d.ruiwen.com,AdBlock +- DOMAIN-SUFFIX,d.thelocal.com,AdBlock +- DOMAIN-SUFFIX,d.tjgxzs.com,AdBlock +- DOMAIN-SUFFIX,d.tonghua5.com,AdBlock +- DOMAIN-SUFFIX,d.turn.com,AdBlock +- DOMAIN-SUFFIX,d.union.ijinshan.com,AdBlock +- DOMAIN-SUFFIX,d.xinshipu.com,AdBlock +- DOMAIN-SUFFIX,d.yjbys.com,AdBlock +- DOMAIN-SUFFIX,d.yoyi.com.cn,AdBlock +- DOMAIN-SUFFIX,d.yoyi.tv,AdBlock +- DOMAIN-SUFFIX,d0.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,d0.sinaimg.cn,AdBlock +- DOMAIN-SUFFIX,d0.xcar.com.cn,AdBlock +- DOMAIN-SUFFIX,d00.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,d1.showself.com,AdBlock +- DOMAIN-SUFFIX,d1.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,d1.sinaimg.cn,AdBlock +- DOMAIN-SUFFIX,d1ad.com,AdBlock +- DOMAIN-SUFFIX,d1grtyyel8f1mh.cloudfront.net,AdBlock +- DOMAIN-SUFFIX,d1zgderxoe1a.cloudfront.net,AdBlock +- DOMAIN-SUFFIX,d2.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,d2.sinaimg.cn,AdBlock +- DOMAIN-SUFFIX,d2.yiche.com,AdBlock +- DOMAIN-SUFFIX,d29qt51jeyi6xb.cloudfront.net,AdBlock +- DOMAIN-SUFFIX,d2qkpebv23oowx.cloudfront.net,AdBlock +- DOMAIN-SUFFIX,d3.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,d3.sinaimg.cn,AdBlock +- DOMAIN-SUFFIX,d31qbv1cthcecs.cloudfront.net,AdBlock +- DOMAIN-SUFFIX,d36eyd5j1kt1m6.cloudfront.net,AdBlock +- DOMAIN-SUFFIX,d3f.houyi.baofeng.net,AdBlock +- DOMAIN-SUFFIX,d3g.qq.com,AdBlock +- DOMAIN-SUFFIX,d3v1lb83psg9di.cloudfront.net,AdBlock +- DOMAIN-SUFFIX,d4.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,d5.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,d520m.gzcl999.cn,AdBlock +- DOMAIN-SUFFIX,d5nxst8fruw4z.cloudfront.net,AdBlock +- DOMAIN-SUFFIX,d5p.de17a.com,AdBlock +- DOMAIN-SUFFIX,d6.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,d6.sinaimg.cn,AdBlock +- DOMAIN-SUFFIX,d7.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,d7.sinaimg.cn,AdBlock +- DOMAIN-SUFFIX,d77777777.com,AdBlock +- DOMAIN-SUFFIX,d8.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,d8.sinaimg.cn,AdBlock +- DOMAIN-SUFFIX,d8.zedo.com,AdBlock +- DOMAIN-SUFFIX,d8360.com,AdBlock +- DOMAIN-SUFFIX,d8885.com,AdBlock +- DOMAIN-SUFFIX,d9.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,daa.shuzilm.cn,AdBlock +- DOMAIN-SUFFIX,dacash.streamplay.to,AdBlock +- DOMAIN-SUFFIX,dadjia.com,AdBlock +- DOMAIN-SUFFIX,dads.new.digg.com,AdBlock +- DOMAIN-SUFFIX,dafahao.com,AdBlock +- DOMAIN-SUFFIX,dafahao.org,AdBlock +- DOMAIN-SUFFIX,dafapromo.com,AdBlock +- DOMAIN-SUFFIX,dahanedu.com,AdBlock +- DOMAIN-SUFFIX,dai.shuzilm.cn,AdBlock +- DOMAIN-SUFFIX,dailydeals.amarillo.com,AdBlock +- DOMAIN-SUFFIX,dailydeals.augustachronicle.com,AdBlock +- DOMAIN-SUFFIX,dailydeals.brainerddispatch.com,AdBlock +- DOMAIN-SUFFIX,dailydeals.lubbockonline.com,AdBlock +- DOMAIN-SUFFIX,dailydeals.onlineathens.com,AdBlock +- DOMAIN-SUFFIX,dailydeals.savannahnow.com,AdBlock +- DOMAIN-SUFFIX,dailylog.storm.baofeng.com,AdBlock +- DOMAIN-SUFFIX,dailyvideo.securejoin.com,AdBlock +- DOMAIN-SUFFIX,daima.23yy.com,AdBlock +- DOMAIN-SUFFIX,daima.chazidian.com,AdBlock +- DOMAIN-SUFFIX,daima.diaoben.net,AdBlock +- DOMAIN-SUFFIX,daima.dsxdn.com,AdBlock +- DOMAIN-SUFFIX,daima.huoche.net,AdBlock +- DOMAIN-SUFFIX,daima.ijq.tv,AdBlock +- DOMAIN-SUFFIX,daima.mubite.cn,AdBlock +- DOMAIN-SUFFIX,daima.youbian.com,AdBlock +- DOMAIN-SUFFIX,daima123.cc,AdBlock +- DOMAIN-SUFFIX,dairuqi.com,AdBlock +- DOMAIN-SUFFIX,daitdai.com,AdBlock +- DOMAIN-SUFFIX,dajean.com,AdBlock +- DOMAIN-SUFFIX,dajiyuan.com,AdBlock +- DOMAIN-SUFFIX,dajiyuan.org,AdBlock +- DOMAIN-SUFFIX,dalianhengtai.com,AdBlock +- DOMAIN-SUFFIX,dandan11.top,AdBlock +- DOMAIN-SUFFIX,dandan13.top,AdBlock +- DOMAIN-SUFFIX,dandan15.top,AdBlock +- DOMAIN-SUFFIX,danpinwu.com,AdBlock +- DOMAIN-SUFFIX,dante2007.com,AdBlock +- DOMAIN-SUFFIX,daohang.114so.cn,AdBlock +- DOMAIN-SUFFIX,daoyoudao.com,AdBlock +- DOMAIN-SUFFIX,dap.pagechoice.net,AdBlock +- DOMAIN-SUFFIX,dart.clearchannel.com,AdBlock +- DOMAIN-SUFFIX,dashet.com,AdBlock +- DOMAIN-SUFFIX,data.3975.com,AdBlock +- DOMAIN-SUFFIX,data.ad-score.com,AdBlock +- DOMAIN-SUFFIX,data.apn.co.nz,AdBlock +- DOMAIN-SUFFIX,data.danmu.baofeng.com,AdBlock +- DOMAIN-SUFFIX,data.doodlemobile.com,AdBlock +- DOMAIN-SUFFIX,data.gosquared.com,AdBlock +- DOMAIN-SUFFIX,data.mistat.xiaomi.com,AdBlock +- DOMAIN-SUFFIX,data.neuroxmedia.com,AdBlock +- DOMAIN-SUFFIX,data2.doodlemobile.com,AdBlock +- DOMAIN-SUFFIX,data2.gosquared.com,AdBlock +- DOMAIN-SUFFIX,databank.air.yoyi.com.cn,AdBlock +- DOMAIN-SUFFIX,databank.yoyi.com.cn,AdBlock +- DOMAIN-SUFFIX,datacapture.serving-sys.com,AdBlock +- DOMAIN-SUFFIX,datafastguru.info,AdBlock +- DOMAIN-SUFFIX,data-news.cdn.cootekservice.com,AdBlock +- DOMAIN-SUFFIX,data-pic.cdn.cootekservice.com,AdBlock +- DOMAIN-SUFFIX,datax.baidu.com,AdBlock +- DOMAIN-SUFFIX,datouniao.com,AdBlock +- DOMAIN-SUFFIX,dawwx.com,AdBlock +- DOMAIN-SUFFIX,day66.com,AdBlock +- DOMAIN-SUFFIX,dazhantai.com,AdBlock +- DOMAIN-SUFFIX,dazhonghua.cn,AdBlock +- DOMAIN-SUFFIX,db1.fuz.cc,AdBlock +- DOMAIN-SUFFIX,db2.fuz.cc,AdBlock +- DOMAIN-SUFFIX,dbam.dashbida.com,AdBlock +- DOMAIN-SUFFIX,dbncp.com,AdBlock +- DOMAIN-SUFFIX,dbregistration.cuteftp.com,AdBlock +- DOMAIN-SUFFIX,dbwmjj.com,AdBlock +- DOMAIN-SUFFIX,dc.cp21.ott.cibntv.net,AdBlock +- DOMAIN-SUFFIX,dc.csdn.net,AdBlock +- DOMAIN-SUFFIX,dc.liuliang100.com,AdBlock +- DOMAIN-SUFFIX,dc.meitustat.com,AdBlock +- DOMAIN-SUFFIX,dc.vmoters.com,AdBlock +- DOMAIN-SUFFIX,dc.xhct66.com,AdBlock +- DOMAIN-SUFFIX,dc2.csdn.net,AdBlock +- DOMAIN-SUFFIX,d-cache.microad-cn.com,AdBlock +- DOMAIN-SUFFIX,dcad.watersoul.com,AdBlock +- DOMAIN-SUFFIX,dcads.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,dcapps.disney.go.com,AdBlock +- DOMAIN-SUFFIX,dcjs.cig.com.cn,AdBlock +- DOMAIN-SUFFIX,dcw.hdswgc.com,AdBlock +- DOMAIN-SUFFIX,dd.70yst.com,AdBlock +- DOMAIN-SUFFIX,dd.dante2007.com,AdBlock +- DOMAIN-SUFFIX,dd.iask.cn,AdBlock +- DOMAIN-SUFFIX,dd.iaskgo.com,AdBlock +- DOMAIN-SUFFIX,dd.mangofortune.net,AdBlock +- DOMAIN-SUFFIX,dd.wx16999.com,AdBlock +- DOMAIN-SUFFIX,ddanq.com,AdBlock +- DOMAIN-SUFFIX,ddapp.cn,AdBlock +- DOMAIN-SUFFIX,ddd.haodizhi666.com,AdBlock +- DOMAIN-SUFFIX,ddd.yuyouge.com,AdBlock +- DOMAIN-SUFFIX,ddg1277.com,AdBlock +- DOMAIN-SUFFIX,ddhtek.com,AdBlock +- DOMAIN-SUFFIX,ddkkrrla.m.qxs.la,AdBlock +- DOMAIN-SUFFIX,ddomm.com,AdBlock +- DOMAIN-SUFFIX,ddpxhq.cn,AdBlock +- DOMAIN-SUFFIX,ddrrccck.m.qxs.la,AdBlock +- DOMAIN-SUFFIX,de.as.cp61.ott.cibntv.net,AdBlock +- DOMAIN-SUFFIX,de.dzribao.com,AdBlock +- DOMAIN-SUFFIX,de.ioam.de,AdBlock +- DOMAIN-SUFFIX,de.pandora.xiaomi.com,AdBlock +- DOMAIN-SUFFIX,deals.ledgertranscript.com,AdBlock +- DOMAIN-SUFFIX,debugreport.mobiledissector.com,AdBlock +- DOMAIN-SUFFIX,dejing.laobanfa.com,AdBlock +- DOMAIN-SUFFIX,deletemer.online,AdBlock +- DOMAIN-SUFFIX,deliver.kuwo.cn,AdBlock +- DOMAIN-SUFFIX,delivery.maihehd.com,AdBlock +- DOMAIN-SUFFIX,delivery.playallvideos.com,AdBlock +- DOMAIN-SUFFIX,delivery.porn.com,AdBlock +- DOMAIN-SUFFIX,delivery.wasu.cn,AdBlock +- DOMAIN-SUFFIX,delivery-pc.wasu.cn,AdBlock +- DOMAIN-SUFFIX,demo.jointreport-switch.com,AdBlock +- DOMAIN-SUFFIX,desk.cmix.org,AdBlock +- DOMAIN-SUFFIX,detuns.com,AdBlock +- DOMAIN-SUFFIX,dev.tg.youxi.com,AdBlock +- DOMAIN-SUFFIX,devs.data.mob.com,AdBlock +- DOMAIN-SUFFIX,dezfu.com,AdBlock +- DOMAIN-SUFFIX,df3n43m.com,AdBlock +- DOMAIN-SUFFIX,df77.com,AdBlock +- DOMAIN-SUFFIX,dfad.dfdaily.com,AdBlock +- DOMAIN-SUFFIX,dfc1.benbaisteel.com,AdBlock +- DOMAIN-SUFFIX,dfp.suning.com,AdBlock +- DOMAIN-SUFFIX,dfx.shhuixiangwuliu.com,AdBlock +- DOMAIN-SUFFIX,dfx.vnnv777.cn,AdBlock +- DOMAIN-SUFFIX,dgfggy.com,AdBlock +- DOMAIN-SUFFIX,dgpzx.com,AdBlock +- DOMAIN-SUFFIX,dh.holaworld.cn,AdBlock +- DOMAIN-SUFFIX,dhxyzx.cn,AdBlock +- DOMAIN-SUFFIX,diag-vd.gridsumdissector.com,AdBlock +- DOMAIN-SUFFIX,diag-wd.gridsumdissector.com,AdBlock +- DOMAIN-SUFFIX,dialer.cdn.cootekservice.com,AdBlock +- DOMAIN-SUFFIX,dianjoy.com,AdBlock +- DOMAIN-SUFFIX,dianru.com,AdBlock +- DOMAIN-SUFFIX,diaojiaoji168.com,AdBlock +- DOMAIN-SUFFIX,diaopic.14bobo.com,AdBlock +- DOMAIN-SUFFIX,diediao.com,AdBlock +- DOMAIN-SUFFIX,difnxm.cn,AdBlock +- DOMAIN-SUFFIX,digdug.divxnetworks.com,AdBlock +- DOMAIN-SUFFIX,dimg1.sz.net.cn,AdBlock +- DOMAIN-SUFFIX,dingon.com.cn,AdBlock +- DOMAIN-SUFFIX,dip.pyangzi.com,AdBlock +- DOMAIN-SUFFIX,dip.szhyzkj.com,AdBlock +- DOMAIN-SUFFIX,dip.wl963.com,AdBlock +- DOMAIN-SUFFIX,dip.zgydjr.com,AdBlock +- DOMAIN-SUFFIX,dipan.com,AdBlock +- DOMAIN-SUFFIX,directrev.com,AdBlock +- DOMAIN-SUFFIX,dis.crieto.com,AdBlock +- DOMAIN-SUFFIX,dis.criteo.com,AdBlock +- DOMAIN-SUFFIX,dis.us.criteo.com,AdBlock +- DOMAIN-SUFFIX,discuz.gtimg.cn,AdBlock +- DOMAIN-SUFFIX,dispenser-rtb.sape.ru,AdBlock +- DOMAIN-SUFFIX,display.360totalsecurity.com,AdBlock +- DOMAIN-SUFFIX,display.ad.daum.net,AdBlock +- DOMAIN-SUFFIX,display.adhudong.com,AdBlock +- DOMAIN-SUFFIX,display.digitalriver.com,AdBlock +- DOMAIN-SUFFIX,display.superbay.net,AdBlock +- DOMAIN-SUFFIX,disqusads.com,AdBlock +- DOMAIN-SUFFIX,distf.kankan.com,AdBlock +- DOMAIN-SUFFIX,diyxjd.com,AdBlock +- DOMAIN-SUFFIX,djs.baomihua.com,AdBlock +- DOMAIN-SUFFIX,dkdlsj.com,AdBlock +- DOMAIN-SUFFIX,dkeyn.com,AdBlock +- DOMAIN-SUFFIX,dl.2345.com,AdBlock +- DOMAIN-SUFFIX,dl.360safe.com,AdBlock +- DOMAIN-SUFFIX,dl.9xu.com,AdBlock +- DOMAIN-SUFFIX,dl.client.baidu.com,AdBlock +- DOMAIN-SUFFIX,dl.cm.ksmobile.com,AdBlock +- DOMAIN-SUFFIX,dl.eduancm.com,AdBlock +- DOMAIN-SUFFIX,dl.img80.net,AdBlock +- DOMAIN-SUFFIX,dl.jianshunrui.com,AdBlock +- DOMAIN-SUFFIX,dl.kinbest.cn,AdBlock +- DOMAIN-SUFFIX,dl.kjava.sina.cn,AdBlock +- DOMAIN-SUFFIX,dl.mbsea.com,AdBlock +- DOMAIN-SUFFIX,dl.nx5.com,AdBlock +- DOMAIN-SUFFIX,dl.ops.baidu.com,AdBlock +- DOMAIN-SUFFIX,dl.sybspools.com,AdBlock +- DOMAIN-SUFFIX,dl.union.ijinshan.com,AdBlock +- DOMAIN-SUFFIX,dl.uu.cc,AdBlock +- DOMAIN-SUFFIX,dl.wan.sogoucdn.com,AdBlock +- DOMAIN-SUFFIX,dl.xzqxzs.com,AdBlock +- DOMAIN-SUFFIX,dl.youjia2016.com,AdBlock +- DOMAIN-SUFFIX,dl1sw.baidu.com,AdBlock +- DOMAIN-SUFFIX,dl2.bav.baidu.com,AdBlock +- DOMAIN-SUFFIX,dleke.com,AdBlock +- DOMAIN-SUFFIX,dlimg.lovfp.com,AdBlock +- DOMAIN-SUFFIX,dload.qd.qingting.fm,AdBlock +- DOMAIN-SUFFIX,dlpifu.com,AdBlock +- DOMAIN-SUFFIX,dlrijiaele.com,AdBlock +- DOMAIN-SUFFIX,dlsw.baidu.com,AdBlock +- DOMAIN-SUFFIX,dlsw.br.baidu.com,AdBlock +- DOMAIN-SUFFIX,dl-vip.bav.baidu.com,AdBlock +- DOMAIN-SUFFIX,dl-vip.pcfaster.baidu.co.th,AdBlock +- DOMAIN-SUFFIX,dlzjdesign.com,AdBlock +- DOMAIN-SUFFIX,dm.388g.cc,AdBlock +- DOMAIN-SUFFIX,dm.51okc.com,AdBlock +- DOMAIN-SUFFIX,dm.92to.com,AdBlock +- DOMAIN-SUFFIX,dm.aizhan.com,AdBlock +- DOMAIN-SUFFIX,dm.bytedance.com,AdBlock +- DOMAIN-SUFFIX,dm.chalook.net,AdBlock +- DOMAIN-SUFFIX,dm.fsyzcs.com,AdBlock +- DOMAIN-SUFFIX,dm.gbeik.com,AdBlock +- DOMAIN-SUFFIX,dm.jb51.net,AdBlock +- DOMAIN-SUFFIX,dm.jinshasi.cn,AdBlock +- DOMAIN-SUFFIX,dm.jsyst.cn,AdBlock +- DOMAIN-SUFFIX,dm.jy135.com,AdBlock +- DOMAIN-SUFFIX,dm.ppzuowen.com,AdBlock +- DOMAIN-SUFFIX,dm.pstatp.com,AdBlock +- DOMAIN-SUFFIX,dm.pw0.cn,AdBlock +- DOMAIN-SUFFIX,dm.riji.cn,AdBlock +- DOMAIN-SUFFIX,dm.sanwen.net,AdBlock +- DOMAIN-SUFFIX,dm.sanwen8.com,AdBlock +- DOMAIN-SUFFIX,dm.sb580.com,AdBlock +- DOMAIN-SUFFIX,dm.toutiao.com,AdBlock +- DOMAIN-SUFFIX,dm.ws8.org,AdBlock +- DOMAIN-SUFFIX,dm.yjbys.com,AdBlock +- DOMAIN-SUFFIX,dm1.tom61.com,AdBlock +- DOMAIN-SUFFIX,dm50.jkyd.net,AdBlock +- DOMAIN-SUFFIX,dm50.yxlady.com,AdBlock +- DOMAIN-SUFFIX,dmacore.kejet.com,AdBlock +- DOMAIN-SUFFIX,dmacore.kejet.net,AdBlock +- DOMAIN-SUFFIX,dmg.digitaltarget.ru,AdBlock +- DOMAIN-SUFFIX,dmp.kejet.net,AdBlock +- DOMAIN-SUFFIX,dmp.sina.cn,AdBlock +- DOMAIN-SUFFIX,dmpclick.deliver.ifeng.com,AdBlock +- DOMAIN-SUFFIX,dmrtb.com,AdBlock +- DOMAIN-SUFFIX,dmt.qcrx.cn,AdBlock +- DOMAIN-SUFFIX,dmtrck.com,AdBlock +- DOMAIN-SUFFIX,dn3.ixinwei.com,AdBlock +- DOMAIN-SUFFIX,dn7788.com,AdBlock +- DOMAIN-SUFFIX,dn-growing.qbox.me,AdBlock +- DOMAIN-SUFFIX,dnvus.com,AdBlock +- DOMAIN-SUFFIX,do.lymstsc.com,AdBlock +- DOMAIN-SUFFIX,do69ifsly4.me,AdBlock +- DOMAIN-SUFFIX,doc.go.sohu.com,AdBlock +- DOMAIN-SUFFIX,dol.deliver.ifeng.com,AdBlock +- DOMAIN-SUFFIX,dolphin.deliver.ifeng.com,AdBlock +- DOMAIN-SUFFIX,dolphin.ftimg.net,AdBlock +- DOMAIN-SUFFIX,dolphin4.ftimg.net,AdBlock +- DOMAIN-SUFFIX,domed.shenbimall.com,AdBlock +- DOMAIN-SUFFIX,do-not-tracker.org,AdBlock +- DOMAIN-SUFFIX,dontblockme.modaco.com,AdBlock +- DOMAIN-SUFFIX,dopa.com,AdBlock +- DOMAIN-SUFFIX,dot.eporner.com,AdBlock +- DOMAIN-SUFFIX,dot2.eporner.com,AdBlock +- DOMAIN-SUFFIX,dotmore.com.tw,AdBlock +- DOMAIN-SUFFIX,dou777.com,AdBlock +- DOMAIN-SUFFIX,doubleclick.com,AdBlock +- DOMAIN-SUFFIX,doubleclick.ctfile.com,AdBlock +- DOMAIN-SUFFIX,doubleclick.net,AdBlock +- DOMAIN-SUFFIX,doubleclick.tv002.com,AdBlock +- DOMAIN-SUFFIX,doubleplay-conf-yql.media.yahoo.com,AdBlock +- DOMAIN-SUFFIX,doubleverify.com,AdBlock +- DOMAIN-SUFFIX,doudao.cn,AdBlock +- DOMAIN-SUFFIX,doudouguo.com,AdBlock +- DOMAIN-SUFFIX,dougou88.com,AdBlock +- DOMAIN-SUFFIX,doumob.com,AdBlock +- DOMAIN-SUFFIX,down.360safe.com,AdBlock +- DOMAIN-SUFFIX,down.91wangmeng.com,AdBlock +- DOMAIN-SUFFIX,down.bugeyu.com,AdBlock +- DOMAIN-SUFFIX,down.dashendown.com,AdBlock +- DOMAIN-SUFFIX,down.diannaodian.com,AdBlock +- DOMAIN-SUFFIX,down.laomaotao.net,AdBlock +- DOMAIN-SUFFIX,down.winads.cn,AdBlock +- DOMAIN-SUFFIX,down.winbaicai.com,AdBlock +- DOMAIN-SUFFIX,down.xiazaidc.com,AdBlock +- DOMAIN-SUFFIX,down.xiazaiyuan.net,AdBlock +- DOMAIN-SUFFIX,downlaod.xiaocen.com,AdBlock +- DOMAIN-SUFFIX,download.123cw.cn,AdBlock +- DOMAIN-SUFFIX,download.2345.com,AdBlock +- DOMAIN-SUFFIX,download.350.com,AdBlock +- DOMAIN-SUFFIX,download.bav.baidu.com,AdBlock +- DOMAIN-SUFFIX,download.coolguang.com,AdBlock +- DOMAIN-SUFFIX,download.fuyuncc.com,AdBlock +- DOMAIN-SUFFIX,download.mediaget.com,AdBlock +- DOMAIN-SUFFIX,download.qianka.com,AdBlock +- DOMAIN-SUFFIX,download.sd.baidu.com,AdBlock +- DOMAIN-SUFFIX,download.sj.qq.com,AdBlock +- DOMAIN-SUFFIX,download.zhushou.sogou.com,AdBlock +- DOMAIN-SUFFIX,download3.123cw.cn,AdBlock +- DOMAIN-SUFFIX,downloada.dewmobile.net,AdBlock +- DOMAIN-SUFFIX,downloadb.dewmobile.net,AdBlock +- DOMAIN-SUFFIX,downmobile.kugou.com,AdBlock +- DOMAIN-SUFFIX,dp.559.cc,AdBlock +- DOMAIN-SUFFIX,dp3.qq.com,AdBlock +- DOMAIN-SUFFIX,dpm.demdex.net,AdBlock +- DOMAIN-SUFFIX,dps.499.cn,AdBlock +- DOMAIN-SUFFIX,dps.shouji56.com,AdBlock +- DOMAIN-SUFFIX,dps.wtdtjs.com,AdBlock +- DOMAIN-SUFFIX,dpvc.39.net,AdBlock +- DOMAIN-SUFFIX,dpvc1.qqyy.com,AdBlock +- DOMAIN-SUFFIX,dpvc2.qqyy.com,AdBlock +- DOMAIN-SUFFIX,dpvchos.qqyy.com,AdBlock +- DOMAIN-SUFFIX,dpvcimg.qqyy.com,AdBlock +- DOMAIN-SUFFIX,dqq.lnfund.org.cn,AdBlock +- DOMAIN-SUFFIX,dqsft.com,AdBlock +- DOMAIN-SUFFIX,dr.holaworld.cn,AdBlock +- DOMAIN-SUFFIX,dragoncent.com,AdBlock +- DOMAIN-SUFFIX,drd.hauchi.com.tw,AdBlock +- DOMAIN-SUFFIX,drdj.m.gxwztv.com,AdBlock +- DOMAIN-SUFFIX,drdwy.com,AdBlock +- DOMAIN-SUFFIX,dreamfull.cn,AdBlock +- DOMAIN-SUFFIX,dressimage.img-cn-beijing.aliyuncs.com,AdBlock +- DOMAIN-SUFFIX,drlsf.com,AdBlock +- DOMAIN-SUFFIX,drm.cmgame.com,AdBlock +- DOMAIN-SUFFIX,drmcmm.baidu.com,AdBlock +- DOMAIN-SUFFIX,drsw.m.yuyouge.com,AdBlock +- DOMAIN-SUFFIX,drvmy.ats68.cn,AdBlock +- DOMAIN-SUFFIX,drxrc.com,AdBlock +- DOMAIN-SUFFIX,ds.jlbksy.com,AdBlock +- DOMAIN-SUFFIX,ds.serving-sys.com,AdBlock +- DOMAIN-SUFFIX,dsadas.hydp188.com,AdBlock +- DOMAIN-SUFFIX,dsaeerf.com,AdBlock +- DOMAIN-SUFFIX,dshrx.com,AdBlock +- DOMAIN-SUFFIX,dsjsee.dqgpb.com,AdBlock +- DOMAIN-SUFFIX,ds-ll.serving-sys.com,AdBlock +- DOMAIN-SUFFIX,dsp.adfarm1.adition.com,AdBlock +- DOMAIN-SUFFIX,dsp.com,AdBlock +- DOMAIN-SUFFIX,dsp.hypers.com.cn,AdBlock +- DOMAIN-SUFFIX,dsp.pro.cn,AdBlock +- DOMAIN-SUFFIX,dsp.send.microad-cn.com,AdBlock +- DOMAIN-SUFFIX,dsp.simba.taobao.com,AdBlock +- DOMAIN-SUFFIX,dsp.toutiao.com,AdBlock +- DOMAIN-SUFFIX,dsp.youdao.com,AdBlock +- DOMAIN-SUFFIX,ds-pc.admsger.com,AdBlock +- DOMAIN-SUFFIX,dsp-click.youdao.com,AdBlock +- DOMAIN-SUFFIX,dsp-impr.youdao.com,AdBlock +- DOMAIN-SUFFIX,dsp-impr2.youdao.com,AdBlock +- DOMAIN-SUFFIX,dspmnt.autohome.com.cn,AdBlock +- DOMAIN-SUFFIX,dspmy.ge95.com,AdBlock +- DOMAIN-SUFFIX,dspserver.ad.cmvideo.cn,AdBlock +- DOMAIN-SUFFIX,ds-pv.iqu-operation.com,AdBlock +- DOMAIN-SUFFIX,dsxdn.com,AdBlock +- DOMAIN-SUFFIX,dt.adsafeprotected.com,AdBlock +- DOMAIN-SUFFIX,d-track.send.microad-cn.com,AdBlock +- DOMAIN-SUFFIX,dtrk.slimcdn.com,AdBlock +- DOMAIN-SUFFIX,dts.akamai.startappexchange.com,AdBlock +- DOMAIN-SUFFIX,duanat.com,AdBlock +- DOMAIN-SUFFIX,duapp.com,AdBlock +- DOMAIN-SUFFIX,duapps.com,AdBlock +- DOMAIN-SUFFIX,dugbvb.com,AdBlock +- DOMAIN-SUFFIX,dugesheying.com,AdBlock +- DOMAIN-SUFFIX,duiwai.baidu.com,AdBlock +- DOMAIN-SUFFIX,dumedia.ru,AdBlock +- DOMAIN-SUFFIX,duoyidd.com,AdBlock +- DOMAIN-SUFFIX,dushimj.com,AdBlock +- DOMAIN-SUFFIX,duusuu.com,AdBlock +- DOMAIN-SUFFIX,duyihu.net,AdBlock +- DOMAIN-SUFFIX,dv8c1t.cn,AdBlock +- DOMAIN-SUFFIX,dvb.pandora.xiaomi.com,AdBlock +- DOMAIN-SUFFIX,dvr8.com,AdBlock +- DOMAIN-SUFFIX,dvs.china.com,AdBlock +- DOMAIN-SUFFIX,dvsend.china.com,AdBlock +- DOMAIN-SUFFIX,dvser.china.com,AdBlock +- DOMAIN-SUFFIX,dvser02.china.com,AdBlock +- DOMAIN-SUFFIX,dvx-android.0.0.0.0.cn,AdBlock +- DOMAIN-SUFFIX,dw.koudaibl.com,AdBlock +- DOMAIN-SUFFIX,dw.xcar.com.cn,AdBlock +- DOMAIN-SUFFIX,dw998.com,AdBlock +- DOMAIN-SUFFIX,dwa.okwan.cn,AdBlock +- DOMAIN-SUFFIX,dx1200.com,AdBlock +- DOMAIN-SUFFIX,dxp.baidu.com,AdBlock +- DOMAIN-SUFFIX,dxpmedia.com,AdBlock +- DOMAIN-SUFFIX,dxprla.m.qxs.la,AdBlock +- DOMAIN-SUFFIX,dxssiyi.com,AdBlock +- DOMAIN-SUFFIX,dyb.jdcbuy.com,AdBlock +- DOMAIN-SUFFIX,dydab.com,AdBlock +- DOMAIN-SUFFIX,dyn.tnaflix.com,AdBlock +- DOMAIN-SUFFIX,dynamic.aol.com,AdBlock +- DOMAIN-SUFFIX,dynamic.zol.com.cn,AdBlock +- DOMAIN-SUFFIX,dz2017.zdzxyplyt.com,AdBlock +- DOMAIN-SUFFIX,dzais.com,AdBlock +- DOMAIN-SUFFIX,dzisou.com,AdBlock +- DOMAIN-SUFFIX,dzjzg.com,AdBlock +- DOMAIN-SUFFIX,dzl.baidu.com,AdBlock +- DOMAIN-SUFFIX,dzz.wankeedu.com,AdBlock +- DOMAIN-SUFFIX,e.0.0.0.0.cn,AdBlock +- DOMAIN-SUFFIX,e.0.0.0.0.com.cn,AdBlock +- DOMAIN-SUFFIX,e.027blzs.com,AdBlock +- DOMAIN-SUFFIX,e.0531mnk.net,AdBlock +- DOMAIN-SUFFIX,e.1919388.net,AdBlock +- DOMAIN-SUFFIX,e.28487.net,AdBlock +- DOMAIN-SUFFIX,e.51xmgys.com,AdBlock +- DOMAIN-SUFFIX,e.91.com,AdBlock +- DOMAIN-SUFFIX,e.aa985.cn,AdBlock +- DOMAIN-SUFFIX,e.acaog.com,AdBlock +- DOMAIN-SUFFIX,e.acaox.com,AdBlock +- DOMAIN-SUFFIX,e.admin60.com,AdBlock +- DOMAIN-SUFFIX,e.afvfe.cn,AdBlock +- DOMAIN-SUFFIX,e.anmeilai.net,AdBlock +- DOMAIN-SUFFIX,e.apxyz.com,AdBlock +- DOMAIN-SUFFIX,e.baidu.com,AdBlock +- DOMAIN-SUFFIX,e.bapkt.com,AdBlock +- DOMAIN-SUFFIX,e.bbvjs.com,AdBlock +- DOMAIN-SUFFIX,e.bentengcn.com,AdBlock +- DOMAIN-SUFFIX,e.bokanedu.net,AdBlock +- DOMAIN-SUFFIX,e.bsnnk.com,AdBlock +- DOMAIN-SUFFIX,e.bvoer.com,AdBlock +- DOMAIN-SUFFIX,e.cbeif.com,AdBlock +- DOMAIN-SUFFIX,e.ccunf.com,AdBlock +- DOMAIN-SUFFIX,e.cdfzcz.com,AdBlock +- DOMAIN-SUFFIX,e.chfuw.com,AdBlock +- DOMAIN-SUFFIX,e.cjieh.com,AdBlock +- DOMAIN-SUFFIX,e.ckikq.com,AdBlock +- DOMAIN-SUFFIX,e.cn-3drp.com,AdBlock +- DOMAIN-SUFFIX,e.codlw.com,AdBlock +- DOMAIN-SUFFIX,e.coenr.com,AdBlock +- DOMAIN-SUFFIX,e.crashlytics.com,AdBlock +- DOMAIN-SUFFIX,e.cuomm.com,AdBlock +- DOMAIN-SUFFIX,e.czggcj.com,AdBlock +- DOMAIN-SUFFIX,e.daishuxy.com,AdBlock +- DOMAIN-SUFFIX,e.danrs.com,AdBlock +- DOMAIN-SUFFIX,e.deimm.com,AdBlock +- DOMAIN-SUFFIX,e.diogv.com,AdBlock +- DOMAIN-SUFFIX,e.diupp.com,AdBlock +- DOMAIN-SUFFIX,e.dnfeu.com,AdBlock +- DOMAIN-SUFFIX,e.dsjre.com,AdBlock +- DOMAIN-SUFFIX,e.dunmm.com,AdBlock +- DOMAIN-SUFFIX,e.dxmci.com,AdBlock +- DOMAIN-SUFFIX,e.dzairen.com,AdBlock +- DOMAIN-SUFFIX,e.e7001.com,AdBlock +- DOMAIN-SUFFIX,e.e70123.com,AdBlock +- DOMAIN-SUFFIX,e.ehxyz.com,AdBlock +- DOMAIN-SUFFIX,e.emgwq.com,AdBlock +- DOMAIN-SUFFIX,e.enjuk.com,AdBlock +- DOMAIN-SUFFIX,e.ennmt.com,AdBlock +- DOMAIN-SUFFIX,e.fbaix.com,AdBlock +- DOMAIN-SUFFIX,e.fbaot.com,AdBlock +- DOMAIN-SUFFIX,e.fimky.com,AdBlock +- DOMAIN-SUFFIX,e.fkkse.com,AdBlock +- DOMAIN-SUFFIX,e.fkogs.com,AdBlock +- DOMAIN-SUFFIX,e.focuscat.com,AdBlock +- DOMAIN-SUFFIX,e.fstaw.com,AdBlock +- DOMAIN-SUFFIX,e.fwjoi.com,AdBlock +- DOMAIN-SUFFIX,e.fzyda.com,AdBlock +- DOMAIN-SUFFIX,e.gbieg.com,AdBlock +- DOMAIN-SUFFIX,e.gglay.com,AdBlock +- DOMAIN-SUFFIX,e.gxjfh.com,AdBlock +- DOMAIN-SUFFIX,e.gxkyl.com,AdBlock +- DOMAIN-SUFFIX,e.harbinbaojia.net,AdBlock +- DOMAIN-SUFFIX,e.hellomingpian.com,AdBlock +- DOMAIN-SUFFIX,e.hgrqp.com,AdBlock +- DOMAIN-SUFFIX,e.hissq.com,AdBlock +- DOMAIN-SUFFIX,e.hjryl.com,AdBlock +- DOMAIN-SUFFIX,e.hk7799.net,AdBlock +- DOMAIN-SUFFIX,e.hkmqp.com,AdBlock +- DOMAIN-SUFFIX,e.hmhqp.com,AdBlock +- DOMAIN-SUFFIX,e.hogyp.com,AdBlock +- DOMAIN-SUFFIX,e.hpzyl.com,AdBlock +- DOMAIN-SUFFIX,e.htper.com,AdBlock +- DOMAIN-SUFFIX,e.huaas.com,AdBlock +- DOMAIN-SUFFIX,e.hunpp.com,AdBlock +- DOMAIN-SUFFIX,e.huoas.com,AdBlock +- DOMAIN-SUFFIX,e.hurnt.com,AdBlock +- DOMAIN-SUFFIX,e.hyzui.com,AdBlock +- DOMAIN-SUFFIX,e.icyrd.com,AdBlock +- DOMAIN-SUFFIX,e.iierq.com,AdBlock +- DOMAIN-SUFFIX,e.infvb.com,AdBlock +- DOMAIN-SUFFIX,e.irauz.com,AdBlock +- DOMAIN-SUFFIX,e.irkuj.com,AdBlock +- DOMAIN-SUFFIX,e.iruad.com,AdBlock +- DOMAIN-SUFFIX,e.ishowms.com,AdBlock +- DOMAIN-SUFFIX,e.jdaot.com,AdBlock +- DOMAIN-SUFFIX,e.jgkto.com,AdBlock +- DOMAIN-SUFFIX,e.jiaas.com,AdBlock +- DOMAIN-SUFFIX,e.jiirz.com,AdBlock +- DOMAIN-SUFFIX,e.jioeg.com,AdBlock +- DOMAIN-SUFFIX,e.jkert.com,AdBlock +- DOMAIN-SUFFIX,e.jlkja.com,AdBlock +- DOMAIN-SUFFIX,e.jltdbyq.com,AdBlock +- DOMAIN-SUFFIX,e.jnsdkjzs.com,AdBlock +- DOMAIN-SUFFIX,e.joyxv.com,AdBlock +- DOMAIN-SUFFIX,e.juyzr.com,AdBlock +- DOMAIN-SUFFIX,e.jwiyr.com,AdBlock +- DOMAIN-SUFFIX,e.jxxiangchu.com,AdBlock +- DOMAIN-SUFFIX,e.kcooy.com,AdBlock +- DOMAIN-SUFFIX,e.kewro.com,AdBlock +- DOMAIN-SUFFIX,e.khuoy.com,AdBlock +- DOMAIN-SUFFIX,e.kjfhe.com,AdBlock +- DOMAIN-SUFFIX,e.kjhfy.com,AdBlock +- DOMAIN-SUFFIX,e.kl6636.net,AdBlock +- DOMAIN-SUFFIX,e.ksttwz.com,AdBlock +- DOMAIN-SUFFIX,e.kunpp.com,AdBlock +- DOMAIN-SUFFIX,e.kwjkd.com,AdBlock +- DOMAIN-SUFFIX,e.kxhie.com,AdBlock +- DOMAIN-SUFFIX,e.lancedu.com,AdBlock +- DOMAIN-SUFFIX,e.lfdydk.com,AdBlock +- DOMAIN-SUFFIX,e.lovezhishou.com,AdBlock +- DOMAIN-SUFFIX,e.lyjz001.com,AdBlock +- DOMAIN-SUFFIX,e.lzytt.com,AdBlock +- DOMAIN-SUFFIX,e.md0z4dh.com,AdBlock +- DOMAIN-SUFFIX,e.meizhuanghe.com,AdBlock +- DOMAIN-SUFFIX,e.miaoxinqipei.com,AdBlock +- DOMAIN-SUFFIX,e.mightiger.net,AdBlock +- DOMAIN-SUFFIX,e.miiuv.com,AdBlock +- DOMAIN-SUFFIX,e.mmkvi.com,AdBlock +- DOMAIN-SUFFIX,e.mozist.com,AdBlock +- DOMAIN-SUFFIX,e.mqgpo.com,AdBlock +- DOMAIN-SUFFIX,e.mrsasharingspace.com,AdBlock +- DOMAIN-SUFFIX,e.mrtuo.com,AdBlock +- DOMAIN-SUFFIX,e.mushizhubao.com,AdBlock +- DOMAIN-SUFFIX,e.nduop.com,AdBlock +- DOMAIN-SUFFIX,e.neijh.com,AdBlock +- DOMAIN-SUFFIX,e.nejup.com,AdBlock +- DOMAIN-SUFFIX,e.nernv.com,AdBlock +- DOMAIN-SUFFIX,e.nexac.com,AdBlock +- DOMAIN-SUFFIX,e.nfkos.com,AdBlock +- DOMAIN-SUFFIX,e.nmtouzi.com,AdBlock +- DOMAIN-SUFFIX,e.nnfiy.com,AdBlock +- DOMAIN-SUFFIX,e.nwxzs.com,AdBlock +- DOMAIN-SUFFIX,e.nxypz.com,AdBlock +- DOMAIN-SUFFIX,e.oesnw.com,AdBlock +- DOMAIN-SUFFIX,e.okfhn.com,AdBlock +- DOMAIN-SUFFIX,e.opqsr.com,AdBlock +- DOMAIN-SUFFIX,e.oyrim.com,AdBlock +- DOMAIN-SUFFIX,e.pbino.com,AdBlock +- DOMAIN-SUFFIX,e.picbr.com,AdBlock +- DOMAIN-SUFFIX,e.plerv.com,AdBlock +- DOMAIN-SUFFIX,e.pomkl.com,AdBlock +- DOMAIN-SUFFIX,e.poonscn.com,AdBlock +- DOMAIN-SUFFIX,e.pubbirdf.com,AdBlock +- DOMAIN-SUFFIX,e.puooi.com,AdBlock +- DOMAIN-SUFFIX,e.pwjhg.com,AdBlock +- DOMAIN-SUFFIX,e.pyerc.com,AdBlock +- DOMAIN-SUFFIX,e.qiaoyuwang.com,AdBlock +- DOMAIN-SUFFIX,e.qingzhencai.net,AdBlock +- DOMAIN-SUFFIX,e.qiyunmuye.com,AdBlock +- DOMAIN-SUFFIX,e.qq.com,AdBlock +- DOMAIN-SUFFIX,e.qsove.com,AdBlock +- DOMAIN-SUFFIX,e.qvxyz.com,AdBlock +- DOMAIN-SUFFIX,e.qxfly.com,AdBlock +- DOMAIN-SUFFIX,e.resmv.com,AdBlock +- DOMAIN-SUFFIX,e.ricpt.com,AdBlock +- DOMAIN-SUFFIX,e.rmwdn.com,AdBlock +- DOMAIN-SUFFIX,e.romgv.com,AdBlock +- DOMAIN-SUFFIX,e.sanitwealth.com,AdBlock +- DOMAIN-SUFFIX,e.shenyunkeji.com,AdBlock +- DOMAIN-SUFFIX,e.sjuqc.com,AdBlock +- DOMAIN-SUFFIX,e.sosjyx.com,AdBlock +- DOMAIN-SUFFIX,e.srrux.com,AdBlock +- DOMAIN-SUFFIX,e.suehy.com,AdBlock +- DOMAIN-SUFFIX,e.szqifu.com,AdBlock +- DOMAIN-SUFFIX,e.t71q.com,AdBlock +- DOMAIN-SUFFIX,e.tdtsd.com,AdBlock +- DOMAIN-SUFFIX,e.tiantianedu.net,AdBlock +- DOMAIN-SUFFIX,e.tick0.com,AdBlock +- DOMAIN-SUFFIX,e.tiojk.com,AdBlock +- DOMAIN-SUFFIX,e.tuoaa.com,AdBlock +- DOMAIN-SUFFIX,e.ueram.com,AdBlock +- DOMAIN-SUFFIX,e.uissm.com,AdBlock +- DOMAIN-SUFFIX,e.v02u9.cn,AdBlock +- DOMAIN-SUFFIX,e.vaxyz.com,AdBlock +- DOMAIN-SUFFIX,e.vbaiu.com,AdBlock +- DOMAIN-SUFFIX,e.vouky.com,AdBlock +- DOMAIN-SUFFIX,e.vvocm.com,AdBlock +- DOMAIN-SUFFIX,e.wcjup.com,AdBlock +- DOMAIN-SUFFIX,e.weixingshexiangji.net,AdBlock +- DOMAIN-SUFFIX,e.wikigifth.com,AdBlock +- DOMAIN-SUFFIX,e.wjhehaofc.com,AdBlock +- DOMAIN-SUFFIX,e.wkjhd.com,AdBlock +- DOMAIN-SUFFIX,e.wnxcg.com,AdBlock +- DOMAIN-SUFFIX,e.wonwg.com,AdBlock +- DOMAIN-SUFFIX,e.wsxxu.com,AdBlock +- DOMAIN-SUFFIX,e.x.cn.xtgreat.com,AdBlock +- DOMAIN-SUFFIX,e.xdkje.com,AdBlock +- DOMAIN-SUFFIX,e.xeihy.com,AdBlock +- DOMAIN-SUFFIX,e.xetvb.com,AdBlock +- DOMAIN-SUFFIX,e.xiangchim0.com,AdBlock +- DOMAIN-SUFFIX,e.xikdn.com,AdBlock +- DOMAIN-SUFFIX,e.xkqpco.com.com,AdBlock +- DOMAIN-SUFFIX,e.xlsschina15.net,AdBlock +- DOMAIN-SUFFIX,e.xmgysweb.com,AdBlock +- DOMAIN-SUFFIX,e.xpjis.com,AdBlock +- DOMAIN-SUFFIX,e.xxkio.com,AdBlock +- DOMAIN-SUFFIX,e.yageben.com,AdBlock +- DOMAIN-SUFFIX,e.yangjingbang.net,AdBlock +- DOMAIN-SUFFIX,e.yerpt.com,AdBlock +- DOMAIN-SUFFIX,e.yicang8.com,AdBlock +- DOMAIN-SUFFIX,e.yidulive.net,AdBlock +- DOMAIN-SUFFIX,e.yingchengtou.com,AdBlock +- DOMAIN-SUFFIX,e.ynnke.com,AdBlock +- DOMAIN-SUFFIX,e.yoiur.com,AdBlock +- DOMAIN-SUFFIX,e.youweiprint.com,AdBlock +- DOMAIN-SUFFIX,e.ysdangan.com,AdBlock +- DOMAIN-SUFFIX,e.ysdhe.com,AdBlock +- DOMAIN-SUFFIX,e.yuxyz.com,AdBlock +- DOMAIN-SUFFIX,e.ywbwsm.com,AdBlock +- DOMAIN-SUFFIX,e.yycqc.com,AdBlock +- DOMAIN-SUFFIX,e.yyeks.com,AdBlock +- DOMAIN-SUFFIX,e.yyjhf.com,AdBlock +- DOMAIN-SUFFIX,e.zabxb.com,AdBlock +- DOMAIN-SUFFIX,e.zhuyuanp.club,AdBlock +- DOMAIN-SUFFIX,e.zhuyuanp.shop,AdBlock +- DOMAIN-SUFFIX,e.zhuyuanp.top,AdBlock +- DOMAIN-SUFFIX,e.zjkdaikuan.com,AdBlock +- DOMAIN-SUFFIX,e.zkwsdf.com,AdBlock +- DOMAIN-SUFFIX,e.zunss.com,AdBlock +- DOMAIN-SUFFIX,e7001.com,AdBlock +- DOMAIN-SUFFIX,e7002.com,AdBlock +- DOMAIN-SUFFIX,e7009.com,AdBlock +- DOMAIN-SUFFIX,e701.net,AdBlock +- DOMAIN-SUFFIX,e70123.com,AdBlock +- DOMAIN-SUFFIX,e7015.com,AdBlock +- DOMAIN-SUFFIX,e704.net,AdBlock +- DOMAIN-SUFFIX,e705.net,AdBlock +- DOMAIN-SUFFIX,e706.net,AdBlock +- DOMAIN-SUFFIX,e708.net,AdBlock +- DOMAIN-SUFFIX,e719.net,AdBlock +- DOMAIN-SUFFIX,e9377f.com,AdBlock +- DOMAIN-SUFFIX,eacash.streamplay.to,AdBlock +- DOMAIN-SUFFIX,eap.big5.enorth.com.cn,AdBlock +- DOMAIN-SUFFIX,eap.enorth.com.cn,AdBlock +- DOMAIN-SUFFIX,easyrecoverychina.com,AdBlock +- DOMAIN-SUFFIX,ebook.res.meizu.com,AdBlock +- DOMAIN-SUFFIX,ebp.renren.com,AdBlock +- DOMAIN-SUFFIX,ec.kejet.net,AdBlock +- DOMAIN-SUFFIX,eclick.120ask.com,AdBlock +- DOMAIN-SUFFIX,eclick.360doc.com,AdBlock +- DOMAIN-SUFFIX,eclick.baidu.com,AdBlock +- DOMAIN-SUFFIX,eclkspbn.com,AdBlock +- DOMAIN-SUFFIX,ecma.bdimg.com,AdBlock +- DOMAIN-SUFFIX,ecmb.bdimg.com,AdBlock +- DOMAIN-SUFFIX,ecmc.bdimg.com,AdBlock +- DOMAIN-SUFFIX,ecuc123.net,AdBlock +- DOMAIN-SUFFIX,ed.aijielang.cn,AdBlock +- DOMAIN-SUFFIX,ed.sczhilong.cn,AdBlock +- DOMAIN-SUFFIX,eddong.com,AdBlock +- DOMAIN-SUFFIX,edesf.xyzxmark.cn,AdBlock +- DOMAIN-SUFFIX,edge.quantserve.com,AdBlock +- DOMAIN-SUFFIX,edge.sharethis.com,AdBlock +- DOMAIN-SUFFIX,edge.yunjiasu.com,AdBlock +- DOMAIN-SUFFIX,edigitalsurvey.com,AdBlock +- DOMAIN-SUFFIX,ediuschina.com,AdBlock +- DOMAIN-SUFFIX,edncui.net,AdBlock +- DOMAIN-SUFFIX,eduancm.com,AdBlock +- DOMAIN-SUFFIX,eduzzjy.com,AdBlock +- DOMAIN-SUFFIX,ee4kdushuba.com,AdBlock +- DOMAIN-SUFFIX,eee.eh39.co,AdBlock +- DOMAIN-SUFFIX,eee.kj78.org,AdBlock +- DOMAIN-SUFFIX,eee.ttyy888.co,AdBlock +- DOMAIN-SUFFIX,eeee500.com,AdBlock +- DOMAIN-SUFFIX,eezdx.erc.18183.com,AdBlock +- DOMAIN-SUFFIX,eff.inte.sogou.com,AdBlock +- DOMAIN-SUFFIX,effectivemeasure.com,AdBlock +- DOMAIN-SUFFIX,effectivemeasure.net,AdBlock +- DOMAIN-SUFFIX,ehd.baike.com,AdBlock +- DOMAIN-SUFFIX,ehxyz.com,AdBlock +- DOMAIN-SUFFIX,ein.51yingfa.com,AdBlock +- DOMAIN-SUFFIX,eiv.baidu.com,AdBlock +- DOMAIN-SUFFIX,ejzr.golden1.sogou.com,AdBlock +- DOMAIN-SUFFIX,ekeide.com,AdBlock +- DOMAIN-SUFFIX,eland.doublemax.net,AdBlock +- DOMAIN-SUFFIX,em.baidu.com,AdBlock +- DOMAIN-SUFFIX,emarbox.com,AdBlock +- DOMAIN-SUFFIX,emss.zjhim.com,AdBlock +- DOMAIN-SUFFIX,en.shenyun.com,AdBlock +- DOMAIN-SUFFIX,en.shenyun.org,AdBlock +- DOMAIN-SUFFIX,engine.lvehaisen.com,AdBlock +- DOMAIN-SUFFIX,engine.tuia.cn,AdBlock +- DOMAIN-SUFFIX,ent1.12584.cn,AdBlock +- DOMAIN-SUFFIX,entry.baidu.com,AdBlock +- DOMAIN-SUFFIX,e-p4p.163.com,AdBlock +- DOMAIN-SUFFIX,epernn.cn,AdBlock +- DOMAIN-SUFFIX,epochtimes.org,AdBlock +- DOMAIN-SUFFIX,epochweekly.com,AdBlock +- DOMAIN-SUFFIX,epowernetworktrackerimages.s3.amazonaws.com,AdBlock +- DOMAIN-SUFFIX,er.dlhygj.com,AdBlock +- DOMAIN-SUFFIX,erdoscs.com,AdBlock +- DOMAIN-SUFFIX,erebor.douban.com,AdBlock +- DOMAIN-SUFFIX,ereg.adobe.com,AdBlock +- DOMAIN-SUFFIX,ereg.wip3.adobe.com,AdBlock +- DOMAIN-SUFFIX,ers.baidu.com,AdBlock +- DOMAIN-SUFFIX,erwqw.zh1155.com,AdBlock +- DOMAIN-SUFFIX,erwr.ydjskvpd.com,AdBlock +- DOMAIN-SUFFIX,espn-ak.starwave.com,AdBlock +- DOMAIN-SUFFIX,esptj.com,AdBlock +- DOMAIN-SUFFIX,esrpxyahzna.bid,AdBlock +- DOMAIN-SUFFIX,eteun.cn,AdBlock +- DOMAIN-SUFFIX,ethod.gzgmjcx.com,AdBlock +- DOMAIN-SUFFIX,etl.xlmc.sandai.net,AdBlock +- DOMAIN-SUFFIX,etl.xlmc.sec.miui.com,AdBlock +- DOMAIN-SUFFIX,eu-gmtdmp.gd1.mookie1.com,AdBlock +- DOMAIN-SUFFIX,eum-appdynamics.com,AdBlock +- DOMAIN-SUFFIX,eus.rubiconproject.com,AdBlock +- DOMAIN-SUFFIX,euwidget.imshopping.com,AdBlock +- DOMAIN-SUFFIX,eva.ucas.com,AdBlock +- DOMAIN-SUFFIX,evefashion.cn,AdBlock +- DOMAIN-SUFFIX,event.ksosoft.com,AdBlock +- DOMAIN-SUFFIX,eventlog.hd.baofeng.com,AdBlock +- DOMAIN-SUFFIX,events.kalooga.com,AdBlock +- DOMAIN-SUFFIX,events.pingan.com,AdBlock +- DOMAIN-SUFFIX,events-api.outfit7.net,AdBlock +- DOMAIN-SUFFIX,eviltracker.net,AdBlock +- DOMAIN-SUFFIX,ew16d.package12.com,AdBlock +- DOMAIN-SUFFIX,ex.mobmore.com,AdBlock +- DOMAIN-SUFFIX,ex.puata.info,AdBlock +- DOMAIN-SUFFIX,exdynsrv.com,AdBlock +- DOMAIN-SUFFIX,exit.macandbumble.com,AdBlock +- DOMAIN-SUFFIX,exoclick.com,AdBlock +- DOMAIN-SUFFIX,exp.17wo.cn,AdBlock +- DOMAIN-SUFFIX,exp.3g.ifeng.com,AdBlock +- DOMAIN-SUFFIX,exp.qumi.com,AdBlock +- DOMAIN-SUFFIX,expo123.net,AdBlock +- DOMAIN-SUFFIX,ext.theglobalweb.com,AdBlock +- DOMAIN-SUFFIX,extmoney.i1608.com,AdBlock +- DOMAIN-SUFFIX,extstat.com,AdBlock +- DOMAIN-SUFFIX,eyd77s.com,AdBlock +- DOMAIN-SUFFIX,eye.swfchan.com,AdBlock +- DOMAIN-SUFFIX,eyouv.cn,AdBlock +- DOMAIN-SUFFIX,ez33.org.cn,AdBlock +- DOMAIN-SUFFIX,ezine.oupeng.com,AdBlock +- DOMAIN-SUFFIX,ezucods.cn,AdBlock +- DOMAIN-SUFFIX,f.520tingshu.com,AdBlock +- DOMAIN-SUFFIX,f.doodlemobile.com,AdBlock +- DOMAIN-SUFFIX,f.f70123.com,AdBlock +- DOMAIN-SUFFIX,f.fj95560.com,AdBlock +- DOMAIN-SUFFIX,f.haoxinjaju.com,AdBlock +- DOMAIN-SUFFIX,f.hongm.com,AdBlock +- DOMAIN-SUFFIX,f.qcwzx.net.cn,AdBlock +- DOMAIN-SUFFIX,f.yijikm.com,AdBlock +- DOMAIN-SUFFIX,f.yueyetiyu.com,AdBlock +- DOMAIN-SUFFIX,f1.06ps.com,AdBlock +- DOMAIN-SUFFIX,f1.bizhiku.net,AdBlock +- DOMAIN-SUFFIX,f1.luoshenbest.cn,AdBlock +- DOMAIN-SUFFIX,f1.meishichina.com,AdBlock +- DOMAIN-SUFFIX,f1.p0y.cn,AdBlock +- DOMAIN-SUFFIX,f1.pig66.com,AdBlock +- DOMAIN-SUFFIX,f1190.com,AdBlock +- DOMAIN-SUFFIX,f1c.i.biquge5200.com,AdBlock +- DOMAIN-SUFFIX,f2.p0y.cn,AdBlock +- DOMAIN-SUFFIX,f2zd.com,AdBlock +- DOMAIN-SUFFIX,f3.mi-stat.gslb.mi-idc.com,AdBlock +- DOMAIN-SUFFIX,f3.vedeh.com,AdBlock +- DOMAIN-SUFFIX,f5.dfcwg.com,AdBlock +- DOMAIN-SUFFIX,f5.mtqys.com,AdBlock +- DOMAIN-SUFFIX,f56g.me,AdBlock +- DOMAIN-SUFFIX,f6ce.com,AdBlock +- DOMAIN-SUFFIX,f70123.com,AdBlock +- DOMAIN-SUFFIX,f8272.com,AdBlock +- DOMAIN-SUFFIX,fa.163.com,AdBlock +- DOMAIN-SUFFIX,facebookma.cn,AdBlock +- DOMAIN-SUFFIX,faggrim.com,AdBlock +- DOMAIN-SUFFIX,fair.sogou.com,AdBlock +- DOMAIN-SUFFIX,falundata.com,AdBlock +- DOMAIN-SUFFIX,falundata.org,AdBlock +- DOMAIN-SUFFIX,fan.liuxiaoer.com,AdBlock +- DOMAIN-SUFFIX,fan.twitch.tv,AdBlock +- DOMAIN-SUFFIX,fancyapi.com,AdBlock +- DOMAIN-SUFFIX,fanqianbb.com,AdBlock +- DOMAIN-SUFFIX,fans.bestvogue.com,AdBlock +- DOMAIN-SUFFIX,fansi365.com,AdBlock +- DOMAIN-SUFFIX,fanxing.kugou.com,AdBlock +- DOMAIN-SUFFIX,fan-yong.com,AdBlock +- DOMAIN-SUFFIX,farm-cn.plista.com,AdBlock +- DOMAIN-SUFFIX,fastable.com,AdBlock +- DOMAIN-SUFFIX,fastapi.net,AdBlock +- DOMAIN-SUFFIX,fastcache.com.cn,AdBlock +- DOMAIN-SUFFIX,fast-cdn.dianjoy.com,AdBlock +- DOMAIN-SUFFIX,fastclick.com,AdBlock +- DOMAIN-SUFFIX,fastclick.net,AdBlock +- DOMAIN-SUFFIX,fastly.bench.cedexis.com,AdBlock +- DOMAIN-SUFFIX,fastpopunder.com,AdBlock +- DOMAIN-SUFFIX,fathionmall.com,AdBlock +- DOMAIN-SUFFIX,fav.simba.taobao.com,AdBlock +- DOMAIN-SUFFIX,fb.xk.miui.com,AdBlock +- DOMAIN-SUFFIX,fbc.ffychb.com,AdBlock +- DOMAIN-SUFFIX,fccxgjg.com,AdBlock +- DOMAIN-SUFFIX,fc-feed.cdn.bcebos.com,AdBlock +- DOMAIN-SUFFIX,fclick.baidu.com,AdBlock +- DOMAIN-SUFFIX,fcsass.org.cn,AdBlock +- DOMAIN-SUFFIX,fd.anzhi.com,AdBlock +- DOMAIN-SUFFIX,fd.qchannel03.cn,AdBlock +- DOMAIN-SUFFIX,fd7c.com,AdBlock +- DOMAIN-SUFFIX,fds.api.moji.com,AdBlock +- DOMAIN-SUFFIX,fe.lea.lycos.co.uk,AdBlock +- DOMAIN-SUFFIX,fe1-au.imrworldwide.com,AdBlock +- DOMAIN-SUFFIX,fe2-au.imrworldwide.com,AdBlock +- DOMAIN-SUFFIX,fe3-au.imrworldwide.com,AdBlock +- DOMAIN-SUFFIX,fe-au.imrworldwide.com,AdBlock +- DOMAIN-SUFFIX,feed.baidu.com,AdBlock +- DOMAIN-SUFFIX,feed.theta.sogou.com,AdBlock +- DOMAIN-SUFFIX,feedback.whalecloud.com,AdBlock +- DOMAIN-SUFFIX,feeds.logicbuy.com,AdBlock +- DOMAIN-SUFFIX,feeds.videosz.com,AdBlock +- DOMAIN-SUFFIX,fei232.bhzje7ua9.com,AdBlock +- DOMAIN-SUFFIX,feidalu.com,AdBlock +- DOMAIN-SUFFIX,feifish66.com,AdBlock +- DOMAIN-SUFFIX,feih.com.cn,AdBlock +- DOMAIN-SUFFIX,feitianma.com,AdBlock +- DOMAIN-SUFFIX,feixin2.com,AdBlock +- DOMAIN-SUFFIX,fembsflungod.com,AdBlock +- DOMAIN-SUFFIX,fen.dkdlsj.com,AdBlock +- DOMAIN-SUFFIX,fengbuy.com,AdBlock +- DOMAIN-SUFFIX,fenggejiaju.com,AdBlock +- DOMAIN-SUFFIX,fenqihome.com,AdBlock +- DOMAIN-SUFFIX,fenvm.com,AdBlock +- DOMAIN-SUFFIX,fexclick.baidu.com,AdBlock +- DOMAIN-SUFFIX,ff.nsg.org.ua,AdBlock +- DOMAIN-SUFFIX,ffb.feihuo.com,AdBlock +- DOMAIN-SUFFIX,fff.yuyouge.com,AdBlock +- DOMAIN-SUFFIX,ffhtek.com,AdBlock +- DOMAIN-SUFFIX,fflsn.com,AdBlock +- DOMAIN-SUFFIX,ffre.ffrepair.com,AdBlock +- DOMAIN-SUFFIX,ffychb.com,AdBlock +- DOMAIN-SUFFIX,fge9vbrzwt.bid,AdBlock +- DOMAIN-SUFFIX,fghm.ga25.com,AdBlock +- DOMAIN-SUFFIX,fghmc.ga25.com,AdBlock +- DOMAIN-SUFFIX,fghmimg.ga25.com,AdBlock +- DOMAIN-SUFFIX,fgmtv.org,AdBlock +- DOMAIN-SUFFIX,file.bmob.cn,AdBlock +- DOMAIN-SUFFIX,files2.sogou.com,AdBlock +- DOMAIN-SUFFIX,fimserve.ign.com,AdBlock +- DOMAIN-SUFFIX,findicons.com,AdBlock +- DOMAIN-SUFFIX,finding.hardwareheaven.com,AdBlock +- DOMAIN-SUFFIX,findnsave.idahostatesman.com,AdBlock +- DOMAIN-SUFFIX,finead.cn,AdBlock +- DOMAIN-SUFFIX,fips.uimserv.net,AdBlock +- DOMAIN-SUFFIX,firefang.cn,AdBlock +- DOMAIN-SUFFIX,fjkst.com,AdBlock +- DOMAIN-SUFFIX,fjlqqc.com,AdBlock +- DOMAIN-SUFFIX,fjmeyer.com,AdBlock +- DOMAIN-SUFFIX,fkku194.com,AdBlock +- DOMAIN-SUFFIX,flash.2144.com,AdBlock +- DOMAIN-SUFFIX,flashtalking.com,AdBlock +- DOMAIN-SUFFIX,flowcodeapp.com,AdBlock +- DOMAIN-SUFFIX,flstudiochina.com,AdBlock +- DOMAIN-SUFFIX,flurry.cachefly.net,AdBlock +- DOMAIN-SUFFIX,flurry.com,AdBlock +- DOMAIN-SUFFIX,flux.faloo.com,AdBlock +- DOMAIN-SUFFIX,flv.dotmore.com.tw,AdBlock +- DOMAIN-SUFFIX,flv.ytshuirun.com,AdBlock +- DOMAIN-SUFFIX,flwja.com,AdBlock +- DOMAIN-SUFFIX,fm.p0y.cn,AdBlock +- DOMAIN-SUFFIX,fmgoal.com,AdBlock +- DOMAIN-SUFFIX,fnkjj.com,AdBlock +- DOMAIN-SUFFIX,focuscat.com,AdBlock +- DOMAIN-SUFFIX,focusprolight.com,AdBlock +- DOMAIN-SUFFIX,formysql.com,AdBlock +- DOMAIN-SUFFIX,fota4.adups.cn,AdBlock +- DOMAIN-SUFFIX,fotao9.com,AdBlock +- DOMAIN-SUFFIX,founseezb.cn,AdBlock +- DOMAIN-SUFFIX,fozhu.rrsdl.com,AdBlock +- DOMAIN-SUFFIX,fp.fraudmetrix.cn,AdBlock +- DOMAIN-SUFFIX,fpb.51edu.com,AdBlock +- DOMAIN-SUFFIX,fpb.kuhou.com,AdBlock +- DOMAIN-SUFFIX,fpb.mn586.com,AdBlock +- DOMAIN-SUFFIX,fpbbdx1.51240.com,AdBlock +- DOMAIN-SUFFIX,fpbjiansuo.mn586.com,AdBlock +- DOMAIN-SUFFIX,fpdownload.macromedia.com,AdBlock +- DOMAIN-SUFFIX,fptest.fraudmetrix.cn,AdBlock +- DOMAIN-SUFFIX,fqtra.com,AdBlock +- DOMAIN-SUFFIX,frame.enet.com.cn,AdBlock +- DOMAIN-SUFFIX,fraudmetrix.cn,AdBlock +- DOMAIN-SUFFIX,frdhq.cn,AdBlock +- DOMAIN-SUFFIX,free.aol.com,AdBlock +- DOMAIN-SUFFIX,freecodecs.us.intellitxt.com,AdBlock +- DOMAIN-SUFFIX,freedrive.cn,AdBlock +- DOMAIN-SUFFIX,freexxxvideoclip.aebn.net,AdBlock +- DOMAIN-SUFFIX,fs.uc.nearme.com.cn,AdBlock +- DOMAIN-SUFFIX,fsjsp.com,AdBlock +- DOMAIN-SUFFIX,fsr.lenovomm.com,AdBlock +- DOMAIN-SUFFIX,fst360.com,AdBlock +- DOMAIN-SUFFIX,fs-uc-nearme-com-cn.oss-cn-hangzhou.aliyuncs.com,AdBlock +- DOMAIN-SUFFIX,fsyzcs.com,AdBlock +- DOMAIN-SUFFIX,ft.moad.cn,AdBlock +- DOMAIN-SUFFIX,ft.pnop.com,AdBlock +- DOMAIN-SUFFIX,fthcz.com,AdBlock +- DOMAIN-SUFFIX,fu68.com,AdBlock +- DOMAIN-SUFFIX,fucnm.com,AdBlock +- DOMAIN-SUFFIX,fujianryt.com,AdBlock +- DOMAIN-SUFFIX,fun.ynet.com,AdBlock +- DOMAIN-SUFFIX,funshion.net.cn,AdBlock +- DOMAIN-SUFFIX,fus.lenovomm.com,AdBlock +- DOMAIN-SUFFIX,fusion.qq.com,AdBlock +- DOMAIN-SUFFIX,fv99.com,AdBlock +- DOMAIN-SUFFIX,fw.adsafeprotected.com,AdBlock +- DOMAIN-SUFFIX,fw.vpon.com,AdBlock +- DOMAIN-SUFFIX,fwmrm.net,AdBlock +- DOMAIN-SUFFIX,fwt0.com,AdBlock +- DOMAIN-SUFFIX,fxc.aiquxs.com,AdBlock +- DOMAIN-SUFFIX,fxmacd.com,AdBlock +- DOMAIN-SUFFIX,fxtducb.cn,AdBlock +- DOMAIN-SUFFIX,fxxgw.com,AdBlock +- DOMAIN-SUFFIX,fych.uranus.sogou.com,AdBlock +- DOMAIN-SUFFIX,fydgold132.com,AdBlock +- DOMAIN-SUFFIX,fytza.cn,AdBlock +- DOMAIN-SUFFIX,fz863.com,AdBlock +- DOMAIN-SUFFIX,fzz.cloud.1234507.com,AdBlock +- DOMAIN-SUFFIX,fzz.shgqjr.com,AdBlock +- DOMAIN-SUFFIX,g.163.com,AdBlock +- DOMAIN-SUFFIX,g.51network.com,AdBlock +- DOMAIN-SUFFIX,g.6sfg.com,AdBlock +- DOMAIN-SUFFIX,g.ad8.cc,AdBlock +- DOMAIN-SUFFIX,g.aligames.com,AdBlock +- DOMAIN-SUFFIX,g.baidu.com,AdBlock +- DOMAIN-SUFFIX,g.bitauto.com,AdBlock +- DOMAIN-SUFFIX,g.brothersoft.com,AdBlock +- DOMAIN-SUFFIX,g.chuiyao.com,AdBlock +- DOMAIN-SUFFIX,g.d.yoyi.tv,AdBlock +- DOMAIN-SUFFIX,g.daman.cc,AdBlock +- DOMAIN-SUFFIX,g.f11w.com,AdBlock +- DOMAIN-SUFFIX,g.f5gh.com,AdBlock +- DOMAIN-SUFFIX,g.gridsum.com,AdBlock +- DOMAIN-SUFFIX,g.haluoha.com,AdBlock +- DOMAIN-SUFFIX,g.hsw.cn,AdBlock +- DOMAIN-SUFFIX,g.koowo.com,AdBlock +- DOMAIN-SUFFIX,g.mnw.cn,AdBlock +- DOMAIN-SUFFIX,g.ousns.net,AdBlock +- DOMAIN-SUFFIX,g.rs.yoyi.com.cn,AdBlock +- DOMAIN-SUFFIX,g.s8dj.com,AdBlock +- DOMAIN-SUFFIX,g.szdn1ms.com,AdBlock +- DOMAIN-SUFFIX,g.usingde.com,AdBlock +- DOMAIN-SUFFIX,g.w5b454.com,AdBlock +- DOMAIN-SUFFIX,g.wan.2345.com,AdBlock +- DOMAIN-SUFFIX,g.wan.douyu.com,AdBlock +- DOMAIN-SUFFIX,g.wrating.com,AdBlock +- DOMAIN-SUFFIX,g.x.cn.xtgreat.com,AdBlock +- DOMAIN-SUFFIX,g.x.evolife.cn,AdBlock +- DOMAIN-SUFFIX,g.yccdn.com,AdBlock +- DOMAIN-SUFFIX,g.zx-jsp.com,AdBlock +- DOMAIN-SUFFIX,g1.0573ren.com,AdBlock +- DOMAIN-SUFFIX,g1.08160.cn,AdBlock +- DOMAIN-SUFFIX,g1.163.com,AdBlock +- DOMAIN-SUFFIX,g1.tagtic.cn,AdBlock +- DOMAIN-SUFFIX,g1.taijuba.com,AdBlock +- DOMAIN-SUFFIX,g1c5.com,AdBlock +- DOMAIN-SUFFIX,g1f5.com,AdBlock +- DOMAIN-SUFFIX,g2.ousns.net,AdBlock +- DOMAIN-SUFFIX,g3.iqilu.com,AdBlock +- DOMAIN-SUFFIX,g4.iqilu.com,AdBlock +- DOMAIN-SUFFIX,g9s.sgzs999.com,AdBlock +- DOMAIN-SUFFIX,gad.kugou.com,AdBlock +- DOMAIN-SUFFIX,gadwhy.com,AdBlock +- DOMAIN-SUFFIX,gafxa.code.mytanwan.com,AdBlock +- DOMAIN-SUFFIX,galaxy.sogoucdn.com,AdBlock +- DOMAIN-SUFFIX,game.9xzj.com,AdBlock +- DOMAIN-SUFFIX,game.baichuanhd.cn,AdBlock +- DOMAIN-SUFFIX,game.html5.qq.com,AdBlock +- DOMAIN-SUFFIX,game.kugou.com,AdBlock +- DOMAIN-SUFFIX,game.kuwo.cn,AdBlock +- DOMAIN-SUFFIX,game.qidian.com,AdBlock +- DOMAIN-SUFFIX,game.res.meizu.com,AdBlock +- DOMAIN-SUFFIX,game.rising.cn,AdBlock +- DOMAIN-SUFFIX,game.subway.uu.cc,AdBlock +- DOMAIN-SUFFIX,game.weibo.cn,AdBlock +- DOMAIN-SUFFIX,game.weibo.com,AdBlock +- DOMAIN-SUFFIX,gamead.swjoy.com,AdBlock +- DOMAIN-SUFFIX,gameads.digyourowngrave.com,AdBlock +- DOMAIN-SUFFIX,gamebox.kugou.com,AdBlock +- DOMAIN-SUFFIX,game-res.meizu.com,AdBlock +- DOMAIN-SUFFIX,ganjituiguang.ganji.com,AdBlock +- DOMAIN-SUFFIX,gao.ynet.com,AdBlock +- DOMAIN-SUFFIX,gas.data.pplive.com,AdBlock +- DOMAIN-SUFFIX,gateway.fortunelounge.com,AdBlock +- DOMAIN-SUFFIX,gateways.s3.amazonaws.com,AdBlock +- DOMAIN-SUFFIX,gb.corp.163.com,AdBlock +- DOMAIN-SUFFIX,gc.keefung-zs.com,AdBlock +- DOMAIN-SUFFIX,gcapi.sy.kugou.com,AdBlock +- DOMAIN-SUFFIX,gclick.cn,AdBlock +- DOMAIN-SUFFIX,gcs1.cn,AdBlock +- DOMAIN-SUFFIX,gd.cnhange.cn,AdBlock +- DOMAIN-SUFFIX,gd.jqgc.com,AdBlock +- DOMAIN-SUFFIX,gd.vodtw.com,AdBlock +- DOMAIN-SUFFIX,gdbly.com,AdBlock +- DOMAIN-SUFFIX,gdgy56.com,AdBlock +- DOMAIN-SUFFIX,gdskywings.com,AdBlock +- DOMAIN-SUFFIX,gdsqwy.org,AdBlock +- DOMAIN-SUFFIX,gdyn.cnn.com,AdBlock +- DOMAIN-SUFFIX,ge95.com,AdBlock +- DOMAIN-SUFFIX,geili.co,AdBlock +- DOMAIN-SUFFIX,geiyujieda.com,AdBlock +- DOMAIN-SUFFIX,gemini.yahoo.com,AdBlock +- DOMAIN-SUFFIX,gen.alicdn.com,AdBlock +- DOMAIN-SUFFIX,gentags.com,AdBlock +- DOMAIN-SUFFIX,geo.cliphunter.com,AdBlock +- DOMAIN-SUFFIX,geo.connexionsecure.com,AdBlock +- DOMAIN-SUFFIX,geo.frtya.com,AdBlock +- DOMAIN-SUFFIX,geo.frtyd.com,AdBlock +- DOMAIN-SUFFIX,geo.gridsumdissector.com,AdBlock +- DOMAIN-SUFFIX,geo.moatads.com,AdBlock +- DOMAIN-SUFFIX,geo.yahoo.com,AdBlock +- DOMAIN-SUFFIX,geo2.adobe.com,AdBlock +- DOMAIN-SUFFIX,geobanner.alt.com,AdBlock +- DOMAIN-SUFFIX,geobanner.friendfinder.com,AdBlock +- DOMAIN-SUFFIX,geobanner.passion.com,AdBlock +- DOMAIN-SUFFIX,geobanner.socialflirt.com,AdBlock +- DOMAIN-SUFFIX,geoshopping.nzherald.co.nz,AdBlock +- DOMAIN-SUFFIX,geryi.com,AdBlock +- DOMAIN-SUFFIX,get.thefile.me,AdBlock +- DOMAIN-SUFFIX,get3.adobe.com,AdBlock +- DOMAIN-SUFFIX,getnormalizedurl.com,AdBlock +- DOMAIN-SUFFIX,gewuwen.com,AdBlock +- DOMAIN-SUFFIX,gf108.com,AdBlock +- DOMAIN-SUFFIX,gf1352.com,AdBlock +- DOMAIN-SUFFIX,gfd80.com,AdBlock +- DOMAIN-SUFFIX,gfh.ahfzly.com,AdBlock +- DOMAIN-SUFFIX,gfx.infomine.com,AdBlock +- DOMAIN-SUFFIX,gg.0598yu.com,AdBlock +- DOMAIN-SUFFIX,gg.5173.com,AdBlock +- DOMAIN-SUFFIX,gg.51cto.com,AdBlock +- DOMAIN-SUFFIX,gg.amblrgg.live,AdBlock +- DOMAIN-SUFFIX,gg.anqu.com,AdBlock +- DOMAIN-SUFFIX,gg.blueidea.com,AdBlock +- DOMAIN-SUFFIX,gg.caixin.com,AdBlock +- DOMAIN-SUFFIX,gg.cs090.com,AdBlock +- DOMAIN-SUFFIX,gg.dsxdn.com,AdBlock +- DOMAIN-SUFFIX,gg.gao7.com,AdBlock +- DOMAIN-SUFFIX,gg.haianw.com,AdBlock +- DOMAIN-SUFFIX,gg.huangye88.com,AdBlock +- DOMAIN-SUFFIX,gg.jkmeishi.com,AdBlock +- DOMAIN-SUFFIX,gg.kugou.com,AdBlock +- DOMAIN-SUFFIX,gg.meitu.com,AdBlock +- DOMAIN-SUFFIX,gg.ptfish.com,AdBlock +- DOMAIN-SUFFIX,gg.sonhoo.com,AdBlock +- DOMAIN-SUFFIX,gg.stargame.com,AdBlock +- DOMAIN-SUFFIX,gg.uuu9.com,AdBlock +- DOMAIN-SUFFIX,gg.vidown.cn,AdBlock +- DOMAIN-SUFFIX,gg.xywy.com,AdBlock +- DOMAIN-SUFFIX,gg.yxdown.com,AdBlock +- DOMAIN-SUFFIX,gg.zhongyao1.com,AdBlock +- DOMAIN-SUFFIX,gg0376.com,AdBlock +- DOMAIN-SUFFIX,gg1.yszyz.com,AdBlock +- DOMAIN-SUFFIX,gg2.51cto.com,AdBlock +- DOMAIN-SUFFIX,gg2.dss9927.com,AdBlock +- DOMAIN-SUFFIX,gg3.51cto.com,AdBlock +- DOMAIN-SUFFIX,gg570.com,AdBlock +- DOMAIN-SUFFIX,gg86.pinggu.org,AdBlock +- DOMAIN-SUFFIX,gg8888.cnfol.com,AdBlock +- DOMAIN-SUFFIX,ggb.douguo.com,AdBlock +- DOMAIN-SUFFIX,ggcode.2345.com,AdBlock +- DOMAIN-SUFFIX,ggdoubi.com,AdBlock +- DOMAIN-SUFFIX,ggg.zj.com,AdBlock +- DOMAIN-SUFFIX,ggle.lywf.me,AdBlock +- DOMAIN-SUFFIX,ggmm777.com,AdBlock +- DOMAIN-SUFFIX,ggmmqq.com,AdBlock +- DOMAIN-SUFFIX,ggr.yxdown.com,AdBlock +- DOMAIN-SUFFIX,ggs.myzaker.com,AdBlock +- DOMAIN-SUFFIX,ggw.gusuwang.com,AdBlock +- DOMAIN-SUFFIX,ggw.watertu.com,AdBlock +- DOMAIN-SUFFIX,ggxt.net,AdBlock +- DOMAIN-SUFFIX,gi.xi.gxabj.com,AdBlock +- DOMAIN-SUFFIX,gif.lu.sogoucdn.com,AdBlock +- DOMAIN-SUFFIX,gimg.baidu.com,AdBlock +- DOMAIN-SUFFIX,gimg.bitauto.com,AdBlock +- DOMAIN-SUFFIX,girlcc.cc,AdBlock +- DOMAIN-SUFFIX,gj500.com,AdBlock +- DOMAIN-SUFFIX,gjghy.com,AdBlock +- DOMAIN-SUFFIX,gjreg.code.weddingeeos.com,AdBlock +- DOMAIN-SUFFIX,glasszz.com,AdBlock +- DOMAIN-SUFFIX,gload.adhood.com,AdBlock +- DOMAIN-SUFFIX,global.msads.net,AdBlock +- DOMAIN-SUFFIX,global.ymtracking.com,AdBlock +- DOMAIN-SUFFIX,gm682.com,AdBlock +- DOMAIN-SUFFIX,gma.alicdn.com,AdBlock +- DOMAIN-SUFFIX,gma1.com,AdBlock +- DOMAIN-SUFFIX,gmota.g188.net,AdBlock +- DOMAIN-SUFFIX,gmtdmp.mookie1.com,AdBlock +- DOMAIN-SUFFIX,go.gogolm.xyz,AdBlock +- DOMAIN-SUFFIX,go.gotourl.xyz,AdBlock +- DOMAIN-SUFFIX,go.gotourls.bid,AdBlock +- DOMAIN-SUFFIX,go.hangzhou.com.cn,AdBlock +- DOMAIN-SUFFIX,go.mmstat.com,AdBlock +- DOMAIN-SUFFIX,go.onclasrv.com,AdBlock +- DOMAIN-SUFFIX,go.util.zlibs.com,AdBlock +- DOMAIN-SUFFIX,godloveme.cn,AdBlock +- DOMAIN-SUFFIX,gog9.qzdfc.com,AdBlock +- DOMAIN-SUFFIX,go-mpulse.net,AdBlock +- DOMAIN-SUFFIX,good.ta80.com,AdBlock +- DOMAIN-SUFFIX,googlecommerce.com,AdBlock +- DOMAIN-SUFFIX,googlesyndication.com,AdBlock +- DOMAIN-SUFFIX,googletagmanager.com,AdBlock +- DOMAIN-SUFFIX,googletagservices.com,AdBlock +- DOMAIN-SUFFIX,goolpter.com,AdBlock +- DOMAIN-SUFFIX,gopig.io,AdBlock +- DOMAIN-SUFFIX,gorgon.youdao.com,AdBlock +- DOMAIN-SUFFIX,gosquared.com,AdBlock +- DOMAIN-SUFFIX,goto.sogou.com,AdBlock +- DOMAIN-SUFFIX,goto.www.iciba.com,AdBlock +- DOMAIN-SUFFIX,gotourl.xyz,AdBlock +- DOMAIN-SUFFIX,goufanli100.com,AdBlock +- DOMAIN-SUFFIX,gouwubang.com,AdBlock +- DOMAIN-SUFFIX,gouzhibao.cn,AdBlock +- DOMAIN-SUFFIX,govgift.com,AdBlock +- DOMAIN-SUFFIX,govids.net,AdBlock +- DOMAIN-SUFFIX,gp.jstv.com,AdBlock +- DOMAIN-SUFFIX,gpydym.cn,AdBlock +- DOMAIN-SUFFIX,gqswg.com,AdBlock +- DOMAIN-SUFFIX,grand.ele.me,AdBlock +- DOMAIN-SUFFIX,green.erne.co,AdBlock +- DOMAIN-SUFFIX,greenhouseglobal.cn,AdBlock +- DOMAIN-SUFFIX,greenxfs.down.123ch.cn,AdBlock +- DOMAIN-SUFFIX,gridsum.com,AdBlock +- DOMAIN-SUFFIX,gridsumdissector.cn,AdBlock +- DOMAIN-SUFFIX,gridsumdissector.com,AdBlock +- DOMAIN-SUFFIX,groupa.onlylady.com,AdBlock +- DOMAIN-SUFFIX,growingio.com,AdBlock +- DOMAIN-SUFFIX,gs307.com,AdBlock +- DOMAIN-SUFFIX,gso0.com,AdBlock +- DOMAIN-SUFFIX,gstat.bitauto.com,AdBlock +- DOMAIN-SUFFIX,gt.yy.com,AdBlock +- DOMAIN-SUFFIX,gt4ec.net,AdBlock +- DOMAIN-SUFFIX,gtags.net,AdBlock +- DOMAIN-SUFFIX,gtmucs.cn,AdBlock +- DOMAIN-SUFFIX,gu.qlogo.cn,AdBlock +- DOMAIN-SUFFIX,guang.lesports.com,AdBlock +- DOMAIN-SUFFIX,guang.sdsgwy.com,AdBlock +- DOMAIN-SUFFIX,guangzhuiyuan.com,AdBlock +- DOMAIN-SUFFIX,guangzizai.com,AdBlock +- DOMAIN-SUFFIX,guanjia.baidu.com,AdBlock +- DOMAIN-SUFFIX,guduopu.com,AdBlock +- DOMAIN-SUFFIX,guess.h.qhimg.com,AdBlock +- DOMAIN-SUFFIX,guestworld.tripod.lycos.com,AdBlock +- DOMAIN-SUFFIX,gugulonger.cn,AdBlock +- DOMAIN-SUFFIX,guidashu.com,AdBlock +- DOMAIN-SUFFIX,guitarpro.cc,AdBlock +- DOMAIN-SUFFIX,gum.criteo.com,AdBlock +- DOMAIN-SUFFIX,guohead.com,AdBlock +- DOMAIN-SUFFIX,guomob.com,AdBlock +- DOMAIN-SUFFIX,guoshennet.com,AdBlock +- DOMAIN-SUFFIX,gw5.push.mcp.weibo.cn,AdBlock +- DOMAIN-SUFFIX,gw6.push.mcp.weibo.cn,AdBlock +- DOMAIN-SUFFIX,gw630.com,AdBlock +- DOMAIN-SUFFIX,gx38.cn,AdBlock +- DOMAIN-SUFFIX,gxb.mmstat.com,AdBlock +- DOMAIN-SUFFIX,gxdhgb.com,AdBlock +- DOMAIN-SUFFIX,gxe.husky.sogou.com,AdBlock +- DOMAIN-SUFFIX,gyca9f.dahuangcheng.cn,AdBlock +- DOMAIN-SUFFIX,gydag.com,AdBlock +- DOMAIN-SUFFIX,gyrtg.com,AdBlock +- DOMAIN-SUFFIX,gz.hxdaka.com,AdBlock +- DOMAIN-SUFFIX,gz00005.top,AdBlock +- DOMAIN-SUFFIX,gzktpf.com,AdBlock +- DOMAIN-SUFFIX,gzlykj.cn,AdBlock +- DOMAIN-SUFFIX,gzmjnx.cn,AdBlock +- DOMAIN-SUFFIX,gzqudou.com,AdBlock +- DOMAIN-SUFFIX,h.canmg.cn,AdBlock +- DOMAIN-SUFFIX,h.holder.com.ua,AdBlock +- DOMAIN-SUFFIX,h.irs01.com,AdBlock +- DOMAIN-SUFFIX,h.laojiayoufang.com,AdBlock +- DOMAIN-SUFFIX,h.msn.com,AdBlock +- DOMAIN-SUFFIX,h.pcd.autohome.com.cn,AdBlock +- DOMAIN-SUFFIX,h.sora.yoyi.com.cn,AdBlock +- DOMAIN-SUFFIX,h01.hotrank.com.tw,AdBlock +- DOMAIN-SUFFIX,h1.18sd.cn,AdBlock +- DOMAIN-SUFFIX,h2.18sd.cn,AdBlock +- DOMAIN-SUFFIX,h5.holalauncher.com,AdBlock +- DOMAIN-SUFFIX,h5.jiumaster.com,AdBlock +- DOMAIN-SUFFIX,h5.pk1179.com,AdBlock +- DOMAIN-SUFFIX,h5.super-dreamers.com,AdBlock +- DOMAIN-SUFFIX,h5.taihao.cc,AdBlock +- DOMAIN-SUFFIX,h8.bec.com,AdBlock +- DOMAIN-SUFFIX,h9377c.com,AdBlock +- DOMAIN-SUFFIX,haitaoad.nosdn.127.net,AdBlock +- DOMAIN-SUFFIX,haiwai-ic.ksosoft.com,AdBlock +- DOMAIN-SUFFIX,haiwengji.net,AdBlock +- DOMAIN-SUFFIX,haiyunpush.com,AdBlock +- DOMAIN-SUFFIX,hanju18.net,AdBlock +- DOMAIN-SUFFIX,hao.7654.com,AdBlock +- DOMAIN-SUFFIX,hao.qquu8.com,AdBlock +- DOMAIN-SUFFIX,hao.tiandi.com,AdBlock +- DOMAIN-SUFFIX,hao.uc.cn,AdBlock +- DOMAIN-SUFFIX,hao123.xywy.com,AdBlock +- DOMAIN-SUFFIX,hao123rt.com,AdBlock +- DOMAIN-SUFFIX,hao549.com,AdBlock +- DOMAIN-SUFFIX,hao61.net,AdBlock +- DOMAIN-SUFFIX,hao916.com,AdBlock +- DOMAIN-SUFFIX,hao934.com,AdBlock +- DOMAIN-SUFFIX,haoghost.com,AdBlock +- DOMAIN-SUFFIX,haohaowan8.com,AdBlock +- DOMAIN-SUFFIX,haolew.com,AdBlock +- DOMAIN-SUFFIX,haoshengtoys.com,AdBlock +- DOMAIN-SUFFIX,haostat.qihoo.com,AdBlock +- DOMAIN-SUFFIX,hapic1.jhkxwl.com,AdBlock +- DOMAIN-SUFFIX,hascosafety.com,AdBlock +- DOMAIN-SUFFIX,hats.haibao.cn,AdBlock +- DOMAIN-SUFFIX,hbalx.cn,AdBlock +- DOMAIN-SUFFIX,hbdt.luomi.com,AdBlock +- DOMAIN-SUFFIX,hblinwei.com,AdBlock +- DOMAIN-SUFFIX,hbngfy.com,AdBlock +- DOMAIN-SUFFIX,hbyyzm.com,AdBlock +- DOMAIN-SUFFIX,hc.baidu.com,AdBlock +- DOMAIN-SUFFIX,hccms.com.cn,AdBlock +- DOMAIN-SUFFIX,hcreditx.com,AdBlock +- DOMAIN-SUFFIX,hd.jiedaibao.com,AdBlock +- DOMAIN-SUFFIX,hd.ylddq.com,AdBlock +- DOMAIN-SUFFIX,hda.maxli.cn,AdBlock +- DOMAIN-SUFFIX,hdad.baike.com,AdBlock +- DOMAIN-SUFFIX,hdb.maxli.cn,AdBlock +- DOMAIN-SUFFIX,hdggcdn.bayimob.com,AdBlock +- DOMAIN-SUFFIX,hdhkwl.com,AdBlock +- DOMAIN-SUFFIX,hdj.baidu.com,AdBlock +- DOMAIN-SUFFIX,he2d.com,AdBlock +- DOMAIN-SUFFIX,health1.12584.cn,AdBlock +- DOMAIN-SUFFIX,heavenmedia.v3g4s.com,AdBlock +- DOMAIN-SUFFIX,hechaocheng.cn,AdBlock +- DOMAIN-SUFFIX,heefwozhlxgz.com,AdBlock +- DOMAIN-SUFFIX,hefan365.com,AdBlock +- DOMAIN-SUFFIX,heib10.top,AdBlock +- DOMAIN-SUFFIX,heib12.top,AdBlock +- DOMAIN-SUFFIX,heimo.rrsdl.com,AdBlock +- DOMAIN-SUFFIX,hejban.youwatch.org,AdBlock +- DOMAIN-SUFFIX,hejingroup.cn,AdBlock +- DOMAIN-SUFFIX,help.baotangwang.cn,AdBlock +- DOMAIN-SUFFIX,help.yunaq.com,AdBlock +- DOMAIN-SUFFIX,hesxz.com,AdBlock +- DOMAIN-SUFFIX,heyzap.com,AdBlock +- DOMAIN-SUFFIX,hfjuki.com,AdBlock +- DOMAIN-SUFFIX,hfsteel.net,AdBlock +- DOMAIN-SUFFIX,hg417.bet,AdBlock +- DOMAIN-SUFFIX,hg89038.com,AdBlock +- DOMAIN-SUFFIX,hg89068.com,AdBlock +- DOMAIN-SUFFIX,hg89078.com,AdBlock +- DOMAIN-SUFFIX,hgame.com,AdBlock +- DOMAIN-SUFFIX,hh6666.com,AdBlock +- DOMAIN-SUFFIX,hhlian.com,AdBlock +- DOMAIN-SUFFIX,hhly88.com,AdBlock +- DOMAIN-SUFFIX,hhppyt.com,AdBlock +- DOMAIN-SUFFIX,hhqda.pop.t5yx.cn,AdBlock +- DOMAIN-SUFFIX,hi686.com,AdBlock +- DOMAIN-SUFFIX,hi760.com,AdBlock +- DOMAIN-SUFFIX,hi9377.com,AdBlock +- DOMAIN-SUFFIX,hiad.myweb.hinet.net,AdBlock +- DOMAIN-SUFFIX,hiad.vmall.com,AdBlock +- DOMAIN-SUFFIX,higame123.com,AdBlock +- DOMAIN-SUFFIX,hilltopads.net,AdBlock +- DOMAIN-SUFFIX,himandy.com,AdBlock +- DOMAIN-SUFFIX,hipersushiads.com,AdBlock +- DOMAIN-SUFFIX,histats.com,AdBlock +- DOMAIN-SUFFIX,hit.webcentre.lycos.co.uk,AdBlock +- DOMAIN-SUFFIX,hitlog2.chosun.com,AdBlock +- DOMAIN-SUFFIX,hitslink.com,AdBlock +- DOMAIN-SUFFIX,hivecn.cn,AdBlock +- DOMAIN-SUFFIX,hivedata.cc,AdBlock +- DOMAIN-SUFFIX,hjc1990.com,AdBlock +- DOMAIN-SUFFIX,hk.jtsh123.com,AdBlock +- DOMAIN-SUFFIX,hk.napi.ucweb.com,AdBlock +- DOMAIN-SUFFIX,hk9600.com,AdBlock +- DOMAIN-SUFFIX,hk-cdn.effectivemeasure.net,AdBlock +- DOMAIN-SUFFIX,hkfuy.com,AdBlock +- DOMAIN-SUFFIX,hl.kuzu.com,AdBlock +- DOMAIN-SUFFIX,hl.quw18.com,AdBlock +- DOMAIN-SUFFIX,hl2rcv.adobe.com,AdBlock +- DOMAIN-SUFFIX,hldwmly.com,AdBlock +- DOMAIN-SUFFIX,hlrcv.stage.adobe.com,AdBlock +- DOMAIN-SUFFIX,hm.baidu.com,AdBlock +- DOMAIN-SUFFIX,hmma.baidu.com,AdBlock +- DOMAIN-SUFFIX,hmp33.com,AdBlock +- DOMAIN-SUFFIX,hmttoly.com,AdBlock +- DOMAIN-SUFFIX,hmyangshengji.com,AdBlock +- DOMAIN-SUFFIX,hnasd.com,AdBlock +- DOMAIN-SUFFIX,hnctsm.com,AdBlock +- DOMAIN-SUFFIX,hndiyikj.com,AdBlock +- DOMAIN-SUFFIX,hnxxjn.com,AdBlock +- DOMAIN-SUFFIX,hnyny.com,AdBlock +- DOMAIN-SUFFIX,hoisin.coocaatv.com,AdBlock +- DOMAIN-SUFFIX,home520.com,AdBlock +- DOMAIN-SUFFIX,hoplink.ksosoft.com,AdBlock +- DOMAIN-SUFFIX,hosting.miarroba.info,AdBlock +- DOMAIN-SUFFIX,hot.browser.miui.com,AdBlock +- DOMAIN-SUFFIX,hot.m.shouji.360tpcdn.com,AdBlock +- DOMAIN-SUFFIX,hot-mob.com,AdBlock +- DOMAIN-SUFFIX,hotrank.com.tw,AdBlock +- DOMAIN-SUFFIX,houdaolj.com,AdBlock +- DOMAIN-SUFFIX,houtai.2345.com,AdBlock +- DOMAIN-SUFFIX,hpd.baidu.com,AdBlock +- DOMAIN-SUFFIX,hpqxznpb.bid,AdBlock +- DOMAIN-SUFFIX,hqgjcm.com,AdBlock +- DOMAIN-SUFFIX,hr41.cn,AdBlock +- DOMAIN-SUFFIX,hr44.com,AdBlock +- DOMAIN-SUFFIX,hs.qhupdate.com,AdBlock +- DOMAIN-SUFFIX,hslyqs.com,AdBlock +- DOMAIN-SUFFIX,ht.www.sogou.com,AdBlock +- DOMAIN-SUFFIX,htfmbt.com,AdBlock +- DOMAIN-SUFFIX,htjsk.com,AdBlock +- DOMAIN-SUFFIX,html.350.com,AdBlock +- DOMAIN-SUFFIX,html.sunday8.com,AdBlock +- DOMAIN-SUFFIX,html.yuntzs.com,AdBlock +- DOMAIN-SUFFIX,httpdns.push.oppomobile.com,AdBlock +- DOMAIN-SUFFIX,huahuaka.com,AdBlock +- DOMAIN-SUFFIX,huashengtai.net,AdBlock +- DOMAIN-SUFFIX,huashuowork.com,AdBlock +- DOMAIN-SUFFIX,huaxinxunye.cn,AdBlock +- DOMAIN-SUFFIX,huayi65.com,AdBlock +- DOMAIN-SUFFIX,hub5pn.wap.sandai.net,AdBlock +- DOMAIN-SUFFIX,hubojd.com,AdBlock +- DOMAIN-SUFFIX,huichuan.sm.cn,AdBlock +- DOMAIN-SUFFIX,huimee.net,AdBlock +- DOMAIN-SUFFIX,huishenghuiying.com,AdBlock +- DOMAIN-SUFFIX,huishenghuiying.com.cn,AdBlock +- DOMAIN-SUFFIX,humanding.com,AdBlock +- DOMAIN-SUFFIX,hunpingou.com,AdBlock +- DOMAIN-SUFFIX,huodonghezi.com,AdBlock +- DOMAIN-SUFFIX,huoying666.com,AdBlock +- DOMAIN-SUFFIX,hv.code.tanwanyx.com,AdBlock +- DOMAIN-SUFFIX,hw6.com,AdBlock +- DOMAIN-SUFFIX,hwt.player888.cn,AdBlock +- DOMAIN-SUFFIX,hxadt.com,AdBlock +- DOMAIN-SUFFIX,hxspc.com,AdBlock +- DOMAIN-SUFFIX,hxstfxx.cn,AdBlock +- DOMAIN-SUFFIX,hxueu.code.weddingeeos.com,AdBlock +- DOMAIN-SUFFIX,hxyifu.com,AdBlock +- DOMAIN-SUFFIX,hxyx360.com,AdBlock +- DOMAIN-SUFFIX,hyfh.benbaisteel.com,AdBlock +- DOMAIN-SUFFIX,hyfyuan.com,AdBlock +- DOMAIN-SUFFIX,hyperpromote.com,AdBlock +- DOMAIN-SUFFIX,hypersnap.net,AdBlock +- DOMAIN-SUFFIX,hys4.com,AdBlock +- DOMAIN-SUFFIX,hystq.com,AdBlock +- DOMAIN-SUFFIX,hytgj.com,AdBlock +- DOMAIN-SUFFIX,hyz86.com,AdBlock +- DOMAIN-SUFFIX,hz.miercn.com,AdBlock +- DOMAIN-SUFFIX,hz.mmstat.com,AdBlock +- DOMAIN-SUFFIX,hz.shouyoutv.com,AdBlock +- DOMAIN-SUFFIX,hzaibi.com,AdBlock +- DOMAIN-SUFFIX,hzdmacore.kejet.net,AdBlock +- DOMAIN-SUFFIX,hzhyhm.com,AdBlock +- DOMAIN-SUFFIX,hzsod71wov.me,AdBlock +- DOMAIN-SUFFIX,hzxfmc.com,AdBlock +- DOMAIN-SUFFIX,hzyuw.com,AdBlock +- DOMAIN-SUFFIX,i.bigmir.net,AdBlock +- DOMAIN-SUFFIX,i.clkservice.youdao.com,AdBlock +- DOMAIN-SUFFIX,i.dreamfull.cn,AdBlock +- DOMAIN-SUFFIX,i.flow.browser.oppomobile.com,AdBlock +- DOMAIN-SUFFIX,i.go.sohu.com,AdBlock +- DOMAIN-SUFFIX,i.haloapps.com,AdBlock +- DOMAIN-SUFFIX,i.hao61.net,AdBlock +- DOMAIN-SUFFIX,i.holalauncher.com,AdBlock +- DOMAIN-SUFFIX,i.huilixieye.net,AdBlock +- DOMAIN-SUFFIX,i.jiathis.com,AdBlock +- DOMAIN-SUFFIX,i.jyhwt.cn,AdBlock +- DOMAIN-SUFFIX,i.l.cnn.net,AdBlock +- DOMAIN-SUFFIX,i.liadm.com,AdBlock +- DOMAIN-SUFFIX,i.ma.social-touch.com,AdBlock +- DOMAIN-SUFFIX,i.mmcdn.cn,AdBlock +- DOMAIN-SUFFIX,i.ssix.io,AdBlock +- DOMAIN-SUFFIX,i.syasn.com,AdBlock +- DOMAIN-SUFFIX,i.tansuotv.com,AdBlock +- DOMAIN-SUFFIX,i.w55c.net,AdBlock +- DOMAIN-SUFFIX,i.zhuoyaju.com,AdBlock +- DOMAIN-SUFFIX,i1236.net,AdBlock +- DOMAIN-SUFFIX,i2.akjunshi.com,AdBlock +- DOMAIN-SUFFIX,i3818.com,AdBlock +- DOMAIN-SUFFIX,i5.akjunshi.com,AdBlock +- DOMAIN-SUFFIX,i92xue.com,AdBlock +- DOMAIN-SUFFIX,ia.ctags.cn,AdBlock +- DOMAIN-SUFFIX,iad.g.163.com,AdBlock +- DOMAIN-SUFFIX,iadc.qwapi.com,AdBlock +- DOMAIN-SUFFIX,iadmat.nosdn.127.net,AdBlock +- DOMAIN-SUFFIX,iadmatvideo.nosdn.127.net,AdBlock +- DOMAIN-SUFFIX,iadmusicmat.music.126.net,AdBlock +- DOMAIN-SUFFIX,iads.xinmin.cn,AdBlock +- DOMAIN-SUFFIX,iadsdk.apple.com,AdBlock +- DOMAIN-SUFFIX,ib.adnxs.co,AdBlock +- DOMAIN-SUFFIX,ibafnw.cn,AdBlock +- DOMAIN-SUFFIX,ibanners.empoweredcomms.com.au,AdBlock +- DOMAIN-SUFFIX,ic.wps.cn,AdBlock +- DOMAIN-SUFFIX,icast.cn,AdBlock +- DOMAIN-SUFFIX,icdxc.com,AdBlock +- DOMAIN-SUFFIX,ichaosheng.com,AdBlock +- DOMAIN-SUFFIX,icn.southmoney.com,AdBlock +- DOMAIN-SUFFIX,ico.58pic.com,AdBlock +- DOMAIN-SUFFIX,icon.cnmo.com,AdBlock +- DOMAIN-SUFFIX,icons.mydrivers.com,AdBlock +- DOMAIN-SUFFIX,iconworkshop.cn,AdBlock +- DOMAIN-SUFFIX,id.jiathis.com,AdBlock +- DOMAIN-SUFFIX,id528.com,AdBlock +- DOMAIN-SUFFIX,ida.cnool.net,AdBlock +- DOMAIN-SUFFIX,idasai.com,AdBlock +- DOMAIN-SUFFIX,idcot.com,AdBlock +- DOMAIN-SUFFIX,idcqi.com,AdBlock +- DOMAIN-SUFFIX,identified.cn,AdBlock +- DOMAIN-SUFFIX,idianfang.com,AdBlock +- DOMAIN-SUFFIX,idm-su.baidu.com,AdBlock +- DOMAIN-SUFFIX,ids.deliver.ifeng.com,AdBlock +- DOMAIN-SUFFIX,ids1.deliver.ifeng.com,AdBlock +- DOMAIN-SUFFIX,idx.m.hub.sandai.net,AdBlock +- DOMAIN-SUFFIX,ie8eamus.com,AdBlock +- DOMAIN-SUFFIX,iebar.baidu.com,AdBlock +- DOMAIN-SUFFIX,ieonline.microsoft.com,AdBlock +- DOMAIN-SUFFIX,if1512.com,AdBlock +- DOMAIN-SUFFIX,ifengad.3g.ifeng.com,AdBlock +- DOMAIN-SUFFIX,iflyad.bj.openstorage.cn,AdBlock +- DOMAIN-SUFFIX,iframe.travel.yahoo.com,AdBlock +- DOMAIN-SUFFIX,ig.nukefans.net,AdBlock +- DOMAIN-SUFFIX,igexin.com,AdBlock +- DOMAIN-SUFFIX,igj5y.yongchanghengyuan.com,AdBlock +- DOMAIN-SUFFIX,ih.adscale.de,AdBlock +- DOMAIN-SUFFIX,ihualun.com,AdBlock +- DOMAIN-SUFFIX,ihuanmei.com,AdBlock +- DOMAIN-SUFFIX,iia1.pikacn.com,AdBlock +- DOMAIN-SUFFIX,iiad.com,AdBlock +- DOMAIN-SUFFIX,iiewl.com,AdBlock +- DOMAIN-SUFFIX,iii.6park.com,AdBlock +- DOMAIN-SUFFIX,iis1.deliver.ifeng.com,AdBlock +- DOMAIN-SUFFIX,iis3g.deliver.ifeng.com,AdBlock +- DOMAIN-SUFFIX,iisl7wpf.me,AdBlock +- DOMAIN-SUFFIX,ikcode.baidu.com,AdBlock +- DOMAIN-SUFFIX,il8r.com,AdBlock +- DOMAIN-SUFFIX,im.jpush.cn,AdBlock +- DOMAIN-SUFFIX,im.ov.yahoo.co.jp,AdBlock +- DOMAIN-SUFFIX,im1.56zzw.com,AdBlock +- DOMAIN-SUFFIX,im64.jpush.cn,AdBlock +- DOMAIN-SUFFIX,ima3vpaid.appspot.com,AdBlock +- DOMAIN-SUFFIX,imads.rediff.com,AdBlock +- DOMAIN-SUFFIX,image.139y.com,AdBlock +- DOMAIN-SUFFIX,image.9duw.com,AdBlock +- DOMAIN-SUFFIX,image.box.xiaomi.com,AdBlock +- DOMAIN-SUFFIX,image.fsyule.net,AdBlock +- DOMAIN-SUFFIX,image.gentags.com,AdBlock +- DOMAIN-SUFFIX,image.haiyunx.com,AdBlock +- DOMAIN-SUFFIX,image.hh010.com,AdBlock +- DOMAIN-SUFFIX,image.hj217.com,AdBlock +- DOMAIN-SUFFIX,image.p4p.sogou.com,AdBlock +- DOMAIN-SUFFIX,image.qj175.com,AdBlock +- DOMAIN-SUFFIX,image.zzd.sm.cn,AdBlock +- DOMAIN-SUFFIX,imagelx.yidianzixun.com,AdBlock +- DOMAIN-SUFFIX,images.avsmt.cn,AdBlock +- DOMAIN-SUFFIX,images.chinaz.com,AdBlock +- DOMAIN-SUFFIX,images.enet.com.cn,AdBlock +- DOMAIN-SUFFIX,images.fastclick.net,AdBlock +- DOMAIN-SUFFIX,images.gxsky.com,AdBlock +- DOMAIN-SUFFIX,images.intellitxt.com,AdBlock +- DOMAIN-SUFFIX,images.millennialmedia.com,AdBlock +- DOMAIN-SUFFIX,images.pagechoice.net,AdBlock +- DOMAIN-SUFFIX,images.sohu.com,AdBlock +- DOMAIN-SUFFIX,images.startappservice.com,AdBlock +- DOMAIN-SUFFIX,images.tyyjzs.cn,AdBlock +- DOMAIN-SUFFIX,images9999.com,AdBlock +- DOMAIN-SUFFIX,imageter.com,AdBlock +- DOMAIN-SUFFIX,imagzine.oppomobile.com,AdBlock +- DOMAIN-SUFFIX,imedia.bokecc.com,AdBlock +- DOMAIN-SUFFIX,imeijiajia.com,AdBlock +- DOMAIN-SUFFIX,imfsr.lenovomm.com,AdBlock +- DOMAIN-SUFFIX,img.12584.cn,AdBlock +- DOMAIN-SUFFIX,img.3sjt.com,AdBlock +- DOMAIN-SUFFIX,img.88ads.com,AdBlock +- DOMAIN-SUFFIX,img.9duw.com,AdBlock +- DOMAIN-SUFFIX,img.ad.zhangyue.com,AdBlock +- DOMAIN-SUFFIX,img.adbox.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,img.adnyg.com,AdBlock +- DOMAIN-SUFFIX,img.amp.ad.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,img.cmm.xmfish.com,AdBlock +- DOMAIN-SUFFIX,img.cxxyft.com,AdBlock +- DOMAIN-SUFFIX,img.dawenxue.org,AdBlock +- DOMAIN-SUFFIX,img.dydab.com,AdBlock +- DOMAIN-SUFFIX,img.ercfh.com,AdBlock +- DOMAIN-SUFFIX,img.fd7c.com,AdBlock +- DOMAIN-SUFFIX,img.feitian001.com,AdBlock +- DOMAIN-SUFFIX,img.gaore.com,AdBlock +- DOMAIN-SUFFIX,img.gz9d.com,AdBlock +- DOMAIN-SUFFIX,img.il8r.com,AdBlock +- DOMAIN-SUFFIX,img.img18.com,AdBlock +- DOMAIN-SUFFIX,img.jgchq.com,AdBlock +- DOMAIN-SUFFIX,img.jizzads.com,AdBlock +- DOMAIN-SUFFIX,img.kanuxian.cn,AdBlock +- DOMAIN-SUFFIX,img.khlxw.com,AdBlock +- DOMAIN-SUFFIX,img.kuwanpx.com,AdBlock +- DOMAIN-SUFFIX,img.libdd.com,AdBlock +- DOMAIN-SUFFIX,img.ma.social-touch.com,AdBlock +- DOMAIN-SUFFIX,img.meipic.net,AdBlock +- DOMAIN-SUFFIX,img.qdscgj.com,AdBlock +- DOMAIN-SUFFIX,img.qqgeshou.com,AdBlock +- DOMAIN-SUFFIX,img.s8bbs.com,AdBlock +- DOMAIN-SUFFIX,img.scupio.com,AdBlock +- DOMAIN-SUFFIX,img.sheyuansu.com,AdBlock +- DOMAIN-SUFFIX,img.supfast.net,AdBlock +- DOMAIN-SUFFIX,img.tan5858.com,AdBlock +- DOMAIN-SUFFIX,img.taotaosou.cn,AdBlock +- DOMAIN-SUFFIX,img.tcdxt.com,AdBlock +- DOMAIN-SUFFIX,img.toppr.com.cn,AdBlock +- DOMAIN-SUFFIX,img.twcczhu.com,AdBlock +- DOMAIN-SUFFIX,img.uyangyong.cn,AdBlock +- DOMAIN-SUFFIX,img.wan.sogou.com,AdBlock +- DOMAIN-SUFFIX,img.wuben56.com,AdBlock +- DOMAIN-SUFFIX,img.xa9t.com,AdBlock +- DOMAIN-SUFFIX,img.xcy8.com,AdBlock +- DOMAIN-SUFFIX,img.xiacaidd.com,AdBlock +- DOMAIN-SUFFIX,img.xuenb.com,AdBlock +- DOMAIN-SUFFIX,img.yingshidiguo.cn,AdBlock +- DOMAIN-SUFFIX,img.yuyue007.cn,AdBlock +- DOMAIN-SUFFIX,img.zsj18.com,AdBlock +- DOMAIN-SUFFIX,img.zuowen8.com,AdBlock +- DOMAIN-SUFFIX,img.zx590.com,AdBlock +- DOMAIN-SUFFIX,img0.egou.com,AdBlock +- DOMAIN-SUFFIX,img01.taotaosou.cn,AdBlock +- DOMAIN-SUFFIX,img1.126.net,AdBlock +- DOMAIN-SUFFIX,img1.18183.com,AdBlock +- DOMAIN-SUFFIX,img1.jintang114.org,AdBlock +- DOMAIN-SUFFIX,img1.km.com,AdBlock +- DOMAIN-SUFFIX,img1.mekbet.com,AdBlock +- DOMAIN-SUFFIX,img1.nend.net,AdBlock +- DOMAIN-SUFFIX,img1.pcfg.cache.wps.cn,AdBlock +- DOMAIN-SUFFIX,img1.pszyzxh.org,AdBlock +- DOMAIN-SUFFIX,img18.com,AdBlock +- DOMAIN-SUFFIX,img2.126.net,AdBlock +- DOMAIN-SUFFIX,img2.578965.com,AdBlock +- DOMAIN-SUFFIX,img2.cs153.com,AdBlock +- DOMAIN-SUFFIX,img2.hrccb.com,AdBlock +- DOMAIN-SUFFIX,img2.jiuzhilan.com,AdBlock +- DOMAIN-SUFFIX,img2.km.com,AdBlock +- DOMAIN-SUFFIX,img2.qekun.com,AdBlock +- DOMAIN-SUFFIX,img3.126.net,AdBlock +- DOMAIN-SUFFIX,img3.fy1g.com,AdBlock +- DOMAIN-SUFFIX,img3.km.com,AdBlock +- DOMAIN-SUFFIX,img6.126.net,AdBlock +- DOMAIN-SUFFIX,img80.net,AdBlock +- DOMAIN-SUFFIX,img-ad.oupeng.com,AdBlock +- DOMAIN-SUFFIX,imgad.thepaper.cn,AdBlock +- DOMAIN-SUFFIX,imgad0.3conline.com,AdBlock +- DOMAIN-SUFFIX,imgad0.pconline.com.cn,AdBlock +- DOMAIN-SUFFIX,imgadpai.thepaper.cn,AdBlock +- DOMAIN-SUFFIX,imgapp.yeyou.com,AdBlock +- DOMAIN-SUFFIX,imgc.cymzc.com,AdBlock +- DOMAIN-SUFFIX,imgcdn.wapx.cn,AdBlock +- DOMAIN-SUFFIX,img-cdn-spot.ymcdn.cn,AdBlock +- DOMAIN-SUFFIX,img-dsp.oss-cn-beijing.aliyuncs.com,AdBlock +- DOMAIN-SUFFIX,imges.wu65.com,AdBlock +- DOMAIN-SUFFIX,imgg.marketgid.com,AdBlock +- DOMAIN-SUFFIX,imgg.mgid.com,AdBlock +- DOMAIN-SUFFIX,imgp.cymzc.com,AdBlock +- DOMAIN-SUFFIX,imgsreview.dftoutiao.com,AdBlock +- DOMAIN-SUFFIX,imindmap.cc,AdBlock +- DOMAIN-SUFFIX,immob.cn,AdBlock +- DOMAIN-SUFFIX,imneinei.com,AdBlock +- DOMAIN-SUFFIX,i-mobile.co.jp,AdBlock +- DOMAIN-SUFFIX,imp.asahi.com,AdBlock +- DOMAIN-SUFFIX,imp.gentags.net,AdBlock +- DOMAIN-SUFFIX,imp.go.sohu.com,AdBlock +- DOMAIN-SUFFIX,imp.madserving.com,AdBlock +- DOMAIN-SUFFIX,imp.pdb.madserving.com,AdBlock +- DOMAIN-SUFFIX,imp.xgo.com.cn,AdBlock +- DOMAIN-SUFFIX,imp.zdnet.com.cn,AdBlock +- DOMAIN-SUFFIX,imp.zol.com.cn,AdBlock +- DOMAIN-SUFFIX,impression.gridsumdissector.com,AdBlock +- DOMAIN-SUFFIX,impservice.dictapp.youdao.com,AdBlock +- DOMAIN-SUFFIX,impservice.youdao.com,AdBlock +- DOMAIN-SUFFIX,impservice2.youdao.com,AdBlock +- DOMAIN-SUFFIX,impservicetest.dictapp.youdao.com,AdBlock +- DOMAIN-SUFFIX,impservice-test.dictapp.youdao.com,AdBlock +- DOMAIN-SUFFIX,imrworldwide.com,AdBlock +- DOMAIN-SUFFIX,in.gyeet.com,AdBlock +- DOMAIN-SUFFIX,in.jxhcyc.com,AdBlock +- DOMAIN-SUFFIX,in.mengpr.com,AdBlock +- DOMAIN-SUFFIX,in.mgwcn.com,AdBlock +- DOMAIN-SUFFIX,in.qzkxt.com,AdBlock +- DOMAIN-SUFFIX,in.zog.link,AdBlock +- DOMAIN-SUFFIX,in1.feed.uu.cc,AdBlock +- DOMAIN-SUFFIX,in1.secure.uu.cc,AdBlock +- DOMAIN-SUFFIX,inad.com,AdBlock +- DOMAIN-SUFFIX,inapp.1sapp.com,AdBlock +- DOMAIN-SUFFIX,inccnd.com,AdBlock +- DOMAIN-SUFFIX,inclk.com,AdBlock +- DOMAIN-SUFFIX,include.xs2345.com,AdBlock +- DOMAIN-SUFFIX,index.woai310.com,AdBlock +- DOMAIN-SUFFIX,indieclick.3janecdn.com,AdBlock +- DOMAIN-SUFFIX,info.downsave.com,AdBlock +- DOMAIN-SUFFIX,info.gomlab.com,AdBlock +- DOMAIN-SUFFIX,info.meihua.docer.com,AdBlock +- DOMAIN-SUFFIX,info.pinyin.sogou.com,AdBlock +- DOMAIN-SUFFIX,info.sec.miui.com,AdBlock +- DOMAIN-SUFFIX,info.stockstar.com,AdBlock +- DOMAIN-SUFFIX,info.yitsoftware.com,AdBlock +- DOMAIN-SUFFIX,infocenter.meizu.com,AdBlock +- DOMAIN-SUFFIX,ingameads.gameloft.com,AdBlock +- DOMAIN-SUFFIX,ini.litingxin.cn,AdBlock +- DOMAIN-SUFFIX,ini.update.360safe.com,AdBlock +- DOMAIN-SUFFIX,init.phpwind.com,AdBlock +- DOMAIN-SUFFIX,init.phpwind.net,AdBlock +- DOMAIN-SUFFIX,init.startappexchange.com,AdBlock +- DOMAIN-SUFFIX,innity.com,AdBlock +- DOMAIN-SUFFIX,innity.net,AdBlock +- DOMAIN-SUFFIX,inoprosport.su,AdBlock +- DOMAIN-SUFFIX,insenz.com,AdBlock +- DOMAIN-SUFFIX,inside.bitcomet.com,AdBlock +- DOMAIN-SUFFIX,inskin.vo.llnwd.net,AdBlock +- DOMAIN-SUFFIX,inst.360safe.com,AdBlock +- DOMAIN-SUFFIX,instabug.com,AdBlock +- DOMAIN-SUFFIX,install.kugou.com,AdBlock +- DOMAIN-SUFFIX,install.sidesearch.lycos.com,AdBlock +- DOMAIN-SUFFIX,install2.kugou.com,AdBlock +- DOMAIN-SUFFIX,instreet.cn,AdBlock +- DOMAIN-SUFFIX,int.dpool.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,inte.theta.sogoucdn.com,AdBlock +- DOMAIN-SUFFIX,intellitxt.com,AdBlock +- DOMAIN-SUFFIX,intely.cn,AdBlock +- DOMAIN-SUFFIX,inter1ads.com,AdBlock +- DOMAIN-SUFFIX,interaction.bayimob.com,AdBlock +- DOMAIN-SUFFIX,interactive.huanqiu.com,AdBlock +- DOMAIN-SUFFIX,interest.mix.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,ioc.mmakd.top,AdBlock +- DOMAIN-SUFFIX,ios.bugly.qq.com,AdBlock +- DOMAIN-SUFFIX,ios-dc.51y5.net,AdBlock +- DOMAIN-SUFFIX,ios-informationplatform.wps.cn,AdBlock +- DOMAIN-SUFFIX,iosipa.b0.upaiyun.com,AdBlock +- DOMAIN-SUFFIX,ip.hivps.xyz,AdBlock +- DOMAIN-SUFFIX,ip2.pxene.com,AdBlock +- DOMAIN-SUFFIX,ipengtai.huanqiu.com,AdBlock +- DOMAIN-SUFFIX,iperceptions.com,AdBlock +- DOMAIN-SUFFIX,iphonelog.shouji.baofeng.com,AdBlock +- DOMAIN-SUFFIX,ipic.staticsdo.com,AdBlock +- DOMAIN-SUFFIX,ipinyou.com,AdBlock +- DOMAIN-SUFFIX,ipm.atm.cp31.ott.cibntv.net,AdBlock +- DOMAIN-SUFFIX,ipm.atm.youku.com,AdBlock +- DOMAIN-SUFFIX,iqiyi.irs01.com,AdBlock +- DOMAIN-SUFFIX,ir.mail.126.com,AdBlock +- DOMAIN-SUFFIX,ir.mail.163.com,AdBlock +- DOMAIN-SUFFIX,ir.mail.yeah.net,AdBlock +- DOMAIN-SUFFIX,iroby.com,AdBlock +- DOMAIN-SUFFIX,irpmt.mail.163.com,AdBlock +- DOMAIN-SUFFIX,irs01.com,AdBlock +- DOMAIN-SUFFIX,irs01.net,AdBlock +- DOMAIN-SUFFIX,irs09.com,AdBlock +- DOMAIN-SUFFIX,ishop789.com,AdBlock +- DOMAIN-SUFFIX,ishowbg.com,AdBlock +- DOMAIN-SUFFIX,istreamsche.com,AdBlock +- DOMAIN-SUFFIX,itaoxiaoshuo.com,AdBlock +- DOMAIN-SUFFIX,item.ttkvod.com,AdBlock +- DOMAIN-SUFFIX,items.bingdiantao.com,AdBlock +- DOMAIN-SUFFIX,its.fugetech.com,AdBlock +- DOMAIN-SUFFIX,its-dori.tumblr.com,AdBlock +- DOMAIN-SUFFIX,iutr.uozwys.top,AdBlock +- DOMAIN-SUFFIX,iuuff.com,AdBlock +- DOMAIN-SUFFIX,ivy.pcauto.com.cn,AdBlock +- DOMAIN-SUFFIX,ivy.pcbaby.com.cn,AdBlock +- DOMAIN-SUFFIX,ivy.pclady.com.cn,AdBlock +- DOMAIN-SUFFIX,ivy.pconline.com.cn,AdBlock +- DOMAIN-SUFFIX,iwan.sogou.com,AdBlock +- DOMAIN-SUFFIX,iwanad.baidu.com,AdBlock +- DOMAIN-SUFFIX,ixpub.net,AdBlock +- DOMAIN-SUFFIX,j.6avz.com,AdBlock +- DOMAIN-SUFFIX,j.baminw.cn,AdBlock +- DOMAIN-SUFFIX,j.biquge520.cc,AdBlock +- DOMAIN-SUFFIX,j.br.baidu.com,AdBlock +- DOMAIN-SUFFIX,j.ccnovel.com,AdBlock +- DOMAIN-SUFFIX,j.chaorenjiaoshi.com,AdBlock +- DOMAIN-SUFFIX,j.dipowang.cn,AdBlock +- DOMAIN-SUFFIX,j.fd7c.com,AdBlock +- DOMAIN-SUFFIX,j.hbwcl.com,AdBlock +- DOMAIN-SUFFIX,j.hongyangpai.com,AdBlock +- DOMAIN-SUFFIX,j.jimeilm.com,AdBlock +- DOMAIN-SUFFIX,j.kfd3sm2c.com,AdBlock +- DOMAIN-SUFFIX,j.qijijs.top,AdBlock +- DOMAIN-SUFFIX,j.qiqivv.com,AdBlock +- DOMAIN-SUFFIX,j.qiqiww.com,AdBlock +- DOMAIN-SUFFIX,j.s11.cn,AdBlock +- DOMAIN-SUFFIX,j.sc1369.com,AdBlock +- DOMAIN-SUFFIX,j.sdqoi2d.com,AdBlock +- DOMAIN-SUFFIX,j.wan.liebao.cn,AdBlock +- DOMAIN-SUFFIX,j.wit.qq.com,AdBlock +- DOMAIN-SUFFIX,j.xinshipu.com,AdBlock +- DOMAIN-SUFFIX,j.yljiaoluo.com,AdBlock +- DOMAIN-SUFFIX,j.ytbt.cc,AdBlock +- DOMAIN-SUFFIX,j.zhdap.com,AdBlock +- DOMAIN-SUFFIX,j1.piaobing.com,AdBlock +- DOMAIN-SUFFIX,j17.shangc.net,AdBlock +- DOMAIN-SUFFIX,j17.xiumu.cn,AdBlock +- DOMAIN-SUFFIX,j520s.gzcl999.cn,AdBlock +- DOMAIN-SUFFIX,j7182.hfxcsl.cn,AdBlock +- DOMAIN-SUFFIX,ja.gamersky.com,AdBlock +- DOMAIN-SUFFIX,ja1.gamersky.com,AdBlock +- DOMAIN-SUFFIX,ja9377.com,AdBlock +- DOMAIN-SUFFIX,jack.okkkk.com,AdBlock +- DOMAIN-SUFFIX,jackaow.com,AdBlock +- DOMAIN-SUFFIX,jagcn.com,AdBlock +- DOMAIN-SUFFIX,jav23.com,AdBlock +- DOMAIN-SUFFIX,javhd.com,AdBlock +- DOMAIN-SUFFIX,jb.4hw.com.cn,AdBlock +- DOMAIN-SUFFIX,jb.asqql.com,AdBlock +- DOMAIN-SUFFIX,jb.dianshu119.com,AdBlock +- DOMAIN-SUFFIX,jb.eastlady.cn,AdBlock +- DOMAIN-SUFFIX,jb.ecar168.cn,AdBlock +- DOMAIN-SUFFIX,jb.mbaidu.top,AdBlock +- DOMAIN-SUFFIX,jb.mnkan.com,AdBlock +- DOMAIN-SUFFIX,jb.tupianzj.com,AdBlock +- DOMAIN-SUFFIX,jbcbuy.com,AdBlock +- DOMAIN-SUFFIX,jbflil.cn,AdBlock +- DOMAIN-SUFFIX,jbyy010.com,AdBlock +- DOMAIN-SUFFIX,jc.anhuilitian.net,AdBlock +- DOMAIN-SUFFIX,jc.xuqinqi.cn,AdBlock +- DOMAIN-SUFFIX,jc1.dayfund.cn,AdBlock +- DOMAIN-SUFFIX,jct.maptu.cn,AdBlock +- DOMAIN-SUFFIX,jczzjx.com,AdBlock +- DOMAIN-SUFFIX,jd.c-ptsp.com.cn,AdBlock +- DOMAIN-SUFFIX,jdb.jiudingcapital.cn,AdBlock +- DOMAIN-SUFFIX,jdb.jiudingcapital.com,AdBlock +- DOMAIN-SUFFIX,jddaw.com,AdBlock +- DOMAIN-SUFFIX,jdg.bjygfd.com,AdBlock +- DOMAIN-SUFFIX,jdkic.com,AdBlock +- DOMAIN-SUFFIX,jdlcg.cn,AdBlock +- DOMAIN-SUFFIX,jdlhg.com,AdBlock +- DOMAIN-SUFFIX,jdw.zjuwjdc.com,AdBlock +- DOMAIN-SUFFIX,jebe.renren.com,AdBlock +- DOMAIN-SUFFIX,jebe.xnimg.cn,AdBlock +- DOMAIN-SUFFIX,jellyfish.pandora.xiaomi.com,AdBlock +- DOMAIN-SUFFIX,jermr.com,AdBlock +- DOMAIN-SUFFIX,jesgoo.com,AdBlock +- DOMAIN-SUFFIX,jf.winads.cn,AdBlock +- DOMAIN-SUFFIX,jfhe.0769371.com,AdBlock +- DOMAIN-SUFFIX,jfm4.pop.baofeng.net,AdBlock +- DOMAIN-SUFFIX,jfqkj.com,AdBlock +- DOMAIN-SUFFIX,jgchq.com,AdBlock +- DOMAIN-SUFFIX,jghcy.com,AdBlock +- DOMAIN-SUFFIX,jhakie.com,AdBlock +- DOMAIN-SUFFIX,jhtcdj.com,AdBlock +- DOMAIN-SUFFIX,jhzl001.com,AdBlock +- DOMAIN-SUFFIX,ji.dazhantai.com,AdBlock +- DOMAIN-SUFFIX,jiaheyonggu.com,AdBlock +- DOMAIN-SUFFIX,jiajv.net,AdBlock +- DOMAIN-SUFFIX,jianbaimei.com,AdBlock +- DOMAIN-SUFFIX,jianduankm.com,AdBlock +- DOMAIN-SUFFIX,jianmei123.com,AdBlock +- DOMAIN-SUFFIX,jiansuo.dsxdn.com,AdBlock +- DOMAIN-SUFFIX,jiaoben.eastday.com,AdBlock +- DOMAIN-SUFFIX,jiaoben.ganji.cn,AdBlock +- DOMAIN-SUFFIX,jiaoben.jucanw.com,AdBlock +- DOMAIN-SUFFIX,jiaoben.junmeng.com,AdBlock +- DOMAIN-SUFFIX,jiaoben.xinshipu.cn,AdBlock +- DOMAIN-SUFFIX,jias.haotxt.com,AdBlock +- DOMAIN-SUFFIX,jiathis.com,AdBlock +- DOMAIN-SUFFIX,jiawen88.com,AdBlock +- DOMAIN-SUFFIX,jiayi1.oss-cn-shanghai.aliyuncs.com,AdBlock +- DOMAIN-SUFFIX,jiedaibao.com,AdBlock +- DOMAIN-SUFFIX,jiehantai.com,AdBlock +- DOMAIN-SUFFIX,jiehunmishu.com,AdBlock +- DOMAIN-SUFFIX,jifeidandar.com,AdBlock +- DOMAIN-SUFFIX,jifen.2345.com,AdBlock +- DOMAIN-SUFFIX,jihehuaban.com,AdBlock +- DOMAIN-SUFFIX,jihehuaban.com.cn,AdBlock +- DOMAIN-SUFFIX,jimdo.com,AdBlock +- DOMAIN-SUFFIX,jimeilm.com,AdBlock +- DOMAIN-SUFFIX,jindu179.com,AdBlock +- DOMAIN-SUFFIX,jing.58.com,AdBlock +- DOMAIN-SUFFIX,jingdian230.meilika.net,AdBlock +- DOMAIN-SUFFIX,jinghuazhijia.com,AdBlock +- DOMAIN-SUFFIX,jinsha11833.com,AdBlock +- DOMAIN-SUFFIX,jinshagt222.com,AdBlock +- DOMAIN-SUFFIX,jira.vpon.com,AdBlock +- DOMAIN-SUFFIX,jisucn.com,AdBlock +- DOMAIN-SUFFIX,jiu.njdkgm.com,AdBlock +- DOMAIN-SUFFIX,jiubuhua.com,AdBlock +- DOMAIN-SUFFIX,jiuku.cc,AdBlock +- DOMAIN-SUFFIX,jiyou2014.com,AdBlock +- DOMAIN-SUFFIX,jizzads.com,AdBlock +- DOMAIN-SUFFIX,jj123.com.cn,AdBlock +- DOMAIN-SUFFIX,jjhd47.115seo.com,AdBlock +- DOMAIN-SUFFIX,jjx.xjtxcj.com,AdBlock +- DOMAIN-SUFFIX,jjxgly.com,AdBlock +- DOMAIN-SUFFIX,jjyy.gaopengqcdz.cn,AdBlock +- DOMAIN-SUFFIX,jk939.com,AdBlock +- DOMAIN-SUFFIX,jkjjkj.top,AdBlock +- DOMAIN-SUFFIX,jkmxy.com,AdBlock +- DOMAIN-SUFFIX,jl027.com,AdBlock +- DOMAIN-SUFFIX,jlssbz.com,AdBlock +- DOMAIN-SUFFIX,jmonitor.jiuzhilan.com,AdBlock +- DOMAIN-SUFFIX,jmsyzj.com,AdBlock +- DOMAIN-SUFFIX,jmxlaser.com,AdBlock +- DOMAIN-SUFFIX,jndczg.com,AdBlock +- DOMAIN-SUFFIX,jnrsjm.com,AdBlock +- DOMAIN-SUFFIX,jnsdkjzs.com,AdBlock +- DOMAIN-SUFFIX,jnsz.net.cn,AdBlock +- DOMAIN-SUFFIX,jnyngg.cn,AdBlock +- DOMAIN-SUFFIX,johtzj.com,AdBlock +- DOMAIN-SUFFIX,jointreport-switch.com,AdBlock +- DOMAIN-SUFFIX,jossuer.net,AdBlock +- DOMAIN-SUFFIX,joyfuldoors.com,AdBlock +- DOMAIN-SUFFIX,jp88.cc,AdBlock +- DOMAIN-SUFFIX,jpg.cooguo.com,AdBlock +- DOMAIN-SUFFIX,jpg.inte.sogoucdn.com,AdBlock +- DOMAIN-SUFFIX,jph.itiexue.net,AdBlock +- DOMAIN-SUFFIX,jpush.cn,AdBlock +- DOMAIN-SUFFIX,jpush.html5.qq.com,AdBlock +- DOMAIN-SUFFIX,jqmt.qq.com,AdBlock +- DOMAIN-SUFFIX,jqz9.com,AdBlock +- DOMAIN-SUFFIX,jrdkc.com,AdBlock +- DOMAIN-SUFFIX,jrhaigou.com,AdBlock +- DOMAIN-SUFFIX,jrpt.jrptweb.org,AdBlock +- DOMAIN-SUFFIX,js.05sun.com,AdBlock +- DOMAIN-SUFFIX,js.133u.com,AdBlock +- DOMAIN-SUFFIX,js.139y.com,AdBlock +- DOMAIN-SUFFIX,js.1688988.com,AdBlock +- DOMAIN-SUFFIX,js.2011.8684.com,AdBlock +- DOMAIN-SUFFIX,js.45bubu.com,AdBlock +- DOMAIN-SUFFIX,js.4hw.com.cn,AdBlock +- DOMAIN-SUFFIX,js.5068.com,AdBlock +- DOMAIN-SUFFIX,js.51taifu.com,AdBlock +- DOMAIN-SUFFIX,js.578965.com,AdBlock +- DOMAIN-SUFFIX,js.5iydz.com,AdBlock +- DOMAIN-SUFFIX,js.9669.cn,AdBlock +- DOMAIN-SUFFIX,js.adxkj.com,AdBlock +- DOMAIN-SUFFIX,js.bju888.com,AdBlock +- DOMAIN-SUFFIX,js.bxwns.com,AdBlock +- DOMAIN-SUFFIX,js.bxwxtxt.com,AdBlock +- DOMAIN-SUFFIX,js.cdjqjy.com,AdBlock +- DOMAIN-SUFFIX,js.cncrk.com,AdBlock +- DOMAIN-SUFFIX,js.cnmo.com,AdBlock +- DOMAIN-SUFFIX,js.cnscdj.com,AdBlock +- DOMAIN-SUFFIX,js.ctags.cn,AdBlock +- DOMAIN-SUFFIX,js.daxueshengqiandai.com,AdBlock +- DOMAIN-SUFFIX,js.dkqapp.cn,AdBlock +- DOMAIN-SUFFIX,js.duotegame.com,AdBlock +- DOMAIN-SUFFIX,js.ea3w.com,AdBlock +- DOMAIN-SUFFIX,js.feitian001.com,AdBlock +- DOMAIN-SUFFIX,js.fengniao.com,AdBlock +- DOMAIN-SUFFIX,js.firefang.cn,AdBlock +- DOMAIN-SUFFIX,js.gewuwen.com,AdBlock +- DOMAIN-SUFFIX,js.hkslg520.com,AdBlock +- DOMAIN-SUFFIX,js.hslyqs.com,AdBlock +- DOMAIN-SUFFIX,js.icast.cn,AdBlock +- DOMAIN-SUFFIX,js.idgdmg.com.cn,AdBlock +- DOMAIN-SUFFIX,js.jianbaimei.com,AdBlock +- DOMAIN-SUFFIX,js.jxabp.com.cn,AdBlock +- DOMAIN-SUFFIX,js.lieqitianxia.cn,AdBlock +- DOMAIN-SUFFIX,js.mbaidu.top,AdBlock +- DOMAIN-SUFFIX,js.mingxianshanghang.cn,AdBlock +- DOMAIN-SUFFIX,js.mnkan.com,AdBlock +- DOMAIN-SUFFIX,js.moatads.com,AdBlock +- DOMAIN-SUFFIX,js.mumayi.net,AdBlock +- DOMAIN-SUFFIX,js.paochala.net,AdBlock +- DOMAIN-SUFFIX,js.ptmind.com,AdBlock +- DOMAIN-SUFFIX,js.pub.tom.com,AdBlock +- DOMAIN-SUFFIX,js.pyangzi.com,AdBlock +- DOMAIN-SUFFIX,js.revsci.net,AdBlock +- DOMAIN-SUFFIX,js.ruiwen.com,AdBlock +- DOMAIN-SUFFIX,js.saiqizhi.com,AdBlock +- DOMAIN-SUFFIX,js.sanwen.net,AdBlock +- DOMAIN-SUFFIX,js.soduso.cc,AdBlock +- DOMAIN-SUFFIX,js.soonyou123.com,AdBlock +- DOMAIN-SUFFIX,js.start1999.com,AdBlock +- DOMAIN-SUFFIX,js.szande.com.cn,AdBlock +- DOMAIN-SUFFIX,js.ubaike.cn,AdBlock +- DOMAIN-SUFFIX,js.um0592.com,AdBlock +- DOMAIN-SUFFIX,js.union-wifi.com,AdBlock +- DOMAIN-SUFFIX,js.wo-x.cn,AdBlock +- DOMAIN-SUFFIX,js.wu65.com,AdBlock +- DOMAIN-SUFFIX,js.xiansuper.com,AdBlock +- DOMAIN-SUFFIX,js.xtgreat.com,AdBlock +- DOMAIN-SUFFIX,js.xuexila.com,AdBlock +- DOMAIN-SUFFIX,js.ydeprint.com,AdBlock +- DOMAIN-SUFFIX,js.yixui.com,AdBlock +- DOMAIN-SUFFIX,js.ylunion.com,AdBlock +- DOMAIN-SUFFIX,js.yoyi.tv,AdBlock +- DOMAIN-SUFFIX,js.zol.com.cn,AdBlock +- DOMAIN-SUFFIX,js.zyrfanli.com,AdBlock +- DOMAIN-SUFFIX,js1.2abc8.com,AdBlock +- DOMAIN-SUFFIX,js1.nend.net,AdBlock +- DOMAIN-SUFFIX,js-1.pchome.net,AdBlock +- DOMAIN-SUFFIX,js1.xbaixing.com,AdBlock +- DOMAIN-SUFFIX,js1.zuocai.tv,AdBlock +- DOMAIN-SUFFIX,js1151.yongkang6.com,AdBlock +- DOMAIN-SUFFIX,js1151.zhudiaosz.com,AdBlock +- DOMAIN-SUFFIX,js1157.yongkang6.com,AdBlock +- DOMAIN-SUFFIX,js123.0937jyg.com,AdBlock +- DOMAIN-SUFFIX,js1516.0937jyg.com,AdBlock +- DOMAIN-SUFFIX,js1517.0937jyg.com,AdBlock +- DOMAIN-SUFFIX,js205.dupinpu.com,AdBlock +- DOMAIN-SUFFIX,js2254.hfxcsl.cn,AdBlock +- DOMAIN-SUFFIX,js2553.xjzyq.com,AdBlock +- DOMAIN-SUFFIX,js257.0937jyg.com,AdBlock +- DOMAIN-SUFFIX,js2672.xjzyq.com,AdBlock +- DOMAIN-SUFFIX,js3492.yongkang6.com,AdBlock +- DOMAIN-SUFFIX,js3743.yongkang6.com,AdBlock +- DOMAIN-SUFFIX,js3768.zhudiaosz.com,AdBlock +- DOMAIN-SUFFIX,js3810.yongkang6.com,AdBlock +- DOMAIN-SUFFIX,js3810.zhudiaosz.com,AdBlock +- DOMAIN-SUFFIX,js4.eastmoney.com,AdBlock +- DOMAIN-SUFFIX,js412.0937jyg.com,AdBlock +- DOMAIN-SUFFIX,js412.yexfes.com,AdBlock +- DOMAIN-SUFFIX,js412.yqjxzw.com,AdBlock +- DOMAIN-SUFFIX,js4163.yongkang6.com,AdBlock +- DOMAIN-SUFFIX,js4273.zhudiaosz.com,AdBlock +- DOMAIN-SUFFIX,js453.zhudiaosz.com,AdBlock +- DOMAIN-SUFFIX,js50.yxlady.com,AdBlock +- DOMAIN-SUFFIX,js5162.yongkang6.com,AdBlock +- DOMAIN-SUFFIX,js6882.jianbangjiaoyu.com,AdBlock +- DOMAIN-SUFFIX,js6882.mengchengbao.com,AdBlock +- DOMAIN-SUFFIX,js7004.hnfpgm.com,AdBlock +- DOMAIN-SUFFIX,js7129.dlkjgjmy.com,AdBlock +- DOMAIN-SUFFIX,js7129.shxqeps.com,AdBlock +- DOMAIN-SUFFIX,js7152.shxqeps.com,AdBlock +- DOMAIN-SUFFIX,js74.0937jyg.com,AdBlock +- DOMAIN-SUFFIX,js74.yexfes.com,AdBlock +- DOMAIN-SUFFIX,js74.yqjxzw.com,AdBlock +- DOMAIN-SUFFIX,js7405.mengchengbao.com,AdBlock +- DOMAIN-SUFFIX,js84.enyayinxiang.com,AdBlock +- DOMAIN-SUFFIX,js883.hnfpgm.com,AdBlock +- DOMAIN-SUFFIX,js883.yongkang6.com,AdBlock +- DOMAIN-SUFFIX,js9318.bllzgqbyp.com,AdBlock +- DOMAIN-SUFFIX,jsadt.com,AdBlock +- DOMAIN-SUFFIX,js-agent.newrelic.com,AdBlock +- DOMAIN-SUFFIX,js-apac-ss.ysm.yahoo.com,AdBlock +- DOMAIN-SUFFIX,jsb.qianzhan.com,AdBlock +- DOMAIN-SUFFIX,jsc.adskeeper.co.uk,AdBlock +- DOMAIN-SUFFIX,jsc.marketgid.com,AdBlock +- DOMAIN-SUFFIX,jsc.mgid.com,AdBlock +- DOMAIN-SUFFIX,jscdn.99pps.com,AdBlock +- DOMAIN-SUFFIX,jscode.jbzj.com,AdBlock +- DOMAIN-SUFFIX,jsjs.nthyn.com,AdBlock +- DOMAIN-SUFFIX,jskrnekewe.mofans.net,AdBlock +- DOMAIN-SUFFIX,jsm.39yst.com,AdBlock +- DOMAIN-SUFFIX,jsm.9939.com,AdBlock +- DOMAIN-SUFFIX,jsmwd.com,AdBlock +- DOMAIN-SUFFIX,jsnp.golden1.sogou.com,AdBlock +- DOMAIN-SUFFIX,jsnywl.kfi8.com,AdBlock +- DOMAIN-SUFFIX,json.gewuwen.com,AdBlock +- DOMAIN-SUFFIX,jspg.cc,AdBlock +- DOMAIN-SUFFIX,jsqmt.qq.com,AdBlock +- DOMAIN-SUFFIX,jssd.uumeitu.com,AdBlock +- DOMAIN-SUFFIX,jt.yunxiufang.net,AdBlock +- DOMAIN-SUFFIX,jtug.code.poyang.com,AdBlock +- DOMAIN-SUFFIX,jtxh.net,AdBlock +- DOMAIN-SUFFIX,jtys8.com,AdBlock +- DOMAIN-SUFFIX,ju33.com,AdBlock +- DOMAIN-SUFFIX,juicyads.com,AdBlock +- DOMAIN-SUFFIX,jump.luna.58.com,AdBlock +- DOMAIN-SUFFIX,jumpe.58xmgys.com,AdBlock +- DOMAIN-SUFFIX,jumpluna.58.com,AdBlock +- DOMAIN-SUFFIX,jumpm.58xmgys.com,AdBlock +- DOMAIN-SUFFIX,jundazulin.com,AdBlock +- DOMAIN-SUFFIX,junfull.com,AdBlock +- DOMAIN-SUFFIX,juren0.com,AdBlock +- DOMAIN-SUFFIX,jusha.com,AdBlock +- DOMAIN-SUFFIX,jutou5.com,AdBlock +- DOMAIN-SUFFIX,juzi.cn,AdBlock +- DOMAIN-SUFFIX,juzilm.com,AdBlock +- DOMAIN-SUFFIX,jwg365.cn,AdBlock +- DOMAIN-SUFFIX,jwpltx.com,AdBlock +- DOMAIN-SUFFIX,jwqj.net,AdBlock +- DOMAIN-SUFFIX,jwz.3conline.com,AdBlock +- DOMAIN-SUFFIX,jx5m.com,AdBlock +- DOMAIN-SUFFIX,jxad.jx163.com,AdBlock +- DOMAIN-SUFFIX,jxbjt.com,AdBlock +- DOMAIN-SUFFIX,jxfxsw.com,AdBlock +- DOMAIN-SUFFIX,jxjzny.com,AdBlock +- DOMAIN-SUFFIX,jxlog.istreamsche.com,AdBlock +- DOMAIN-SUFFIX,jxlqgs.com,AdBlock +- DOMAIN-SUFFIX,jxxiangchu.com,AdBlock +- DOMAIN-SUFFIX,jyc.njxczy.com,AdBlock +- DOMAIN-SUFFIX,jyd.fjzdmy.com,AdBlock +- DOMAIN-SUFFIX,jystea.com,AdBlock +- DOMAIN-SUFFIX,jyz.fjtzjy.com,AdBlock +- DOMAIN-SUFFIX,jzkapp.com,AdBlock +- DOMAIN-SUFFIX,jzm81.com,AdBlock +- DOMAIN-SUFFIX,k.85wa.cn,AdBlock +- DOMAIN-SUFFIX,k.ctsywy.com,AdBlock +- DOMAIN-SUFFIX,k1w5.me,AdBlock +- DOMAIN-SUFFIX,k2team.kyiv.ua,AdBlock +- DOMAIN-SUFFIX,k3bos.com,AdBlock +- DOMAIN-SUFFIX,kafka8.com,AdBlock +- DOMAIN-SUFFIX,kaitongyewu.com,AdBlock +- DOMAIN-SUFFIX,karma.mdpcdn.com,AdBlock +- DOMAIN-SUFFIX,kas.keydot.net,AdBlock +- DOMAIN-SUFFIX,kawa11.space,AdBlock +- DOMAIN-SUFFIX,kbnetworkz.s3.amazonaws.com,AdBlock +- DOMAIN-SUFFIX,kddtri.cn,AdBlock +- DOMAIN-SUFFIX,kejet.com,AdBlock +- DOMAIN-SUFFIX,kejet.net,AdBlock +- DOMAIN-SUFFIX,kele4.com,AdBlock +- DOMAIN-SUFFIX,ker.pic2pic.site,AdBlock +- DOMAIN-SUFFIX,kermit.macnn.com,AdBlock +- DOMAIN-SUFFIX,keryt.jnservo.com,AdBlock +- DOMAIN-SUFFIX,ketchapp.org,AdBlock +- DOMAIN-SUFFIX,keydot.net,AdBlock +- DOMAIN-SUFFIX,keyrun.cn,AdBlock +- DOMAIN-SUFFIX,keyrun.com,AdBlock +- DOMAIN-SUFFIX,keyshot.cc,AdBlock +- DOMAIN-SUFFIX,keystone.mwbsys.com,AdBlock +- DOMAIN-SUFFIX,keyyou.net,AdBlock +- DOMAIN-SUFFIX,kfewaz.zh1155.com,AdBlock +- DOMAIN-SUFFIX,kfhuihe.net,AdBlock +- DOMAIN-SUFFIX,kfluoa.com,AdBlock +- DOMAIN-SUFFIX,kgcjgsa8.net,AdBlock +- DOMAIN-SUFFIX,kgmobilestat.kugou.com,AdBlock +- DOMAIN-SUFFIX,kguke.com,AdBlock +- DOMAIN-SUFFIX,kho3au7l4z.me,AdBlock +- DOMAIN-SUFFIX,kicnse.com,AdBlock +- DOMAIN-SUFFIX,kingdeecn.cn,AdBlock +- DOMAIN-SUFFIX,kingwam.com,AdBlock +- DOMAIN-SUFFIX,kio.quanliyouxi.cn,AdBlock +- DOMAIN-SUFFIX,kiss.blockplus.cc,AdBlock +- DOMAIN-SUFFIX,kjgen.com,AdBlock +- DOMAIN-SUFFIX,kk7kk.com,AdBlock +- DOMAIN-SUFFIX,kkcaicai.com,AdBlock +- DOMAIN-SUFFIX,kkpgv.kankan.com,AdBlock +- DOMAIN-SUFFIX,kkpgv2.kankan.com,AdBlock +- DOMAIN-SUFFIX,kld666.com,AdBlock +- DOMAIN-SUFFIX,kldmm.com,AdBlock +- DOMAIN-SUFFIX,klsdmr.com,AdBlock +- DOMAIN-SUFFIX,kl-toys.com,AdBlock +- DOMAIN-SUFFIX,klz28.com,AdBlock +- DOMAIN-SUFFIX,km.jianduankm.com,AdBlock +- DOMAIN-SUFFIX,kmadou.com,AdBlock +- DOMAIN-SUFFIX,kmd365.com,AdBlock +- DOMAIN-SUFFIX,kmwqxqh.com,AdBlock +- DOMAIN-SUFFIX,kn.aishake.cn,AdBlock +- DOMAIN-SUFFIX,kn.archrug.com,AdBlock +- DOMAIN-SUFFIX,kn.barnfps.com,AdBlock +- DOMAIN-SUFFIX,kn.bjbrtc.com,AdBlock +- DOMAIN-SUFFIX,kn.chapnap.com,AdBlock +- DOMAIN-SUFFIX,kn.chgdf.cn,AdBlock +- DOMAIN-SUFFIX,kn.czzdf.com,AdBlock +- DOMAIN-SUFFIX,kn.dyscsm.cn,AdBlock +- DOMAIN-SUFFIX,kn.gzcce.cn,AdBlock +- DOMAIN-SUFFIX,kn.jzhrty.cn,AdBlock +- DOMAIN-SUFFIX,kn.nykps.com,AdBlock +- DOMAIN-SUFFIX,kn.qhdfxkj.com,AdBlock +- DOMAIN-SUFFIX,kn.qqqmdq.com,AdBlock +- DOMAIN-SUFFIX,kn.qzdaren.com,AdBlock +- DOMAIN-SUFFIX,kn.ynmhg.cn,AdBlock +- DOMAIN-SUFFIX,kn.zstjy.com,AdBlock +- DOMAIN-SUFFIX,kn.zzdahan.com,AdBlock +- DOMAIN-SUFFIX,knet.cn,AdBlock +- DOMAIN-SUFFIX,knnwdyou.com,AdBlock +- DOMAIN-SUFFIX,kob.adxkj.com,AdBlock +- DOMAIN-SUFFIX,kochava.com,AdBlock +- DOMAIN-SUFFIX,kod4pc293.com,AdBlock +- DOMAIN-SUFFIX,koowo.com,AdBlock +- DOMAIN-SUFFIX,koukou7.com,AdBlock +- DOMAIN-SUFFIX,kovjo.com,AdBlock +- DOMAIN-SUFFIX,kqy1.com,AdBlock +- DOMAIN-SUFFIX,kr.sybspools.com,AdBlock +- DOMAIN-SUFFIX,krux.net,AdBlock +- DOMAIN-SUFFIX,ksdsuzhou.com,AdBlock +- DOMAIN-SUFFIX,ksr.juuhe.com,AdBlock +- DOMAIN-SUFFIX,ksrsy.com,AdBlock +- DOMAIN-SUFFIX,kstj.baidu.com,AdBlock +- DOMAIN-SUFFIX,kt220.com,AdBlock +- DOMAIN-SUFFIX,ktivn.uranus.sogou.com,AdBlock +- DOMAIN-SUFFIX,ktunions.com,AdBlock +- DOMAIN-SUFFIX,ktv0311.com,AdBlock +- DOMAIN-SUFFIX,ku63.com,AdBlock +- DOMAIN-SUFFIX,ku9377.com,AdBlock +- DOMAIN-SUFFIX,kuaigao.rrsdl.com,AdBlock +- DOMAIN-SUFFIX,kuaikaiapp.com,AdBlock +- DOMAIN-SUFFIX,kuaikan.netmon.360safe.com,AdBlock +- DOMAIN-SUFFIX,kuaipai666.cn,AdBlock +- DOMAIN-SUFFIX,kuaizip.com,AdBlock +- DOMAIN-SUFFIX,kualianyingxiao.cn,AdBlock +- DOMAIN-SUFFIX,kudifish.com,AdBlock +- DOMAIN-SUFFIX,kuguopush.com,AdBlock +- DOMAIN-SUFFIX,kumihua.com,AdBlock +- DOMAIN-SUFFIX,kuwoyy.com,AdBlock +- DOMAIN-SUFFIX,kuyic.m.gxwztv.com,AdBlock +- DOMAIN-SUFFIX,kuzai.cooguo.com,AdBlock +- DOMAIN-SUFFIX,kw.ra.icast.cn,AdBlock +- DOMAIN-SUFFIX,kwmsg.kuwo.cn,AdBlock +- DOMAIN-SUFFIX,kwurl.ucweb.com,AdBlock +- DOMAIN-SUFFIX,kxlogo.knet.cn,AdBlock +- DOMAIN-SUFFIX,kxmav2.com,AdBlock +- DOMAIN-SUFFIX,kxrxh.com,AdBlock +- DOMAIN-SUFFIX,kyad88.com,AdBlock +- DOMAIN-SUFFIX,kyzhecmvpiaw.com,AdBlock +- DOMAIN-SUFFIX,l.adiers.com,AdBlock +- DOMAIN-SUFFIX,l.betrad.com,AdBlock +- DOMAIN-SUFFIX,l.minisplat.cn,AdBlock +- DOMAIN-SUFFIX,l.mnjkw.cn,AdBlock +- DOMAIN-SUFFIX,l.supfast.net,AdBlock +- DOMAIN-SUFFIX,l.ujian.cc,AdBlock +- DOMAIN-SUFFIX,l.yidianzixun.com,AdBlock +- DOMAIN-SUFFIX,l1.soarfi.cn,AdBlock +- DOMAIN-SUFFIX,l2.soarfi.cn,AdBlock +- DOMAIN-SUFFIX,l9bdhcgihw.neihanw.com,AdBlock +- DOMAIN-SUFFIX,labs.ra.icast.cn,AdBlock +- DOMAIN-SUFFIX,laigame7.com,AdBlock +- DOMAIN-SUFFIX,laiququan.com,AdBlock +- DOMAIN-SUFFIX,lajizhan.org,AdBlock +- DOMAIN-SUFFIX,lan.btwan5.com,AdBlock +- DOMAIN-SUFFIX,langchars.com,AdBlock +- DOMAIN-SUFFIX,langjiyisheng.com,AdBlock +- DOMAIN-SUFFIX,lansha.tv,AdBlock +- DOMAIN-SUFFIX,lanxiangji.com,AdBlock +- DOMAIN-SUFFIX,laomaotao.net,AdBlock +- DOMAIN-SUFFIX,laoqu123.com,AdBlock +- DOMAIN-SUFFIX,lashou1000.com,AdBlock +- DOMAIN-SUFFIX,lb.gtimg.com,AdBlock +- DOMAIN-SUFFIX,lb.statsevent.com,AdBlock +- DOMAIN-SUFFIX,lbs.map.qq.com,AdBlock +- DOMAIN-SUFFIX,lbstatic-a.akamaihd.net,AdBlock +- DOMAIN-SUFFIX,lbszb.tongbu.com,AdBlock +- DOMAIN-SUFFIX,lc.jiathis.com,AdBlock +- DOMAIN-SUFFIX,lcs.dev.surepush.cn,AdBlock +- DOMAIN-SUFFIX,ld.mediaget.com,AdBlock +- DOMAIN-SUFFIX,ldpgl.code.mytanwan.com,AdBlock +- DOMAIN-SUFFIX,lds.lenovomm.com,AdBlock +- DOMAIN-SUFFIX,lds.zui.com,AdBlock +- DOMAIN-SUFFIX,ldy.350.com,AdBlock +- DOMAIN-SUFFIX,ldy.adqku.cn,AdBlock +- DOMAIN-SUFFIX,le4le.com,AdBlock +- DOMAIN-SUFFIX,leadbolt.net,AdBlock +- DOMAIN-SUFFIX,leadboltads.net,AdBlock +- DOMAIN-SUFFIX,leadboltapps.net,AdBlock +- DOMAIN-SUFFIX,leadboltmobile.net,AdBlock +- DOMAIN-SUFFIX,ledou.dl.uu.cc,AdBlock +- DOMAIN-SUFFIX,leeyuoxs.com,AdBlock +- DOMAIN-SUFFIX,legozu.com,AdBlock +- DOMAIN-SUFFIX,lele999.com,AdBlock +- DOMAIN-SUFFIX,lenzmx.com,AdBlock +- DOMAIN-SUFFIX,lessplay.com,AdBlock +- DOMAIN-SUFFIX,letv.irs01.com,AdBlock +- DOMAIN-SUFFIX,leztc.com,AdBlock +- DOMAIN-SUFFIX,lflili.com,AdBlock +- DOMAIN-SUFFIX,lfyuanai.com,AdBlock +- DOMAIN-SUFFIX,lg2.jointreport-switch.com,AdBlock +- DOMAIN-SUFFIX,lg4.jointreport-switch.com,AdBlock +- DOMAIN-SUFFIX,lhafy.com,AdBlock +- DOMAIN-SUFFIX,lhengilin.com,AdBlock +- DOMAIN-SUFFIX,lhusy.com,AdBlock +- DOMAIN-SUFFIX,li.anyysz.com,AdBlock +- DOMAIN-SUFFIX,liangao.com,AdBlock +- DOMAIN-SUFFIX,liangziweixg.com,AdBlock +- DOMAIN-SUFFIX,lib.haotv8.com,AdBlock +- DOMAIN-SUFFIX,liba.haotv8.com,AdBlock +- DOMAIN-SUFFIX,libs.tvmao.cn,AdBlock +- DOMAIN-SUFFIX,license.lumion3d.com,AdBlock +- DOMAIN-SUFFIX,license.lumion3d.net,AdBlock +- DOMAIN-SUFFIX,licenses.ashampoo.com,AdBlock +- DOMAIN-SUFFIX,licensing.tableausoftware.com,AdBlock +- DOMAIN-SUFFIX,life.e0575.com,AdBlock +- DOMAIN-SUFFIX,life.imagepix.org,AdBlock +- DOMAIN-SUFFIX,lightson.vpsboard.com,AdBlock +- DOMAIN-SUFFIX,linezing.com,AdBlock +- DOMAIN-SUFFIX,lingdian98.com,AdBlock +- DOMAIN-SUFFIX,linkbide.com,AdBlock +- DOMAIN-SUFFIX,linkeye.ximalaya.com,AdBlock +- DOMAIN-SUFFIX,linkpage.cn,AdBlock +- DOMAIN-SUFFIX,links.services.disqus.com,AdBlock +- DOMAIN-SUFFIX,linktech.cn,AdBlock +- DOMAIN-SUFFIX,linyao.dxsdb.com,AdBlock +- DOMAIN-SUFFIX,lishuanghao.com,AdBlock +- DOMAIN-SUFFIX,listenother.com,AdBlock +- DOMAIN-SUFFIX,listlog.baofeng.net,AdBlock +- DOMAIN-SUFFIX,liuliguo.com,AdBlock +- DOMAIN-SUFFIX,live.tvpot.daum.net,AdBlock +- DOMAIN-SUFFIX,livehapp.com,AdBlock +- DOMAIN-SUFFIX,livep.l.ott.video.qq.com,AdBlock +- DOMAIN-SUFFIX,lives.l.cp81.ott.cibntv.net,AdBlock +- DOMAIN-SUFFIX,lives.l.ott.video.qq.com,AdBlock +- DOMAIN-SUFFIX,liveupdate.mac.sandai.net,AdBlock +- DOMAIN-SUFFIX,lixiangmo.com,AdBlock +- DOMAIN-SUFFIX,ljrtb.cn,AdBlock +- DOMAIN-SUFFIX,lkf1.m.sanhao3.com,AdBlock +- DOMAIN-SUFFIX,ll.a.hulu.com,AdBlock +- DOMAIN-SUFFIX,ll.gxsky.com,AdBlock +- DOMAIN-SUFFIX,ll.hudong.com,AdBlock +- DOMAIN-SUFFIX,ll.songlaoban.cn,AdBlock +- DOMAIN-SUFFIX,ll38.com,AdBlock +- DOMAIN-SUFFIX,lm.dawenxue.org,AdBlock +- DOMAIN-SUFFIX,lm.licenses.adobe.com,AdBlock +- DOMAIN-SUFFIX,lm.souid.com,AdBlock +- DOMAIN-SUFFIX,lm.xiashu.la,AdBlock +- DOMAIN-SUFFIX,lml.jfjsp.com,AdBlock +- DOMAIN-SUFFIX,lmlicenses.wip4.adobe.com,AdBlock +- DOMAIN-SUFFIX,lmwap.awtks.com,AdBlock +- DOMAIN-SUFFIX,lndjj.com,AdBlock +- DOMAIN-SUFFIX,lnk0.com,AdBlock +- DOMAIN-SUFFIX,lnk8z.com,AdBlock +- DOMAIN-SUFFIX,lnr2.com,AdBlock +- DOMAIN-SUFFIX,load77.exelator.com,AdBlock +- DOMAIN-SUFFIX,loading.baofeng5.baofeng.net,AdBlock +- DOMAIN-SUFFIX,loadm.exelator.com,AdBlock +- DOMAIN-SUFFIX,loandatec.com,AdBlock +- DOMAIN-SUFFIX,localnetwork.uop,AdBlock +- DOMAIN-SUFFIX,localytics.com,AdBlock +- DOMAIN-SUFFIX,location.ximalaya.com,AdBlock +- DOMAIN-SUFFIX,locdrop.query.yahoo.com,AdBlock +- DOMAIN-SUFFIX,log1.17173.com,AdBlock +- DOMAIN-SUFFIX,log1.molitv.cn,AdBlock +- DOMAIN-SUFFIX,log2.air.yoyi.com.cn,AdBlock +- DOMAIN-SUFFIX,log2.molitv.cn,AdBlock +- DOMAIN-SUFFIX,log-dmp.suishenyun.cn,AdBlock +- DOMAIN-SUFFIX,logonext.tv.kuyun.com,AdBlock +- DOMAIN-SUFFIX,logoshejishi.com,AdBlock +- DOMAIN-SUFFIX,logstat.caixin.com,AdBlock +- DOMAIN-SUFFIX,logupdate.avlyun.sec.miui.com,AdBlock +- DOMAIN-SUFFIX,lol.pnhfc.com,AdBlock +- DOMAIN-SUFFIX,loldy.jiangmg.com,AdBlock +- DOMAIN-SUFFIX,lomark.cn,AdBlock +- DOMAIN-SUFFIX,londonprivaterentals.standard.co.uk,AdBlock +- DOMAIN-SUFFIX,looky.hyves.org,AdBlock +- DOMAIN-SUFFIX,lottery.kuaiya.cn,AdBlock +- DOMAIN-SUFFIX,lotuseed.com,AdBlock +- DOMAIN-SUFFIX,lovestyl.com,AdBlock +- DOMAIN-SUFFIX,lovfp.com,AdBlock +- DOMAIN-SUFFIX,lp.jiuzhilan.com,AdBlock +- DOMAIN-SUFFIX,lp.startapp.com,AdBlock +- DOMAIN-SUFFIX,lp1901.com,AdBlock +- DOMAIN-SUFFIX,lpsxssm.com,AdBlock +- DOMAIN-SUFFIX,lqmohun.com,AdBlock +- DOMAIN-SUFFIX,lrswl.com,AdBlock +- DOMAIN-SUFFIX,ls.webmd.com,AdBlock +- DOMAIN-SUFFIX,lsxmg.com,AdBlock +- DOMAIN-SUFFIX,ltcprtc.com,AdBlock +- DOMAIN-SUFFIX,ltheanine.cn,AdBlock +- DOMAIN-SUFFIX,lthxz.cn,AdBlock +- DOMAIN-SUFFIX,lu.sogou.com,AdBlock +- DOMAIN-SUFFIX,lubosheng.cn,AdBlock +- DOMAIN-SUFFIX,lucting.cn,AdBlock +- DOMAIN-SUFFIX,lufax.com,AdBlock +- DOMAIN-SUFFIX,luotediao.net,AdBlock +- DOMAIN-SUFFIX,lvjian66.com,AdBlock +- DOMAIN-SUFFIX,lw1.cdmediaworld.com,AdBlock +- DOMAIN-SUFFIX,lw2.gamecopyworld.com,AdBlock +- DOMAIN-SUFFIX,lwnne.cn,AdBlock +- DOMAIN-SUFFIX,lwq.wangketuan.com,AdBlock +- DOMAIN-SUFFIX,lx167.com,AdBlock +- DOMAIN-SUFFIX,lxcdn.dl.files.xiaomi.net,AdBlock +- DOMAIN-SUFFIX,lxqcgj.com,AdBlock +- DOMAIN-SUFFIX,lxting.com,AdBlock +- DOMAIN-SUFFIX,lx-upload-log.yidianzixun.com,AdBlock +- DOMAIN-SUFFIX,lyaeccn.com,AdBlock +- DOMAIN-SUFFIX,lyapi.1391.com,AdBlock +- DOMAIN-SUFFIX,lycos-eu.imrworldwide.com,AdBlock +- DOMAIN-SUFFIX,lyhdream.com,AdBlock +- DOMAIN-SUFFIX,lyjk.1391.com,AdBlock +- DOMAIN-SUFFIX,lynndollin.com,AdBlock +- DOMAIN-SUFFIX,lyrymy.com,AdBlock +- DOMAIN-SUFFIX,lytubaobao.com,AdBlock +- DOMAIN-SUFFIX,lyunsd.cn,AdBlock +- DOMAIN-SUFFIX,lyztdz.com,AdBlock +- DOMAIN-SUFFIX,lz.chaelc.com,AdBlock +- DOMAIN-SUFFIX,lz.whafwl.com,AdBlock +- DOMAIN-SUFFIX,lzjycy.com,AdBlock +- DOMAIN-SUFFIX,lzmm8.com,AdBlock +- DOMAIN-SUFFIX,m.027blzs.com,AdBlock +- DOMAIN-SUFFIX,m.0531mnk.net,AdBlock +- DOMAIN-SUFFIX,m.107279.com,AdBlock +- DOMAIN-SUFFIX,m.118ex.cn,AdBlock +- DOMAIN-SUFFIX,m.1768.com,AdBlock +- DOMAIN-SUFFIX,m.1919388.net,AdBlock +- DOMAIN-SUFFIX,m.28487.net,AdBlock +- DOMAIN-SUFFIX,m.3987.com,AdBlock +- DOMAIN-SUFFIX,m.495495.com,AdBlock +- DOMAIN-SUFFIX,m.51xmgys.com,AdBlock +- DOMAIN-SUFFIX,m.52tushuo.com,AdBlock +- DOMAIN-SUFFIX,m.551144.com,AdBlock +- DOMAIN-SUFFIX,m.640640.com,AdBlock +- DOMAIN-SUFFIX,m.649649.com,AdBlock +- DOMAIN-SUFFIX,m.7180443.com,AdBlock +- DOMAIN-SUFFIX,m.77vcd.com,AdBlock +- DOMAIN-SUFFIX,m.937920.com,AdBlock +- DOMAIN-SUFFIX,m.abfirst.cn,AdBlock +- DOMAIN-SUFFIX,m.acaox.com,AdBlock +- DOMAIN-SUFFIX,m.achig.com,AdBlock +- DOMAIN-SUFFIX,m.ad.zhangyue.com,AdBlock +- DOMAIN-SUFFIX,m.adaog.com,AdBlock +- DOMAIN-SUFFIX,m.adxpop.com,AdBlock +- DOMAIN-SUFFIX,m.afoux.com,AdBlock +- DOMAIN-SUFFIX,m.anmeilai.net,AdBlock +- DOMAIN-SUFFIX,m.anzhuotan.com,AdBlock +- DOMAIN-SUFFIX,m.apxyz.com,AdBlock +- DOMAIN-SUFFIX,m.aqiudaohang.com,AdBlock +- DOMAIN-SUFFIX,m.assigned.cn,AdBlock +- DOMAIN-SUFFIX,m.aty.cp45.ott.cibntv.net,AdBlock +- DOMAIN-SUFFIX,m.aty.snmsohu.aisee.tv,AdBlock +- DOMAIN-SUFFIX,m.axsre.com,AdBlock +- DOMAIN-SUFFIX,m.baidu.com.yiqisee.cn,AdBlock +- DOMAIN-SUFFIX,m.baidu.com.zhiduo.org,AdBlock +- DOMAIN-SUFFIX,m.bailingjiankang.com,AdBlock +- DOMAIN-SUFFIX,m.baiyangzs.com,AdBlock +- DOMAIN-SUFFIX,m.bapkt.com,AdBlock +- DOMAIN-SUFFIX,m.bbvjs.com,AdBlock +- DOMAIN-SUFFIX,m.bdiae.com,AdBlock +- DOMAIN-SUFFIX,m.beacon.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,m.bentengcn.com,AdBlock +- DOMAIN-SUFFIX,m.biquge5200.cc,AdBlock +- DOMAIN-SUFFIX,m.bokanedu.net,AdBlock +- DOMAIN-SUFFIX,m.bsnnk.com,AdBlock +- DOMAIN-SUFFIX,m.bss.pandora.xiaomi.com,AdBlock +- DOMAIN-SUFFIX,m.bvoer.com,AdBlock +- DOMAIN-SUFFIX,m.bvosv.com,AdBlock +- DOMAIN-SUFFIX,m.casbanlly.com,AdBlock +- DOMAIN-SUFFIX,m.cbeif.com,AdBlock +- DOMAIN-SUFFIX,m.ccunf.com,AdBlock +- DOMAIN-SUFFIX,m.cdfzcz.com,AdBlock +- DOMAIN-SUFFIX,m.cenrs.com,AdBlock +- DOMAIN-SUFFIX,m.chenhuia.com,AdBlock +- DOMAIN-SUFFIX,m.chexiw.com,AdBlock +- DOMAIN-SUFFIX,m.chfuw.com,AdBlock +- DOMAIN-SUFFIX,m.cjieh.com,AdBlock +- DOMAIN-SUFFIX,m.ckikq.com,AdBlock +- DOMAIN-SUFFIX,m.clkservice.youdao.com,AdBlock +- DOMAIN-SUFFIX,m.cocounion.com,AdBlock +- DOMAIN-SUFFIX,m.codlw.com,AdBlock +- DOMAIN-SUFFIX,m.coenr.com,AdBlock +- DOMAIN-SUFFIX,m.couas.com,AdBlock +- DOMAIN-SUFFIX,m.cqytjzgc.com,AdBlock +- DOMAIN-SUFFIX,m.ctsywy.com,AdBlock +- DOMAIN-SUFFIX,m.cudaojia.com,AdBlock +- DOMAIN-SUFFIX,m.cuoas.com,AdBlock +- DOMAIN-SUFFIX,m.cuoss.com,AdBlock +- DOMAIN-SUFFIX,m.daishuxy.com,AdBlock +- DOMAIN-SUFFIX,m.dante2007.com,AdBlock +- DOMAIN-SUFFIX,m.data.mob.com,AdBlock +- DOMAIN-SUFFIX,m.dbaiz.com,AdBlock +- DOMAIN-SUFFIX,m.dgaoz.com,AdBlock +- DOMAIN-SUFFIX,m.diogv.com,AdBlock +- DOMAIN-SUFFIX,m.djhhy.com,AdBlock +- DOMAIN-SUFFIX,m.dnfeu.com,AdBlock +- DOMAIN-SUFFIX,m.doodlemobile.com,AdBlock +- DOMAIN-SUFFIX,m.dsjre.com,AdBlock +- DOMAIN-SUFFIX,m.du1du.org,AdBlock +- DOMAIN-SUFFIX,m.duias.com,AdBlock +- DOMAIN-SUFFIX,m.duobao999.com,AdBlock +- DOMAIN-SUFFIX,m.dxmci.com,AdBlock +- DOMAIN-SUFFIX,m.edo5.com,AdBlock +- DOMAIN-SUFFIX,m.ee-skin.com,AdBlock +- DOMAIN-SUFFIX,m.ee-vip.net,AdBlock +- DOMAIN-SUFFIX,m.efeiy.com,AdBlock +- DOMAIN-SUFFIX,m.ehxyz.com,AdBlock +- DOMAIN-SUFFIX,m.emgwq.com,AdBlock +- DOMAIN-SUFFIX,m.enjuk.com,AdBlock +- DOMAIN-SUFFIX,m.ennmt.com,AdBlock +- DOMAIN-SUFFIX,m.fbaix.com,AdBlock +- DOMAIN-SUFFIX,m.fbaot.com,AdBlock +- DOMAIN-SUFFIX,m.fcaot.com,AdBlock +- DOMAIN-SUFFIX,m.fcuit.com,AdBlock +- DOMAIN-SUFFIX,m.fecjf.cn,AdBlock +- DOMAIN-SUFFIX,m.feirs.com,AdBlock +- DOMAIN-SUFFIX,m.fengwanwl.com,AdBlock +- DOMAIN-SUFFIX,m.fenrs.com,AdBlock +- DOMAIN-SUFFIX,m.fhxsw.org,AdBlock +- DOMAIN-SUFFIX,m.fimky.com,AdBlock +- DOMAIN-SUFFIX,m.fkkse.com,AdBlock +- DOMAIN-SUFFIX,m.fkogs.com,AdBlock +- DOMAIN-SUFFIX,m.focuscat.com,AdBlock +- DOMAIN-SUFFIX,m.fouas.com,AdBlock +- DOMAIN-SUFFIX,m.foumm.com,AdBlock +- DOMAIN-SUFFIX,m.fstaw.com,AdBlock +- DOMAIN-SUFFIX,m.fwjoi.com,AdBlock +- DOMAIN-SUFFIX,m.fxbga.com,AdBlock +- DOMAIN-SUFFIX,m.fzyda.com,AdBlock +- DOMAIN-SUFFIX,m.gameyun907.net,AdBlock +- DOMAIN-SUFFIX,m.ganrs.com,AdBlock +- DOMAIN-SUFFIX,m.gbieg.com,AdBlock +- DOMAIN-SUFFIX,m.gcaij.com,AdBlock +- DOMAIN-SUFFIX,m.gcheg.com,AdBlock +- DOMAIN-SUFFIX,m.gdt.vip1790.cn,AdBlock +- DOMAIN-SUFFIX,m.gglay.com,AdBlock +- DOMAIN-SUFFIX,m.gtiou.com,AdBlock +- DOMAIN-SUFFIX,m.gtnde.com,AdBlock +- DOMAIN-SUFFIX,m.guaas.com,AdBlock +- DOMAIN-SUFFIX,m.guanren11.com,AdBlock +- DOMAIN-SUFFIX,m.guanren5.com,AdBlock +- DOMAIN-SUFFIX,m.guanren6.com,AdBlock +- DOMAIN-SUFFIX,m.guanren9.com,AdBlock +- DOMAIN-SUFFIX,m.guifei99.com,AdBlock +- DOMAIN-SUFFIX,m.gujinyue.com,AdBlock +- DOMAIN-SUFFIX,m.gwdqp.com,AdBlock +- DOMAIN-SUFFIX,m.gxkyl.com,AdBlock +- DOMAIN-SUFFIX,m.haowj.com.cn,AdBlock +- DOMAIN-SUFFIX,m.harbinbaojia.net,AdBlock +- DOMAIN-SUFFIX,m.hellomingpian.com,AdBlock +- DOMAIN-SUFFIX,m.heygugu.com,AdBlock +- DOMAIN-SUFFIX,m.hhllyt.com,AdBlock +- DOMAIN-SUFFIX,m.hissq.com,AdBlock +- DOMAIN-SUFFIX,m.hk7799.net,AdBlock +- DOMAIN-SUFFIX,m.hkmqp.com,AdBlock +- DOMAIN-SUFFIX,m.hmzsfmjc.com,AdBlock +- DOMAIN-SUFFIX,m.hogyp.com,AdBlock +- DOMAIN-SUFFIX,m.hot-mob.com,AdBlock +- DOMAIN-SUFFIX,m.hpfjy.com,AdBlock +- DOMAIN-SUFFIX,m.hpzyl.com,AdBlock +- DOMAIN-SUFFIX,m.hsbkr.com,AdBlock +- DOMAIN-SUFFIX,m.htper.com,AdBlock +- DOMAIN-SUFFIX,m.huanyuexpress.com,AdBlock +- DOMAIN-SUFFIX,m.huyulh.com,AdBlock +- DOMAIN-SUFFIX,m.hyzui.com,AdBlock +- DOMAIN-SUFFIX,m.icyrd.com,AdBlock +- DOMAIN-SUFFIX,m.ienkdaged.cn,AdBlock +- DOMAIN-SUFFIX,m.ienkdago.cn,AdBlock +- DOMAIN-SUFFIX,m.infvb.com,AdBlock +- DOMAIN-SUFFIX,m.irauz.com,AdBlock +- DOMAIN-SUFFIX,m.irkuj.com,AdBlock +- DOMAIN-SUFFIX,m.iruad.com,AdBlock +- DOMAIN-SUFFIX,m.ishowms.com,AdBlock +- DOMAIN-SUFFIX,m.jcwwxn.com,AdBlock +- DOMAIN-SUFFIX,m.jdaot.com,AdBlock +- DOMAIN-SUFFIX,m.jgkto.com,AdBlock +- DOMAIN-SUFFIX,m.jhcgood.com,AdBlock +- DOMAIN-SUFFIX,m.jieyixiu.com,AdBlock +- DOMAIN-SUFFIX,m.jiirz.com,AdBlock +- DOMAIN-SUFFIX,m.jinchaoyu.com,AdBlock +- DOMAIN-SUFFIX,m.jioeg.com,AdBlock +- DOMAIN-SUFFIX,m.jkert.com,AdBlock +- DOMAIN-SUFFIX,m.jlkja.com,AdBlock +- DOMAIN-SUFFIX,m.jltdbyq.com,AdBlock +- DOMAIN-SUFFIX,m.joyxv.com,AdBlock +- DOMAIN-SUFFIX,m.juyzr.com,AdBlock +- DOMAIN-SUFFIX,m.jwiyr.com,AdBlock +- DOMAIN-SUFFIX,m.jyhwt.cn,AdBlock +- DOMAIN-SUFFIX,m.kcooy.com,AdBlock +- DOMAIN-SUFFIX,m.kejet.net,AdBlock +- DOMAIN-SUFFIX,m.kewro.com,AdBlock +- DOMAIN-SUFFIX,m.khuoy.com,AdBlock +- DOMAIN-SUFFIX,m.kjfhe.com,AdBlock +- DOMAIN-SUFFIX,m.kjhfy.com,AdBlock +- DOMAIN-SUFFIX,m.kl6636.net,AdBlock +- DOMAIN-SUFFIX,m.ksttwz.com,AdBlock +- DOMAIN-SUFFIX,m.kubiqq.com,AdBlock +- DOMAIN-SUFFIX,m.kwjkd.com,AdBlock +- DOMAIN-SUFFIX,m.kxhie.com,AdBlock +- DOMAIN-SUFFIX,m.laigame7.net,AdBlock +- DOMAIN-SUFFIX,m.lancedu.com,AdBlock +- DOMAIN-SUFFIX,m.laojiayoufang.com,AdBlock +- DOMAIN-SUFFIX,m.laoqu123.com,AdBlock +- DOMAIN-SUFFIX,m.lfdydk.com,AdBlock +- DOMAIN-SUFFIX,m.lovezhishou.com,AdBlock +- DOMAIN-SUFFIX,m.lusrg.cn,AdBlock +- DOMAIN-SUFFIX,m.lyjz001.com,AdBlock +- DOMAIN-SUFFIX,m.lzida.com,AdBlock +- DOMAIN-SUFFIX,m.lzytt.com,AdBlock +- DOMAIN-SUFFIX,m.maopuzw.com,AdBlock +- DOMAIN-SUFFIX,m.mgogo.com,AdBlock +- DOMAIN-SUFFIX,m.mgsue.cn,AdBlock +- DOMAIN-SUFFIX,m.miaoxinqipei.com,AdBlock +- DOMAIN-SUFFIX,m.mightiger.net,AdBlock +- DOMAIN-SUFFIX,m.miiuv.com,AdBlock +- DOMAIN-SUFFIX,m.miupp.com,AdBlock +- DOMAIN-SUFFIX,m.mmkvi.com,AdBlock +- DOMAIN-SUFFIX,m.mouaa.com,AdBlock +- DOMAIN-SUFFIX,m.mqgpo.com,AdBlock +- DOMAIN-SUFFIX,m.mrtuo.com,AdBlock +- DOMAIN-SUFFIX,m.mtuoa.com,AdBlock +- DOMAIN-SUFFIX,m.mushizhubao.com,AdBlock +- DOMAIN-SUFFIX,m.mxguan.com,AdBlock +- DOMAIN-SUFFIX,m.nduop.com,AdBlock +- DOMAIN-SUFFIX,m.neijh.com,AdBlock +- DOMAIN-SUFFIX,m.nejup.com,AdBlock +- DOMAIN-SUFFIX,m.nernv.com,AdBlock +- DOMAIN-SUFFIX,m.nfkos.com,AdBlock +- DOMAIN-SUFFIX,m.niegg.com,AdBlock +- DOMAIN-SUFFIX,m.nmtouzi.com,AdBlock +- DOMAIN-SUFFIX,m.nnfiy.com,AdBlock +- DOMAIN-SUFFIX,m.nouaa.com,AdBlock +- DOMAIN-SUFFIX,m.nthtcs.com,AdBlock +- DOMAIN-SUFFIX,m.ntxiangtai.com,AdBlock +- DOMAIN-SUFFIX,m.nuxyz.cn,AdBlock +- DOMAIN-SUFFIX,m.nwxzs.com,AdBlock +- DOMAIN-SUFFIX,m.nxypz.com,AdBlock +- DOMAIN-SUFFIX,m.oesnw.com,AdBlock +- DOMAIN-SUFFIX,m.opqsr.com,AdBlock +- DOMAIN-SUFFIX,m.osndy.com,AdBlock +- DOMAIN-SUFFIX,m.ourlj.com,AdBlock +- DOMAIN-SUFFIX,m.oyrim.com,AdBlock +- DOMAIN-SUFFIX,m.panda.voiceads.cn,AdBlock +- DOMAIN-SUFFIX,m.pbino.com,AdBlock +- DOMAIN-SUFFIX,m.phonthing.com,AdBlock +- DOMAIN-SUFFIX,m.picbr.com,AdBlock +- DOMAIN-SUFFIX,m.pieaa.com,AdBlock +- DOMAIN-SUFFIX,m.plerv.com,AdBlock +- DOMAIN-SUFFIX,m.pomkl.com,AdBlock +- DOMAIN-SUFFIX,m.poonscn.com,AdBlock +- DOMAIN-SUFFIX,m.pougg.com,AdBlock +- DOMAIN-SUFFIX,m.prazpf.cn,AdBlock +- DOMAIN-SUFFIX,m.pubbirdf.com,AdBlock +- DOMAIN-SUFFIX,m.puooi.com,AdBlock +- DOMAIN-SUFFIX,m.pwjhg.com,AdBlock +- DOMAIN-SUFFIX,m.pyerc.com,AdBlock +- DOMAIN-SUFFIX,m.qcw.com,AdBlock +- DOMAIN-SUFFIX,m.qhuik.com,AdBlock +- DOMAIN-SUFFIX,m.qianka.com,AdBlock +- DOMAIN-SUFFIX,m.qingzhencai.net,AdBlock +- DOMAIN-SUFFIX,m.qiyunmuye.com,AdBlock +- DOMAIN-SUFFIX,m.qsove.com,AdBlock +- DOMAIN-SUFFIX,m.qulishi.com,AdBlock +- DOMAIN-SUFFIX,m.qusub.com,AdBlock +- DOMAIN-SUFFIX,m.qvxyz.com,AdBlock +- DOMAIN-SUFFIX,m.rhcapass.com,AdBlock +- DOMAIN-SUFFIX,m.ricpt.com,AdBlock +- DOMAIN-SUFFIX,m.rmuqvq.cn,AdBlock +- DOMAIN-SUFFIX,m.rmwdn.com,AdBlock +- DOMAIN-SUFFIX,m.romgv.com,AdBlock +- DOMAIN-SUFFIX,m.rrsdl.com,AdBlock +- DOMAIN-SUFFIX,m.rwganw.cn,AdBlock +- DOMAIN-SUFFIX,m.sanitwealth.com,AdBlock +- DOMAIN-SUFFIX,m.sanjiangge.com,AdBlock +- DOMAIN-SUFFIX,m.sbenx.com,AdBlock +- DOMAIN-SUFFIX,m.sbinx.com,AdBlock +- DOMAIN-SUFFIX,m.sewxi.com,AdBlock +- DOMAIN-SUFFIX,m.shenyunkeji.com,AdBlock +- DOMAIN-SUFFIX,m.simba.taobao.com,AdBlock +- DOMAIN-SUFFIX,m.sjaidu.com,AdBlock +- DOMAIN-SUFFIX,m.sjuqc.com,AdBlock +- DOMAIN-SUFFIX,m.sjzhushou.com,AdBlock +- DOMAIN-SUFFIX,m.smsksx.com,AdBlock +- DOMAIN-SUFFIX,m.sosjyx.com,AdBlock +- DOMAIN-SUFFIX,m.srrux.com,AdBlock +- DOMAIN-SUFFIX,m.suehy.com,AdBlock +- DOMAIN-SUFFIX,m.sxxca.com,AdBlock +- DOMAIN-SUFFIX,m.symaa.cn,AdBlock +- DOMAIN-SUFFIX,m.symab.cn,AdBlock +- DOMAIN-SUFFIX,m.symac.cn,AdBlock +- DOMAIN-SUFFIX,m.symad.cn,AdBlock +- DOMAIN-SUFFIX,m.symag.cn,AdBlock +- DOMAIN-SUFFIX,m.symaj.cn,AdBlock +- DOMAIN-SUFFIX,m.szqifu.com,AdBlock +- DOMAIN-SUFFIX,m.tansuotv.com,AdBlock +- DOMAIN-SUFFIX,m.tcksbz888.com,AdBlock +- DOMAIN-SUFFIX,m.tiantianedu.net,AdBlock +- DOMAIN-SUFFIX,m.tiaopimiao.net,AdBlock +- DOMAIN-SUFFIX,m.tick0.com,AdBlock +- DOMAIN-SUFFIX,m.tiojk.com,AdBlock +- DOMAIN-SUFFIX,m.tuopp.com,AdBlock +- DOMAIN-SUFFIX,m.twldmx.com,AdBlock +- DOMAIN-SUFFIX,m.txtxr.com,AdBlock +- DOMAIN-SUFFIX,m.uc123.com,AdBlock +- DOMAIN-SUFFIX,m.uczzd.cn,AdBlock +- DOMAIN-SUFFIX,m.ueram.com,AdBlock +- DOMAIN-SUFFIX,m.uissm.com,AdBlock +- DOMAIN-SUFFIX,m.vaxyz.com,AdBlock +- DOMAIN-SUFFIX,m.vbaou.com,AdBlock +- DOMAIN-SUFFIX,m.vbieu.com,AdBlock +- DOMAIN-SUFFIX,m.vbinu.com,AdBlock +- DOMAIN-SUFFIX,m.verpt.com,AdBlock +- DOMAIN-SUFFIX,m.vichc.com,AdBlock +- DOMAIN-SUFFIX,m.vouky.com,AdBlock +- DOMAIN-SUFFIX,m.vpon.com,AdBlock +- DOMAIN-SUFFIX,m.vsxet.com,AdBlock +- DOMAIN-SUFFIX,m.wcjup.com,AdBlock +- DOMAIN-SUFFIX,m.weboser.com,AdBlock +- DOMAIN-SUFFIX,m.weixingshexiangji.net,AdBlock +- DOMAIN-SUFFIX,m.wervp.com,AdBlock +- DOMAIN-SUFFIX,m.wgewj.cn,AdBlock +- DOMAIN-SUFFIX,m.wikigifth.com,AdBlock +- DOMAIN-SUFFIX,m.wjhehaofc.com,AdBlock +- DOMAIN-SUFFIX,m.wkjhd.com,AdBlock +- DOMAIN-SUFFIX,m.wnxcg.com,AdBlock +- DOMAIN-SUFFIX,m.wonwg.com,AdBlock +- DOMAIN-SUFFIX,m.wooboo.com.cn,AdBlock +- DOMAIN-SUFFIX,m.wrating.com,AdBlock +- DOMAIN-SUFFIX,m.wshufa.com,AdBlock +- DOMAIN-SUFFIX,m.wsxxu.com,AdBlock +- DOMAIN-SUFFIX,m.wuqutu.com,AdBlock +- DOMAIN-SUFFIX,m.wxhh678.com,AdBlock +- DOMAIN-SUFFIX,m.xcy8.com,AdBlock +- DOMAIN-SUFFIX,m.xdkje.com,AdBlock +- DOMAIN-SUFFIX,m.xeihy.com,AdBlock +- DOMAIN-SUFFIX,m.xetvb.com,AdBlock +- DOMAIN-SUFFIX,m.xhaiu.com,AdBlock +- DOMAIN-SUFFIX,m.xiangchim0.com,AdBlock +- DOMAIN-SUFFIX,m.xikdn.com,AdBlock +- DOMAIN-SUFFIX,m.xingxd.com,AdBlock +- DOMAIN-SUFFIX,m.xkqpco.com,AdBlock +- DOMAIN-SUFFIX,m.xkqpco.com.com,AdBlock +- DOMAIN-SUFFIX,m.xlsschina15.net,AdBlock +- DOMAIN-SUFFIX,m.xmgysweb.com,AdBlock +- DOMAIN-SUFFIX,m.xpjis.com,AdBlock +- DOMAIN-SUFFIX,m.xxkio.com,AdBlock +- DOMAIN-SUFFIX,m.yalayi.com,AdBlock +- DOMAIN-SUFFIX,m.yangjingbang.net,AdBlock +- DOMAIN-SUFFIX,m.yap.yahoo.com,AdBlock +- DOMAIN-SUFFIX,m.yicang8.com,AdBlock +- DOMAIN-SUFFIX,m.yingchengtou.com,AdBlock +- DOMAIN-SUFFIX,m.ynnke.com,AdBlock +- DOMAIN-SUFFIX,m.yoiur.com,AdBlock +- DOMAIN-SUFFIX,m.yooli.com,AdBlock +- DOMAIN-SUFFIX,m.youweiprint.com,AdBlock +- DOMAIN-SUFFIX,m.yoyi.com.cn,AdBlock +- DOMAIN-SUFFIX,m.ysdhe.com,AdBlock +- DOMAIN-SUFFIX,m.yuandajiayuan.com,AdBlock +- DOMAIN-SUFFIX,m.yuxyz.com,AdBlock +- DOMAIN-SUFFIX,m.ywbwsm.com,AdBlock +- DOMAIN-SUFFIX,m.yyeks.com,AdBlock +- DOMAIN-SUFFIX,m.yyjhf.com,AdBlock +- DOMAIN-SUFFIX,m.yzjlsb.com,AdBlock +- DOMAIN-SUFFIX,m.zabxb.com,AdBlock +- DOMAIN-SUFFIX,m.zaoss.com,AdBlock +- DOMAIN-SUFFIX,m.zeiaa.com,AdBlock +- DOMAIN-SUFFIX,m.zenffs.cn,AdBlock +- DOMAIN-SUFFIX,m.zenwq.com,AdBlock +- DOMAIN-SUFFIX,m.zhuyuanp.club,AdBlock +- DOMAIN-SUFFIX,m.zhuyuanp.shop,AdBlock +- DOMAIN-SUFFIX,m.zhuyuanp.top,AdBlock +- DOMAIN-SUFFIX,m.zkwsdf.com,AdBlock +- DOMAIN-SUFFIX,m.zougg.com,AdBlock +- DOMAIN-SUFFIX,m.zuopp.com,AdBlock +- DOMAIN-SUFFIX,m1.baidu.com,AdBlock +- DOMAIN-SUFFIX,m1.daumcdn.net,AdBlock +- DOMAIN-SUFFIX,m1.mgogo.com,AdBlock +- DOMAIN-SUFFIX,m1.xcy8.com,AdBlock +- DOMAIN-SUFFIX,m2.qinsx.cn,AdBlock +- DOMAIN-SUFFIX,m3bnqqqw.com,AdBlock +- DOMAIN-SUFFIX,m5.apk.67mo.com,AdBlock +- DOMAIN-SUFFIX,m9.xcdf.cn,AdBlock +- DOMAIN-SUFFIX,m9.xcy8.com,AdBlock +- DOMAIN-SUFFIX,ma.baidu.com,AdBlock +- DOMAIN-SUFFIX,ma1.meishij.net,AdBlock +- DOMAIN-SUFFIX,ma2.meishij.net,AdBlock +- DOMAIN-SUFFIX,maccms.tan5858.com,AdBlock +- DOMAIN-SUFFIX,mackeeper.com,AdBlock +- DOMAIN-SUFFIX,macplatform.wondershare.com,AdBlock +- DOMAIN-SUFFIX,mad.kuuad.com,AdBlock +- DOMAIN-SUFFIX,mad.m.maxthon.cn,AdBlock +- DOMAIN-SUFFIX,m-adash.m.taobao.com,AdBlock +- DOMAIN-SUFFIX,madhouse.cn,AdBlock +- DOMAIN-SUFFIX,madmini.com,AdBlock +- DOMAIN-SUFFIX,mads.amazon.com,AdBlock +- DOMAIN-SUFFIX,mads.aol.com,AdBlock +- DOMAIN-SUFFIX,mads.dailymail.co.uk,AdBlock +- DOMAIN-SUFFIX,madserving.com,AdBlock +- DOMAIN-SUFFIX,magicwindow.cn,AdBlock +- DOMAIN-SUFFIX,magnetic.t.domdex.com,AdBlock +- DOMAIN-SUFFIX,maibahe300cc.com,AdBlock +- DOMAIN-SUFFIX,main.exdynsrv.com,AdBlock +- DOMAIN-SUFFIX,main.exoclick.com,AdBlock +- DOMAIN-SUFFIX,mainbx.com,AdBlock +- DOMAIN-SUFFIX,maipinshangmao.com,AdBlock +- DOMAIN-SUFFIX,mairuan.cn,AdBlock +- DOMAIN-SUFFIX,mairuan.com,AdBlock +- DOMAIN-SUFFIX,mairuan.com.cn,AdBlock +- DOMAIN-SUFFIX,mairuan.net,AdBlock +- DOMAIN-SUFFIX,mairuanwang.com,AdBlock +- DOMAIN-SUFFIX,maisoncherry.com,AdBlock +- DOMAIN-SUFFIX,makeding.com,AdBlock +- DOMAIN-SUFFIX,malacca.inveno.com,AdBlock +- DOMAIN-SUFFIX,manage.wdfans.cn,AdBlock +- DOMAIN-SUFFIX,maomaotang.com,AdBlock +- DOMAIN-SUFFIX,map.dxpmedia.com,AdBlock +- DOMAIN-SUFFIX,map.media6degrees.com,AdBlock +- DOMAIN-SUFFIX,mapping.yoyi.com.cn,AdBlock +- DOMAIN-SUFFIX,market.178.com,AdBlock +- DOMAIN-SUFFIX,market.21cn.com,AdBlock +- DOMAIN-SUFFIX,market.52pk.com,AdBlock +- DOMAIN-SUFFIX,market.duowan.com,AdBlock +- DOMAIN-SUFFIX,marketgid.com,AdBlock +- DOMAIN-SUFFIX,marketing.888.com,AdBlock +- DOMAIN-SUFFIX,marketing.etouch.cn,AdBlock +- DOMAIN-SUFFIX,marketingsolutions.yahoo.com,AdBlock +- DOMAIN-SUFFIX,marketo.com,AdBlock +- DOMAIN-SUFFIX,marketo.net,AdBlock +- DOMAIN-SUFFIX,masdk.3g.qq.com,AdBlock +- DOMAIN-SUFFIX,maskbaby.com.cn,AdBlock +- DOMAIN-SUFFIX,mass.mall044.com,AdBlock +- DOMAIN-SUFFIX,master.wap.dphub.sandai.net,AdBlock +- DOMAIN-SUFFIX,match.adsby.bidtheatre.com,AdBlock +- DOMAIN-SUFFIX,match.c8.net.ua,AdBlock +- DOMAIN-SUFFIX,match.p4p.1688.com,AdBlock +- DOMAIN-SUFFIX,match.prod.bidr.io,AdBlock +- DOMAIN-SUFFIX,match.rundsp.com,AdBlock +- DOMAIN-SUFFIX,matching.targeterra.com,AdBlock +- DOMAIN-SUFFIX,material.istreamsche.com,AdBlock +- DOMAIN-SUFFIX,material.mtty.xin,AdBlock +- DOMAIN-SUFFIX,mathtag.com,AdBlock +- DOMAIN-SUFFIX,mathtype.cn,AdBlock +- DOMAIN-SUFFIX,maw.wnbfw.com,AdBlock +- DOMAIN-SUFFIX,maxwebsearch.com,AdBlock +- DOMAIN-SUFFIX,maysunmedia.com,AdBlock +- DOMAIN-SUFFIX,mb.hockeybuzz.com,AdBlock +- DOMAIN-SUFFIX,mb.yidianzixun.com,AdBlock +- DOMAIN-SUFFIX,mb.zam.com,AdBlock +- DOMAIN-SUFFIX,mbai.cn,AdBlock +- DOMAIN-SUFFIX,mbd.weathercn.com,AdBlock +- DOMAIN-SUFFIX,mbrowser.news.haosou.com,AdBlock +- DOMAIN-SUFFIX,mbrowser.news.so.com,AdBlock +- DOMAIN-SUFFIX,mbs.weathercn.com,AdBlock +- DOMAIN-SUFFIX,mc.hujiang.com,AdBlock +- DOMAIN-SUFFIX,mc.yandex.ru,AdBlock +- DOMAIN-SUFFIX,mclick.simba.taobao.com,AdBlock +- DOMAIN-SUFFIX,mcore.vcgame.cn,AdBlock +- DOMAIN-SUFFIX,md.1drj.com,AdBlock +- DOMAIN-SUFFIX,md.he9630.com,AdBlock +- DOMAIN-SUFFIX,md.sh5e.com,AdBlock +- DOMAIN-SUFFIX,md0z4dh.com,AdBlock +- DOMAIN-SUFFIX,mdc.meitustat.com,AdBlock +- DOMAIN-SUFFIX,mdotm.com,AdBlock +- DOMAIN-SUFFIX,mdpjnppsbjv.bid,AdBlock +- DOMAIN-SUFFIX,mdrecv.app.cntvwb.cn,AdBlock +- DOMAIN-SUFFIX,me.afp.chinanews.com,AdBlock +- DOMAIN-SUFFIX,mealsandsteals.sandiego6.com,AdBlock +- DOMAIN-SUFFIX,me-cdn.effectivemeasure.net,AdBlock +- DOMAIN-SUFFIX,med.heyzap.com,AdBlock +- DOMAIN-SUFFIX,medal.blog.csdn.net,AdBlock +- DOMAIN-SUFFIX,media.2011.8684.com,AdBlock +- DOMAIN-SUFFIX,media.cheshi-img.com,AdBlock +- DOMAIN-SUFFIX,media.fastclick.net,AdBlock +- DOMAIN-SUFFIX,media.jointreport-switch.com,AdBlock +- DOMAIN-SUFFIX,media.tianjimedia.com,AdBlock +- DOMAIN-SUFFIX,media.trafficfactory.biz,AdBlock +- DOMAIN-SUFFIX,media.trafficjunky.net,AdBlock +- DOMAIN-SUFFIX,media8.cn,AdBlock +- DOMAIN-SUFFIX,mediamgr.ugo.com,AdBlock +- DOMAIN-SUFFIX,mediaplex.com,AdBlock +- DOMAIN-SUFFIX,mediapro.pro.cn,AdBlock +- DOMAIN-SUFFIX,media-static.jointreport-switch.com,AdBlock +- DOMAIN-SUFFIX,mediav.com,AdBlock +- DOMAIN-SUFFIX,medrx.telstra.com.au,AdBlock +- DOMAIN-SUFFIX,megajoy.com,AdBlock +- DOMAIN-SUFFIX,meimeidaren.com,AdBlock +- DOMAIN-SUFFIX,meiti1.net,AdBlock +- DOMAIN-SUFFIX,meitubeauty.meitudata.com,AdBlock +- DOMAIN-SUFFIX,meitumq.com,AdBlock +- DOMAIN-SUFFIX,menghuanzs.com,AdBlock +- DOMAIN-SUFFIX,mengmengdas.com,AdBlock +- DOMAIN-SUFFIX,mengyuanwei.com,AdBlock +- DOMAIN-SUFFIX,message.meitu.com,AdBlock +- DOMAIN-SUFFIX,metok.sys.miui.com,AdBlock +- DOMAIN-SUFFIX,metrics.cnn.com,AdBlock +- DOMAIN-SUFFIX,mfan.iclick.com.cn,AdBlock +- DOMAIN-SUFFIX,mfm.video.qq.com,AdBlock +- DOMAIN-SUFFIX,mfp.deliver.ifeng.com,AdBlock +- DOMAIN-SUFFIX,mfsr.lenovomm.com,AdBlock +- DOMAIN-SUFFIX,mg.5pk,AdBlock +- DOMAIN-SUFFIX,mg.games.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,mg.yadro.ru,AdBlock +- DOMAIN-SUFFIX,mgid.com,AdBlock +- DOMAIN-SUFFIX,mgldzcls.com,AdBlock +- DOMAIN-SUFFIX,mgogo.com,AdBlock +- DOMAIN-SUFFIX,mgwcn.com,AdBlock +- DOMAIN-SUFFIX,mgwl668.com,AdBlock +- DOMAIN-SUFFIX,mhd.1391.com,AdBlock +- DOMAIN-SUFFIX,mhdpay.1391.com,AdBlock +- DOMAIN-SUFFIX,mhdtestks3.1391.com,AdBlock +- DOMAIN-SUFFIX,mhdufile.1391.com,AdBlock +- DOMAIN-SUFFIX,mhjk.1391.com,AdBlock +- DOMAIN-SUFFIX,mhuodong.elong.com,AdBlock +- DOMAIN-SUFFIX,miam4.cn,AdBlock +- DOMAIN-SUFFIX,miaobeichina.com,AdBlock +- DOMAIN-SUFFIX,miaozhen.com,AdBlock +- DOMAIN-SUFFIX,mibook-10006092.cos.myqcloud.com,AdBlock +- DOMAIN-SUFFIX,microad-cn.com,AdBlock +- DOMAIN-SUFFIX,mid.houyi.baofeng.net,AdBlock +- DOMAIN-SUFFIX,midas.rong360.com,AdBlock +- DOMAIN-SUFFIX,midinfo.baofeng.com,AdBlock +- DOMAIN-SUFFIX,mie99.net,AdBlock +- DOMAIN-SUFFIX,migc.g.mi.com,AdBlock +- DOMAIN-SUFFIX,migcreport.g.mi.com,AdBlock +- DOMAIN-SUFFIX,migrate.driveapi.micloud.xiaomi.net,AdBlock +- DOMAIN-SUFFIX,migu.kssws.ks-cdn.com,AdBlock +- DOMAIN-SUFFIX,mihui.com,AdBlock +- DOMAIN-SUFFIX,miidi.net,AdBlock +- DOMAIN-SUFFIX,mijifen.com,AdBlock +- DOMAIN-SUFFIX,milk.yesky.com.cn,AdBlock +- DOMAIN-SUFFIX,millennialmedia.com,AdBlock +- DOMAIN-SUFFIX,millwardbrownacsr.com,AdBlock +- DOMAIN-SUFFIX,mimg.126.net,AdBlock +- DOMAIN-SUFFIX,mimg.7791.com.cn,AdBlock +- DOMAIN-SUFFIX,mindmanager.cc,AdBlock +- DOMAIN-SUFFIX,mindmapper.cc,AdBlock +- DOMAIN-SUFFIX,minesage.com,AdBlock +- DOMAIN-SUFFIX,minfo.wps.cn,AdBlock +- DOMAIN-SUFFIX,mingxianshanghang.cn,AdBlock +- DOMAIN-SUFFIX,mingysh.com,AdBlock +- DOMAIN-SUFFIX,mini.cpc.sogou.com,AdBlock +- DOMAIN-SUFFIX,mini.eastday.com,AdBlock +- DOMAIN-SUFFIX,mini.hao123.com,AdBlock +- DOMAIN-SUFFIX,mini.jijiplayer.com,AdBlock +- DOMAIN-SUFFIX,mini2015.qq.com,AdBlock +- DOMAIN-SUFFIX,miniapp.bilibili.com,AdBlock +- DOMAIN-SUFFIX,minidcsc.kugou.com,AdBlock +- DOMAIN-SUFFIX,minipage.2345.com,AdBlock +- DOMAIN-SUFFIX,minisite.vidown.cn,AdBlock +- DOMAIN-SUFFIX,minisplat.cn,AdBlock +- DOMAIN-SUFFIX,miniye.xjts.cn,AdBlock +- DOMAIN-SUFFIX,mip.yuelvxing.com,AdBlock +- DOMAIN-SUFFIX,mipcache.bdstatic.com,AdBlock +- DOMAIN-SUFFIX,mipujia.com,AdBlock +- DOMAIN-SUFFIX,mis.g.mi.com,AdBlock +- DOMAIN-SUFFIX,miui.hdfdm.com,AdBlock +- DOMAIN-SUFFIX,miui.hftaili.com,AdBlock +- DOMAIN-SUFFIX,mivideo.g.mi.com,AdBlock +- DOMAIN-SUFFIX,mj70.cn,AdBlock +- DOMAIN-SUFFIX,mjs.csyymp4.com,AdBlock +- DOMAIN-SUFFIX,mkitgfs.com,AdBlock +- DOMAIN-SUFFIX,mlb.did.ijinshan.com,AdBlock +- DOMAIN-SUFFIX,mlgrrqymdsyk.com,AdBlock +- DOMAIN-SUFFIX,mlnbike.com,AdBlock +- DOMAIN-SUFFIX,mlog.aipai.com,AdBlock +- DOMAIN-SUFFIX,mlog.hiido.com,AdBlock +- DOMAIN-SUFFIX,mlog.m1905.cn,AdBlock +- DOMAIN-SUFFIX,mlog.search.xiaomi.net,AdBlock +- DOMAIN-SUFFIX,mlt01.com,AdBlock +- DOMAIN-SUFFIX,mm.2436.cn,AdBlock +- DOMAIN-SUFFIX,mm.anqu.com,AdBlock +- DOMAIN-SUFFIX,mm.jgchq.com,AdBlock +- DOMAIN-SUFFIX,mm.moquanad.com,AdBlock +- DOMAIN-SUFFIX,mmcc.yxlady.com,AdBlock +- DOMAIN-SUFFIX,mmg.aty.cp45.ott.cibntv.net,AdBlock +- DOMAIN-SUFFIX,mmg.aty.snmsohu.aisee.tv,AdBlock +- DOMAIN-SUFFIX,mmstat.com,AdBlock +- DOMAIN-SUFFIX,mng-ads.com,AdBlock +- DOMAIN-SUFFIX,mnkan.com,AdBlock +- DOMAIN-SUFFIX,mnwan.com,AdBlock +- DOMAIN-SUFFIX,mnxtu.com,AdBlock +- DOMAIN-SUFFIX,mo.haloapps.cn,AdBlock +- DOMAIN-SUFFIX,mo.kugou.com,AdBlock +- DOMAIN-SUFFIX,mo.res.wpscdn.cn,AdBlock +- DOMAIN-SUFFIX,mo.test.haloapps.com,AdBlock +- DOMAIN-SUFFIX,moad.cn,AdBlock +- DOMAIN-SUFFIX,moatads.com,AdBlock +- DOMAIN-SUFFIX,mob.huimee.net,AdBlock +- DOMAIN-SUFFIX,mobad.ijinshan.com,AdBlock +- DOMAIN-SUFFIX,mobadme.jp,AdBlock +- DOMAIN-SUFFIX,mobads.baidu.com,AdBlock +- DOMAIN-SUFFIX,mobads-logs.baidu.com,AdBlock +- DOMAIN-SUFFIX,mobclix.com,AdBlock +- DOMAIN-SUFFIX,mobfox.com,AdBlock +- DOMAIN-SUFFIX,mobgi.com,AdBlock +- DOMAIN-SUFFIX,mobilead.kuwo.cn,AdBlock +- DOMAIN-SUFFIX,mobileads.google.com,AdBlock +- DOMAIN-SUFFIX,mobileads.msn.com,AdBlock +- DOMAIN-SUFFIX,mobileapptracking.com,AdBlock +- DOMAIN-SUFFIX,mobiledissector.com,AdBlock +- DOMAIN-SUFFIX,mobilelog.kugou.com,AdBlock +- DOMAIN-SUFFIX,mobile-pubt.ele.me,AdBlock +- DOMAIN-SUFFIX,mobile-service.segment.com,AdBlock +- DOMAIN-SUFFIX,mobilityware.com,AdBlock +- DOMAIN-SUFFIX,mobiorg8.com,AdBlock +- DOMAIN-SUFFIX,mobisage.cn,AdBlock +- DOMAIN-SUFFIX,mobvista.com,AdBlock +- DOMAIN-SUFFIX,mohecm.com,AdBlock +- DOMAIN-SUFFIX,moka.inte.sogoucdn.com,AdBlock +- DOMAIN-SUFFIX,mon.xtgreat.com,AdBlock +- DOMAIN-SUFFIX,monero.how,AdBlock +- DOMAIN-SUFFIX,money.qz828.com,AdBlock +- DOMAIN-SUFFIX,monitor.uu.qq.com,AdBlock +- DOMAIN-SUFFIX,moodoocrv.com.cn,AdBlock +- DOMAIN-SUFFIX,moogos.com,AdBlock +- DOMAIN-SUFFIX,mookie1.com,AdBlock +- DOMAIN-SUFFIX,moons.66bhy.com,AdBlock +- DOMAIN-SUFFIX,moonwish.com.cn,AdBlock +- DOMAIN-SUFFIX,mopub.com,AdBlock +- DOMAIN-SUFFIX,moquanad.com,AdBlock +- DOMAIN-SUFFIX,moren-1252794300.file.myqcloud.com,AdBlock +- DOMAIN-SUFFIX,mosa86.com,AdBlock +- DOMAIN-SUFFIX,mostat.wps.cn,AdBlock +- DOMAIN-SUFFIX,motohelpr.com,AdBlock +- DOMAIN-SUFFIX,motu.p4p.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,motu.pagechoice.net,AdBlock +- DOMAIN-SUFFIX,mou.niu.xunlei.com,AdBlock +- DOMAIN-SUFFIX,moupdate10332052.wps.cn,AdBlock +- DOMAIN-SUFFIX,moutaihotel.cn,AdBlock +- DOMAIN-SUFFIX,movie.miaiche.cn,AdBlock +- DOMAIN-SUFFIX,mpb1.iteye.com,AdBlock +- DOMAIN-SUFFIX,mpb2.iteye.com,AdBlock +- DOMAIN-SUFFIX,mpp.vindicosuite.com,AdBlock +- DOMAIN-SUFFIX,mpro.baidu.com,AdBlock +- DOMAIN-SUFFIX,mps.nbcuni.com,AdBlock +- DOMAIN-SUFFIX,mps.weekslw.com,AdBlock +- DOMAIN-SUFFIX,mpush.cn,AdBlock +- DOMAIN-SUFFIX,mpzw.com,AdBlock +- DOMAIN-SUFFIX,mqq.zgdmsj.cn,AdBlock +- DOMAIN-SUFFIX,mqqad.cs0309.html5.qq.com,AdBlock +- DOMAIN-SUFFIX,mqqad.html5.qq.com,AdBlock +- DOMAIN-SUFFIX,mqqadr.reader.qq.com,AdBlock +- DOMAIN-SUFFIX,mr.da.netease.com,AdBlock +- DOMAIN-SUFFIX,mrelko.com,AdBlock +- DOMAIN-SUFFIX,mrksys.com,AdBlock +- DOMAIN-SUFFIX,ms.awqsaged.cn,AdBlock +- DOMAIN-SUFFIX,ms.cmcm.com,AdBlock +- DOMAIN-SUFFIX,ms.cnczjy.com,AdBlock +- DOMAIN-SUFFIX,ms.continuedsys.cn,AdBlock +- DOMAIN-SUFFIX,ms.ienkdaccessible.cn,AdBlock +- DOMAIN-SUFFIX,ms.ienkdaccessory.cn,AdBlock +- DOMAIN-SUFFIX,ms.jyhwt.cn,AdBlock +- DOMAIN-SUFFIX,ms.myyage.com,AdBlock +- DOMAIN-SUFFIX,ms.vipstatic.com,AdBlock +- DOMAIN-SUFFIX,msads.net,AdBlock +- DOMAIN-SUFFIX,mscimg.com,AdBlock +- DOMAIN-SUFFIX,msclick2.kuwo.cn,AdBlock +- DOMAIN-SUFFIX,msg.mobile.kugou.com,AdBlock +- DOMAIN-SUFFIX,msg.ptqy.gitv.tv,AdBlock +- DOMAIN-SUFFIX,msg.push.51y5.net,AdBlock +- DOMAIN-SUFFIX,mshow.fang.com,AdBlock +- DOMAIN-SUFFIX,msite.baidu.com,AdBlock +- DOMAIN-SUFFIX,msltzer.cn,AdBlock +- DOMAIN-SUFFIX,msn.wrating.com,AdBlock +- DOMAIN-SUFFIX,msnclick.wrating.com,AdBlock +- DOMAIN-SUFFIX,msphoneclick.kuwo.cn,AdBlock +- DOMAIN-SUFFIX,mssp.baidu.com,AdBlock +- DOMAIN-SUFFIX,mstat.zol.com.cn,AdBlock +- DOMAIN-SUFFIX,mstzym.com,AdBlock +- DOMAIN-SUFFIX,msypr.com,AdBlock +- DOMAIN-SUFFIX,mti.35kds.com,AdBlock +- DOMAIN-SUFFIX,mtj.baidu.com,AdBlock +- DOMAIN-SUFFIX,mtl.ttsqgs.com,AdBlock +- DOMAIN-SUFFIX,mtrace.qq.com,AdBlock +- DOMAIN-SUFFIX,mtty-cdn.mtty.xin,AdBlock +- DOMAIN-SUFFIX,mtxsk.com,AdBlock +- DOMAIN-SUFFIX,mubite.cn,AdBlock +- DOMAIN-SUFFIX,munchkin.marketo.net,AdBlock +- DOMAIN-SUFFIX,musik-mp3.info,AdBlock +- DOMAIN-SUFFIX,mvads.kugou.com,AdBlock +- DOMAIN-SUFFIX,mvip.zhuba8.com,AdBlock +- DOMAIN-SUFFIX,mwa.xingyimin.com,AdBlock +- DOMAIN-SUFFIX,mwlucuvbyrff.com,AdBlock +- DOMAIN-SUFFIX,mxmrt.com,AdBlock +- DOMAIN-SUFFIX,mxpnl.com,AdBlock +- DOMAIN-SUFFIX,mxvp-ad-config-prod-1.zenmxapps.com,AdBlock +- DOMAIN-SUFFIX,mxvp-feature-toggle-prod-1.zenmxapps.com,AdBlock +- DOMAIN-SUFFIX,my.mobfox.com,AdBlock +- DOMAIN-SUFFIX,my1fc.m.b5200.net,AdBlock +- DOMAIN-SUFFIX,my1fimg.m.b5200.net,AdBlock +- DOMAIN-SUFFIX,myad.toocle.com,AdBlock +- DOMAIN-SUFFIX,mycleanmymac.com,AdBlock +- DOMAIN-SUFFIX,mydas.mobi,AdBlock +- DOMAIN-SUFFIX,mydisplay.ctfile.com,AdBlock +- DOMAIN-SUFFIX,myjsym.zichenit.com,AdBlock +- DOMAIN-SUFFIX,mymm.zichenit.com,AdBlock +- DOMAIN-SUFFIX,mytanwan.com,AdBlock +- DOMAIN-SUFFIX,mytzdhz.cn,AdBlock +- DOMAIN-SUFFIX,myycrw.com,AdBlock +- DOMAIN-SUFFIX,myzk1.com,AdBlock +- DOMAIN-SUFFIX,myzwqwe12.com,AdBlock +- DOMAIN-SUFFIX,mzy2014.com,AdBlock +- DOMAIN-SUFFIX,n.a.mosenni.com,AdBlock +- DOMAIN-SUFFIX,n.ads3-adnow.com,AdBlock +- DOMAIN-SUFFIX,n.amoad.com,AdBlock +- DOMAIN-SUFFIX,n.cosbot.cn,AdBlock +- DOMAIN-SUFFIX,n.gemini.yahoo.com,AdBlock +- DOMAIN-SUFFIX,n.ma.social-touch.com,AdBlock +- DOMAIN-SUFFIX,n.wjr1x.cn,AdBlock +- DOMAIN-SUFFIX,n.yfi8.com,AdBlock +- DOMAIN-SUFFIX,n.zqqf0.cn,AdBlock +- DOMAIN-SUFFIX,na1r.services.adobe.com,AdBlock +- DOMAIN-SUFFIX,na2m-pr.licenses.adobe.com,AdBlock +- DOMAIN-SUFFIX,nai.cpxkvc.com,AdBlock +- DOMAIN-SUFFIX,namedq.com,AdBlock +- DOMAIN-SUFFIX,namemek.com,AdBlock +- DOMAIN-SUFFIX,naqigs.com,AdBlock +- DOMAIN-SUFFIX,nativeapp.toutiao.com,AdBlock +- DOMAIN-SUFFIX,nav.winasdaq.com,AdBlock +- DOMAIN-SUFFIX,navi.gd.chinamobile.com,AdBlock +- DOMAIN-SUFFIX,nbhxgjz.com,AdBlock +- DOMAIN-SUFFIX,nbjjd.com,AdBlock +- DOMAIN-SUFFIX,nbzq.net,AdBlock +- DOMAIN-SUFFIX,nc004x.corp.youdao.com,AdBlock +- DOMAIN-SUFFIX,nc045x.corp.youdao.com,AdBlock +- DOMAIN-SUFFIX,ncachear.com,AdBlock +- DOMAIN-SUFFIX,nch.xnghmc.com,AdBlock +- DOMAIN-SUFFIX,nchte.com,AdBlock +- DOMAIN-SUFFIX,nclog.mars.baofeng.net,AdBlock +- DOMAIN-SUFFIX,nclog.pad.baofeng.net,AdBlock +- DOMAIN-SUFFIX,ncoyqc.com,AdBlock +- DOMAIN-SUFFIX,ndtzx.com,AdBlock +- DOMAIN-SUFFIX,ndy.code.weddingeeos.com,AdBlock +- DOMAIN-SUFFIX,ne.1rtb.com,AdBlock +- DOMAIN-SUFFIX,ne9377.com,AdBlock +- DOMAIN-SUFFIX,neirong.baidu.com,AdBlock +- DOMAIN-SUFFIX,nend.net,AdBlock +- DOMAIN-SUFFIX,nest.youwatch.org,AdBlock +- DOMAIN-SUFFIX,net.rayjump.com,AdBlock +- DOMAIN-SUFFIX,netko0o.com,AdBlock +- DOMAIN-SUFFIX,netshelter.net,AdBlock +- DOMAIN-SUFFIX,netspidermm.indiatimes.com,AdBlock +- DOMAIN-SUFFIX,network.aufeminin.com,AdBlock +- DOMAIN-SUFFIX,network.business.com,AdBlock +- DOMAIN-SUFFIX,network.sofeminine.co.uk,AdBlock +- DOMAIN-SUFFIX,networkbench.com,AdBlock +- DOMAIN-SUFFIX,new.ltheanine.cn,AdBlock +- DOMAIN-SUFFIX,new.yokaunion.com,AdBlock +- DOMAIN-SUFFIX,new.zhqiu.com,AdBlock +- DOMAIN-SUFFIX,newapi.com,AdBlock +- DOMAIN-SUFFIX,newloc.map.n.shifen.com,AdBlock +- DOMAIN-SUFFIX,newrelic.com,AdBlock +- DOMAIN-SUFFIX,news.51y5.net,AdBlock +- DOMAIN-SUFFIX,news.58.com,AdBlock +- DOMAIN-SUFFIX,news.cxxtv.com,AdBlock +- DOMAIN-SUFFIX,news.mpush.qq.com,AdBlock +- DOMAIN-SUFFIX,news.push.126.net,AdBlock +- DOMAIN-SUFFIX,news.s9377.com,AdBlock +- DOMAIN-SUFFIX,news.xueyanshan.com,AdBlock +- DOMAIN-SUFFIX,news-img.51y5.net,AdBlock +- DOMAIN-SUFFIX,news-l.play.aiseet.atianqi.com,AdBlock +- DOMAIN-SUFFIX,news-l.play.cp81.ott.cibntv.net,AdBlock +- DOMAIN-SUFFIX,news-l.play.ott.video.qq.com,AdBlock +- DOMAIN-SUFFIX,news-log.51y5.net,AdBlock +- DOMAIN-SUFFIX,newspage.xilu.com,AdBlock +- DOMAIN-SUFFIX,newspush.sinajs.cn,AdBlock +- DOMAIN-SUFFIX,newswifiapi.dfshurufa.com,AdBlock +- DOMAIN-SUFFIX,newton-api.ele.me,AdBlock +- DOMAIN-SUFFIX,nex.163.com,AdBlock +- DOMAIN-SUFFIX,nexage.com,AdBlock +- DOMAIN-SUFFIX,nexstep.zdworks.com,AdBlock +- DOMAIN-SUFFIX,nextcps.com,AdBlock +- DOMAIN-SUFFIX,nextlnk9.com,AdBlock +- DOMAIN-SUFFIX,nexus.ensighten.com,AdBlock +- DOMAIN-SUFFIX,nfh.cnshef.com,AdBlock +- DOMAIN-SUFFIX,ngads.go.com,AdBlock +- DOMAIN-SUFFIX,nicelabel.cc,AdBlock +- DOMAIN-SUFFIX,ninebox.cn,AdBlock +- DOMAIN-SUFFIX,ninemsn.imrworldwide.com,AdBlock +- DOMAIN-SUFFIX,niurenw.com,AdBlock +- DOMAIN-SUFFIX,niux88.com,AdBlock +- DOMAIN-SUFFIX,niuxgame77.com,AdBlock +- DOMAIN-SUFFIX,niwd.zhybw88.com,AdBlock +- DOMAIN-SUFFIX,njdijiani.com,AdBlock +- DOMAIN-SUFFIX,njfsk.com,AdBlock +- DOMAIN-SUFFIX,njmpacc.com,AdBlock +- DOMAIN-SUFFIX,njq.net,AdBlock +- DOMAIN-SUFFIX,njs.imagicskin.com,AdBlock +- DOMAIN-SUFFIX,njs.myyage.com,AdBlock +- DOMAIN-SUFFIX,njs.reliancevalve.com,AdBlock +- DOMAIN-SUFFIX,njxczy.com,AdBlock +- DOMAIN-SUFFIX,nkeo.top,AdBlock +- DOMAIN-SUFFIX,nlog.baidu.com,AdBlock +- DOMAIN-SUFFIX,nmbtedu.com,AdBlock +- DOMAIN-SUFFIX,nmkgs.cn,AdBlock +- DOMAIN-SUFFIX,nmpcdn.com,AdBlock +- DOMAIN-SUFFIX,nmqbg.com,AdBlock +- DOMAIN-SUFFIX,nnedbx.com,AdBlock +- DOMAIN-SUFFIX,nngft.com,AdBlock +- DOMAIN-SUFFIX,noberlmall.com,AdBlock +- DOMAIN-SUFFIX,nongsalei.com,AdBlock +- DOMAIN-SUFFIX,nop.xpanama.net,AdBlock +- DOMAIN-SUFFIX,notice.game.xiaomi.com,AdBlock +- DOMAIN-SUFFIX,notice.uchome.manyou.com,AdBlock +- DOMAIN-SUFFIX,notifiter.youmi.net,AdBlock +- DOMAIN-SUFFIX,notify.oupeng.com,AdBlock +- DOMAIN-SUFFIX,novelsns.html5.qq.com,AdBlock +- DOMAIN-SUFFIX,nowskip.com,AdBlock +- DOMAIN-SUFFIX,npdaqy6x1j.me,AdBlock +- DOMAIN-SUFFIX,nr1234.com,AdBlock +- DOMAIN-SUFFIX,nryiou.cn,AdBlock +- DOMAIN-SUFFIX,nsclick.baidu.com,AdBlock +- DOMAIN-SUFFIX,nsclickvideo.baidu.com,AdBlock +- DOMAIN-SUFFIX,nsnmiaomu.cn,AdBlock +- DOMAIN-SUFFIX,nsy.hnzyfs.com,AdBlock +- DOMAIN-SUFFIX,nt.phpwind.com,AdBlock +- DOMAIN-SUFFIX,ntalker.com,AdBlock +- DOMAIN-SUFFIX,nterbx.com,AdBlock +- DOMAIN-SUFFIX,ntfsformac.cc,AdBlock +- DOMAIN-SUFFIX,ntfsformac.cn,AdBlock +- DOMAIN-SUFFIX,nthyn.com,AdBlock +- DOMAIN-SUFFIX,ntx.quanliyouxi.cn,AdBlock +- DOMAIN-SUFFIX,nv.souid.com,AdBlock +- DOMAIN-SUFFIX,nvrentao8.com,AdBlock +- DOMAIN-SUFFIX,nvshenfan.com,AdBlock +- DOMAIN-SUFFIX,nwejs.alcryp.com,AdBlock +- DOMAIN-SUFFIX,nwejs.myzcoffice.com,AdBlock +- DOMAIN-SUFFIX,nwwap.com,AdBlock +- DOMAIN-SUFFIX,nxrhs.com,AdBlock +- DOMAIN-SUFFIX,nxrxt.con,AdBlock +- DOMAIN-SUFFIX,ny7f6goy.bid,AdBlock +- DOMAIN-SUFFIX,nylalobghyhirgh.com,AdBlock +- DOMAIN-SUFFIX,nysita.com,AdBlock +- DOMAIN-SUFFIX,nzezn.com,AdBlock +- DOMAIN-SUFFIX,o.08jm.cn,AdBlock +- DOMAIN-SUFFIX,o.if.qidian.com,AdBlock +- DOMAIN-SUFFIX,o.minisplat.cn,AdBlock +- DOMAIN-SUFFIX,o091i.com,AdBlock +- DOMAIN-SUFFIX,o2o.api.xiaomi.com,AdBlock +- DOMAIN-SUFFIX,o2omobi.com,AdBlock +- DOMAIN-SUFFIX,o7xs6runw.bkt.clouddn.com,AdBlock +- DOMAIN-SUFFIX,oa129.com,AdBlock +- DOMAIN-SUFFIX,oadz.com,AdBlock +- DOMAIN-SUFFIX,oa-panther.data.aliyun.com,AdBlock +- DOMAIN-SUFFIX,oas.autotrader.co.uk,AdBlock +- DOMAIN-SUFFIX,oas.luxweb.com,AdBlock +- DOMAIN-SUFFIX,oas.skyscanner.net,AdBlock +- DOMAIN-SUFFIX,oasc07.citywire.co.uk,AdBlock +- DOMAIN-SUFFIX,oascentral.abclocal.go.com,AdBlock +- DOMAIN-SUFFIX,oascentral.chron.com,AdBlock +- DOMAIN-SUFFIX,oascentral.hosted.ap.org,AdBlock +- DOMAIN-SUFFIX,oascentral.lycos.com,AdBlock +- DOMAIN-SUFFIX,oascentral.newsmax.com,AdBlock +- DOMAIN-SUFFIX,oascentral.sina.com,AdBlock +- DOMAIN-SUFFIX,oascentral.sina.com.hk,AdBlock +- DOMAIN-SUFFIX,oask.xulizui6.com,AdBlock +- DOMAIN-SUFFIX,obeyter.com,AdBlock +- DOMAIN-SUFFIX,ocbv0.baiyangzs.com,AdBlock +- DOMAIN-SUFFIX,ocsp.godaddy.com,AdBlock +- DOMAIN-SUFFIX,odc.starwave.com,AdBlock +- DOMAIN-SUFFIX,odin.goo.mx,AdBlock +- DOMAIN-SUFFIX,officeme.cn,AdBlock +- DOMAIN-SUFFIX,offline-adv.oray.com,AdBlock +- DOMAIN-SUFFIX,oikxlcv.wang,AdBlock +- DOMAIN-SUFFIX,oimagea2.ydstatic.com,AdBlock +- DOMAIN-SUFFIX,ojngisbfwwyp.com,AdBlock +- DOMAIN-SUFFIX,ok.432kkk.com,AdBlock +- DOMAIN-SUFFIX,ok365.com,AdBlock +- DOMAIN-SUFFIX,okkkk.com,AdBlock +- DOMAIN-SUFFIX,okm918.com,AdBlock +- DOMAIN-SUFFIX,okokw.com,AdBlock +- DOMAIN-SUFFIX,olcdn.com,AdBlock +- DOMAIN-SUFFIX,olpv.onlylady.com,AdBlock +- DOMAIN-SUFFIX,olpvimg.onlylady.com,AdBlock +- DOMAIN-SUFFIX,olstats.onlylady.com,AdBlock +- DOMAIN-SUFFIX,omega7o.com,AdBlock +- DOMAIN-SUFFIX,omg.inte.sogoucdn.com,AdBlock +- DOMAIN-SUFFIX,omnikool.discovery.com,AdBlock +- DOMAIN-SUFFIX,omtrdc.net,AdBlock +- DOMAIN-SUFFIX,on.maxspeedcdn.com,AdBlock +- DOMAIN-SUFFIX,onclickads.net,AdBlock +- DOMAIN-SUFFIX,onclicktop.com,AdBlock +- DOMAIN-SUFFIX,onclkds.com,AdBlock +- DOMAIN-SUFFIX,one.520319.cn,AdBlock +- DOMAIN-SUFFIX,onepush.query.yahoo.com,AdBlock +- DOMAIN-SUFFIX,onesoft.im,AdBlock +- DOMAIN-SUFFIX,onetad.com,AdBlock +- DOMAIN-SUFFIX,onetag-sys.com,AdBlock +- DOMAIN-SUFFIX,onewhee.com,AdBlock +- DOMAIN-SUFFIX,onlifjj.net,AdBlock +- DOMAIN-SUFFIX,onlinetips.baofeng5.baofeng.net,AdBlock +- DOMAIN-SUFFIX,oomyv.com,AdBlock +- DOMAIN-SUFFIX,ooniu.com,AdBlock +- DOMAIN-SUFFIX,ooss.oss.aliyuncs.com,AdBlock +- DOMAIN-SUFFIX,op00w.baiyangzs.com,AdBlock +- DOMAIN-SUFFIX,open.play.cn,AdBlock +- DOMAIN-SUFFIX,openapi-news.meizu.com,AdBlock +- DOMAIN-SUFFIX,openrcv.baidu.com,AdBlock +- DOMAIN-SUFFIX,openstat.net,AdBlock +- DOMAIN-SUFFIX,openstorage.ad.cmvideo.cn,AdBlock +- DOMAIN-SUFFIX,opgirl-tmp.adbxb.cn,AdBlock +- DOMAIN-SUFFIX,oppo.yidianzixun.com,AdBlock +- DOMAIN-SUFFIX,optaim.com,AdBlock +- DOMAIN-SUFFIX,optimix.asia,AdBlock +- DOMAIN-SUFFIX,optimix.cn,AdBlock +- DOMAIN-SUFFIX,optimized-by.rubiconproject.com,AdBlock +- DOMAIN-SUFFIX,optimizelyapis.com,AdBlock +- DOMAIN-SUFFIX,oq68.com,AdBlock +- DOMAIN-SUFFIX,orchidscape.net,AdBlock +- DOMAIN-SUFFIX,oredero.com,AdBlock +- DOMAIN-SUFFIX,orz.hupu.com,AdBlock +- DOMAIN-SUFFIX,osc.uranus.sogou.com,AdBlock +- DOMAIN-SUFFIX,osfota.cdn.aliyun.com,AdBlock +- DOMAIN-SUFFIX,oss-asq-static.11222.cn,AdBlock +- DOMAIN-SUFFIX,otf.msn.com,AdBlock +- DOMAIN-SUFFIX,oth.eve.mdt.qq.com,AdBlock +- DOMAIN-SUFFIX,oth.str.mdt.qq.com,AdBlock +- DOMAIN-SUFFIX,oth.update.mdt.qq.com,AdBlock +- DOMAIN-SUFFIX,otheve.play.aiseet.atianqi.com,AdBlock +- DOMAIN-SUFFIX,othstr.play.aiseet.atianqi.com,AdBlock +- DOMAIN-SUFFIX,ou188.com,AdBlock +- DOMAIN-SUFFIX,output.nend.net,AdBlock +- DOMAIN-SUFFIX,overture.com,AdBlock +- DOMAIN-SUFFIX,overturechina.com,AdBlock +- DOMAIN-SUFFIX,ow.biqugego.com,AdBlock +- DOMAIN-SUFFIX,ow.s1.shuhuangge.org,AdBlock +- DOMAIN-SUFFIX,ow.s2.shuhuangge.org,AdBlock +- DOMAIN-SUFFIX,owin.biqugego.com,AdBlock +- DOMAIN-SUFFIX,ox.furaffinity.net,AdBlock +- DOMAIN-SUFFIX,oyzsverimywg.com,AdBlock +- DOMAIN-SUFFIX,p.7060.la,AdBlock +- DOMAIN-SUFFIX,p.99mssj.com,AdBlock +- DOMAIN-SUFFIX,p.abcache.com,AdBlock +- DOMAIN-SUFFIX,p.bdjiazanmiaomu.com,AdBlock +- DOMAIN-SUFFIX,p.bjdianyue.com,AdBlock +- DOMAIN-SUFFIX,p.bnuni.com,AdBlock +- DOMAIN-SUFFIX,p.clkservice.youdao.com,AdBlock +- DOMAIN-SUFFIX,p.ecwan77.net,AdBlock +- DOMAIN-SUFFIX,p.inte.sogou.com,AdBlock +- DOMAIN-SUFFIX,p.kf3msfm.com,AdBlock +- DOMAIN-SUFFIX,p.kjwx8.com,AdBlock +- DOMAIN-SUFFIX,p.kugou.com,AdBlock +- DOMAIN-SUFFIX,p.m5bn.com,AdBlock +- DOMAIN-SUFFIX,p.mendoc.cn,AdBlock +- DOMAIN-SUFFIX,p.niudashu.com,AdBlock +- DOMAIN-SUFFIX,p.qiailm.com,AdBlock +- DOMAIN-SUFFIX,p.qijijs.top,AdBlock +- DOMAIN-SUFFIX,p.raidmedia.com.cn,AdBlock +- DOMAIN-SUFFIX,p.rfihub.com,AdBlock +- DOMAIN-SUFFIX,p.saozhu1.top,AdBlock +- DOMAIN-SUFFIX,p.sdu8cvc.com,AdBlock +- DOMAIN-SUFFIX,p.shagent.com,AdBlock +- DOMAIN-SUFFIX,p.skimresources.com,AdBlock +- DOMAIN-SUFFIX,p.szonline.net,AdBlock +- DOMAIN-SUFFIX,p.tamenshuo.com,AdBlock +- DOMAIN-SUFFIX,p.tencentmind.com,AdBlock +- DOMAIN-SUFFIX,p.twitter.com,AdBlock +- DOMAIN-SUFFIX,p.vq6nsu.cn,AdBlock +- DOMAIN-SUFFIX,p.yizuya.com,AdBlock +- DOMAIN-SUFFIX,p.ynjczy.net,AdBlock +- DOMAIN-SUFFIX,p0y.cn,AdBlock +- DOMAIN-SUFFIX,p1.18zhongyao.com,AdBlock +- DOMAIN-SUFFIX,p1.qinsx.cn,AdBlock +- DOMAIN-SUFFIX,p2.hyz86.com,AdBlock +- DOMAIN-SUFFIX,p2.qinsx.cn,AdBlock +- DOMAIN-SUFFIX,p2.ykauto.cn,AdBlock +- DOMAIN-SUFFIX,p215223.clksite.com,AdBlock +- DOMAIN-SUFFIX,p215223.inclk.com,AdBlock +- DOMAIN-SUFFIX,p215223.mycdn2.co,AdBlock +- DOMAIN-SUFFIX,p2pmid.baofeng.com,AdBlock +- DOMAIN-SUFFIX,p3p.mmstat.com,AdBlock +- DOMAIN-SUFFIX,p3p.sogou.com,AdBlock +- DOMAIN-SUFFIX,p3p.yahoo.com,AdBlock +- DOMAIN-SUFFIX,p3tt.com,AdBlock +- DOMAIN-SUFFIX,p4p.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,p4psearch.china.alibaba.com,AdBlock +- DOMAIN-SUFFIX,p555.cc,AdBlock +- DOMAIN-SUFFIX,p8u.hinet.net,AdBlock +- DOMAIN-SUFFIX,package01.com,AdBlock +- DOMAIN-SUFFIX,pad.zhywyl.cn,AdBlock +- DOMAIN-SUFFIX,padsdel2.cdnads.com,AdBlock +- DOMAIN-SUFFIX,page.acm.dzwww.com,AdBlock +- DOMAIN-SUFFIX,page.xywy.com,AdBlock +- DOMAIN-SUFFIX,pagead.google.com,AdBlock +- DOMAIN-SUFFIX,pagead.l.google.com,AdBlock +- DOMAIN-SUFFIX,pagead2.googlesyndication.com,AdBlock +- DOMAIN-SUFFIX,pagead-tpc.l.google.com,AdBlock +- DOMAIN-SUFFIX,pagechoice.com,AdBlock +- DOMAIN-SUFFIX,pagechoice.net,AdBlock +- DOMAIN-SUFFIX,pagechoicemotu.gentags.net,AdBlock +- DOMAIN-SUFFIX,pages2.marketo.com,AdBlock +- DOMAIN-SUFFIX,paimgcdn.baidu.com,AdBlock +- DOMAIN-SUFFIX,painiuimg.com,AdBlock +- DOMAIN-SUFFIX,palmnews.sina.cn,AdBlock +- DOMAIN-SUFFIX,panda.kdnet.net,AdBlock +- DOMAIN-SUFFIX,pangu.cc,AdBlock +- DOMAIN-SUFFIX,panoramio.com,AdBlock +- DOMAIN-SUFFIX,papajia55.com,AdBlock +- DOMAIN-SUFFIX,parking.zunmi.cn,AdBlock +- DOMAIN-SUFFIX,parser.houyi.baofeng.net,AdBlock +- DOMAIN-SUFFIX,partner.bargaindomains.com,AdBlock +- DOMAIN-SUFFIX,partner.catchy.com,AdBlock +- DOMAIN-SUFFIX,partner.premiumdomains.com,AdBlock +- DOMAIN-SUFFIX,partner.toutiao.com,AdBlock +- DOMAIN-SUFFIX,partners.fshealth.com,AdBlock +- DOMAIN-SUFFIX,partners.keezmovies.com,AdBlock +- DOMAIN-SUFFIX,partners.optiontide.com,AdBlock +- DOMAIN-SUFFIX,partners.pornerbros.com,AdBlock +- DOMAIN-SUFFIX,partners.rochen.com,AdBlock +- DOMAIN-SUFFIX,partners.sportingbet.com.au,AdBlock +- DOMAIN-SUFFIX,partners.vouchedfor.co.uk,AdBlock +- DOMAIN-SUFFIX,partners.xpertmarket.com,AdBlock +- DOMAIN-SUFFIX,party-nngvitbizn.now.sh,AdBlock +- DOMAIN-SUFFIX,pasco.cc,AdBlock +- DOMAIN-SUFFIX,pass1.soogif.com,AdBlock +- DOMAIN-SUFFIX,pass2.soogif.com,AdBlock +- DOMAIN-SUFFIX,passwordrecovery.cn,AdBlock +- DOMAIN-SUFFIX,passwz.com,AdBlock +- DOMAIN-SUFFIX,pat.farvd.com,AdBlock +- DOMAIN-SUFFIX,patriot.cs.pp.cn,AdBlock +- DOMAIN-SUFFIX,pay.holaq.com,AdBlock +- DOMAIN-SUFFIX,pay.mobile.sina.cn,AdBlock +- DOMAIN-SUFFIX,pay838.com,AdBlock +- DOMAIN-SUFFIX,pb.funshion.net.cn,AdBlock +- DOMAIN-SUFFIX,pb.s3wfg.com,AdBlock +- DOMAIN-SUFFIX,pb.sogou.com,AdBlock +- DOMAIN-SUFFIX,pb.sys.pp8.com,AdBlock +- DOMAIN-SUFFIX,pb.wang502.com,AdBlock +- DOMAIN-SUFFIX,pb3.pstatp.com,AdBlock +- DOMAIN-SUFFIX,pbd.sogou.com,AdBlock +- DOMAIN-SUFFIX,pbs.lenovomm.com,AdBlock +- DOMAIN-SUFFIX,pc.107788.com,AdBlock +- DOMAIN-SUFFIX,pc.5151gj.com,AdBlock +- DOMAIN-SUFFIX,pc.ctsywy.com,AdBlock +- DOMAIN-SUFFIX,pc.quansj.cn,AdBlock +- DOMAIN-SUFFIX,pc.videoclick.baidu.com,AdBlock +- DOMAIN-SUFFIX,pcauto.irs01.com,AdBlock +- DOMAIN-SUFFIX,pcbrowser.dd.qq.com,AdBlock +- DOMAIN-SUFFIX,pcd.autohome.com.cn,AdBlock +- DOMAIN-SUFFIX,pcfg.wps.cn,AdBlock +- DOMAIN-SUFFIX,pclog.dftoutiao.com,AdBlock +- DOMAIN-SUFFIX,pclog.suishenyun.net,AdBlock +- DOMAIN-SUFFIX,pcmx.autohome.com.cn,AdBlock +- DOMAIN-SUFFIX,pcmzn.com,AdBlock +- DOMAIN-SUFFIX,pcsoftwords.dftoutiao.com,AdBlock +- DOMAIN-SUFFIX,pcxzo.pluto.sogou.com,AdBlock +- DOMAIN-SUFFIX,pd7-imp.revsci.net,AdBlock +- DOMAIN-SUFFIX,pdfexpert.cc,AdBlock +- DOMAIN-SUFFIX,pdl.gionee.com,AdBlock +- DOMAIN-SUFFIX,pdsjycm.com,AdBlock +- DOMAIN-SUFFIX,pear.dleke.com,AdBlock +- DOMAIN-SUFFIX,pedailyu.com,AdBlock +- DOMAIN-SUFFIX,pee.cn,AdBlock +- DOMAIN-SUFFIX,pegasus.cmcm.com,AdBlock +- DOMAIN-SUFFIX,pei-ads.playboy.com,AdBlock +- DOMAIN-SUFFIX,pf.h5game.cn,AdBlock +- DOMAIN-SUFFIX,pf.pchome.net,AdBlock +- DOMAIN-SUFFIX,pf-2.pchome.net,AdBlock +- DOMAIN-SUFFIX,pfp.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,pfpip.sina.com,AdBlock +- DOMAIN-SUFFIX,pgdt.gtimg.cn,AdBlock +- DOMAIN-SUFFIX,pgdt.ugdtimg.com,AdBlock +- DOMAIN-SUFFIX,photo.dhford.cn,AdBlock +- DOMAIN-SUFFIX,photo.lyghjzs.cn,AdBlock +- DOMAIN-SUFFIX,photo.qianerbai.cn,AdBlock +- DOMAIN-SUFFIX,photo.shyexiang.cn,AdBlock +- DOMAIN-SUFFIX,photo.welldex.cn,AdBlock +- DOMAIN-SUFFIX,photo.xunhuaji.cn,AdBlock +- DOMAIN-SUFFIX,photo.zhanhevr.cn,AdBlock +- DOMAIN-SUFFIX,phpad.cqnews.net,AdBlock +- DOMAIN-SUFFIX,pic.0597kk.com,AdBlock +- DOMAIN-SUFFIX,pic.14bobo.com,AdBlock +- DOMAIN-SUFFIX,pic.2u.com.cn,AdBlock +- DOMAIN-SUFFIX,pic.adver.com.tw,AdBlock +- DOMAIN-SUFFIX,pic.aihaogou.com.cn,AdBlock +- DOMAIN-SUFFIX,pic.by175.com,AdBlock +- DOMAIN-SUFFIX,pic.casee.cn,AdBlock +- DOMAIN-SUFFIX,pic.cnmo-img.com.cn,AdBlock +- DOMAIN-SUFFIX,pic.dotmore.com.tw,AdBlock +- DOMAIN-SUFFIX,pic.ea3w.com,AdBlock +- DOMAIN-SUFFIX,pic.eduancm.com,AdBlock +- DOMAIN-SUFFIX,pic.fengniao.com,AdBlock +- DOMAIN-SUFFIX,pic.haowj.com.cn,AdBlock +- DOMAIN-SUFFIX,pic.jdbbs.com,AdBlock +- DOMAIN-SUFFIX,pic.jd-bbs.com,AdBlock +- DOMAIN-SUFFIX,pic.jdunion.com,AdBlock +- DOMAIN-SUFFIX,pic.moad.cn,AdBlock +- DOMAIN-SUFFIX,pic.neiyicun.net,AdBlock +- DOMAIN-SUFFIX,pic.new400.cn,AdBlock +- DOMAIN-SUFFIX,pic.pic-img.com,AdBlock +- DOMAIN-SUFFIX,pic.punchbox.org,AdBlock +- DOMAIN-SUFFIX,pic.pxstda.com,AdBlock +- DOMAIN-SUFFIX,pic.usingde.com,AdBlock +- DOMAIN-SUFFIX,pic.zol-img.com.cn,AdBlock +- DOMAIN-SUFFIX,pic1.59wd.com,AdBlock +- DOMAIN-SUFFIX,pic1.onetad.com,AdBlock +- DOMAIN-SUFFIX,pic183025.images9999.com,AdBlock +- DOMAIN-SUFFIX,pic2.onetad.com,AdBlock +- DOMAIN-SUFFIX,pic2016.5442.com,AdBlock +- DOMAIN-SUFFIX,pic2016.ytqmx.com,AdBlock +- DOMAIN-SUFFIX,pic3.onetad.com,AdBlock +- DOMAIN-SUFFIX,pic494036.images9999.com,AdBlock +- DOMAIN-SUFFIX,pic8.onetad.com,AdBlock +- DOMAIN-SUFFIX,pic837013.images9999.com,AdBlock +- DOMAIN-SUFFIX,picsinfog.com,AdBlock +- DOMAIN-SUFFIX,picture.duokan.com,AdBlock +- DOMAIN-SUFFIX,picturesquefilms.net,AdBlock +- DOMAIN-SUFFIX,pikacn.com,AdBlock +- DOMAIN-SUFFIX,pimg1.126.net,AdBlock +- DOMAIN-SUFFIX,ping.acc.sogou.com,AdBlock +- DOMAIN-SUFFIX,ping.chartbeat.net,AdBlock +- DOMAIN-SUFFIX,ping.pinyin.sogou.com,AdBlock +- DOMAIN-SUFFIX,ping.weiduofan.com,AdBlock +- DOMAIN-SUFFIX,pingbi.diudou.com,AdBlock +- DOMAIN-SUFFIX,pingdom.net,AdBlock +- DOMAIN-SUFFIX,pingma.qq.com,AdBlock +- DOMAIN-SUFFIX,pingshetrip.com,AdBlock +- DOMAIN-SUFFIX,pintour.com,AdBlock +- DOMAIN-SUFFIX,pinzhitmall.com,AdBlock +- DOMAIN-SUFFIX,pix.impdesk.com,AdBlock +- DOMAIN-SUFFIX,pix.tagcdn.com,AdBlock +- DOMAIN-SUFFIX,pix04.revsci.net,AdBlock +- DOMAIN-SUFFIX,pixel.adsafeprotected.com,AdBlock +- DOMAIN-SUFFIX,pixel.mathtag.com,AdBlock +- DOMAIN-SUFFIX,pixel.quantserve.com,AdBlock +- DOMAIN-SUFFIX,pixel.rubiconproject.com,AdBlock +- DOMAIN-SUFFIX,pixel.tapad.com,AdBlock +- DOMAIN-SUFFIX,pixel.vihub.ru,AdBlock +- DOMAIN-SUFFIX,pixel.wp.com,AdBlock +- DOMAIN-SUFFIX,pixel-hk.pixelinteractivemedia.com,AdBlock +- DOMAIN-SUFFIX,pixels.asia,AdBlock +- DOMAIN-SUFFIX,pixfuture.net,AdBlock +- DOMAIN-SUFFIX,pj3456.com,AdBlock +- DOMAIN-SUFFIX,pj39330.com,AdBlock +- DOMAIN-SUFFIX,pj50.com,AdBlock +- DOMAIN-SUFFIX,pj5189.com,AdBlock +- DOMAIN-SUFFIX,pj550077.com,AdBlock +- DOMAIN-SUFFIX,pjbjzf.com,AdBlock +- DOMAIN-SUFFIX,pjogndc8ixoidna.360doc.cn,AdBlock +- DOMAIN-SUFFIX,pjtymy.cn,AdBlock +- DOMAIN-SUFFIX,pjyu.golden1.sogou.com,AdBlock +- DOMAIN-SUFFIX,pk840.com,AdBlock +- DOMAIN-SUFFIX,p-l.play.aiseet.atianqi.com,AdBlock +- DOMAIN-SUFFIX,pl108258.puserving.com,AdBlock +- DOMAIN-SUFFIX,pl14369502.puserving.com,AdBlock +- DOMAIN-SUFFIX,platform.wondershare.com,AdBlock +- DOMAIN-SUFFIX,playad.xjmg.com,AdBlock +- DOMAIN-SUFFIX,player.1800coupon.com,AdBlock +- DOMAIN-SUFFIX,player.1stcreditrepairs.com,AdBlock +- DOMAIN-SUFFIX,player.800directories.com,AdBlock +- DOMAIN-SUFFIX,player.accoona.com,AdBlock +- DOMAIN-SUFFIX,player.alloutwedding.com,AdBlock +- DOMAIN-SUFFIX,player.insuranceandhealth.com,AdBlock +- DOMAIN-SUFFIX,playinfo.gomlab.com,AdBlock +- DOMAIN-SUFFIX,plista.com,AdBlock +- DOMAIN-SUFFIX,plmkolp.m.58xs.tw,AdBlock +- DOMAIN-SUFFIX,plt.data.pplive.com,AdBlock +- DOMAIN-SUFFIX,plwan.com,AdBlock +- DOMAIN-SUFFIX,plz.jandan.net,AdBlock +- DOMAIN-SUFFIX,pm.sdaiv.com,AdBlock +- DOMAIN-SUFFIX,pmir.3g.qq.com,AdBlock +- DOMAIN-SUFFIX,pmm.people.com.cn,AdBlock +- DOMAIN-SUFFIX,pmptrack-autohome.gentags.net,AdBlock +- DOMAIN-SUFFIX,pmptrack-letv.gentags.net,AdBlock +- DOMAIN-SUFFIX,pmptrack-yidianzixunxm.gentags.net,AdBlock +- DOMAIN-SUFFIX,pmptrack-youku.gentags.net,AdBlock +- DOMAIN-SUFFIX,png.lu.sogoucdn.com,AdBlock +- DOMAIN-SUFFIX,pnhfc.com,AdBlock +- DOMAIN-SUFFIX,pofang.com,AdBlock +- DOMAIN-SUFFIX,polkoa.com,AdBlock +- DOMAIN-SUFFIX,pomhz.com,AdBlock +- DOMAIN-SUFFIX,pop.91mangrandi.com,AdBlock +- DOMAIN-SUFFIX,pop.code.mytanwan.com,AdBlock +- DOMAIN-SUFFIX,pop.code.poyang.cn,AdBlock +- DOMAIN-SUFFIX,pop.sjk.ijinshan.com,AdBlock +- DOMAIN-SUFFIX,popads.net,AdBlock +- DOMAIN-SUFFIX,popme.163.com,AdBlock +- DOMAIN-SUFFIX,poppyta.com,AdBlock +- DOMAIN-SUFFIX,popup.jointreport-switch.com,AdBlock +- DOMAIN-SUFFIX,popup.msn.com,AdBlock +- DOMAIN-SUFFIX,popupad.cn,AdBlock +- DOMAIN-SUFFIX,pos.baidu.com,AdBlock +- DOMAIN-SUFFIX,post.ra.icast.cn,AdBlock +- DOMAIN-SUFFIX,poster.weather.com.cn,AdBlock +- DOMAIN-SUFFIX,powergg.top,AdBlock +- DOMAIN-SUFFIX,poyang.com,AdBlock +- DOMAIN-SUFFIX,pp.sxjkc.cn,AdBlock +- DOMAIN-SUFFIX,pp2.dhzw.org,AdBlock +- DOMAIN-SUFFIX,pp9899.com,AdBlock +- DOMAIN-SUFFIX,ppjia55.com,AdBlock +- DOMAIN-SUFFIX,ppoi.org,AdBlock +- DOMAIN-SUFFIX,ppurifier.game.xiaomi.com,AdBlock +- DOMAIN-SUFFIX,ppx.hgo7r.cn,AdBlock +- DOMAIN-SUFFIX,pr.atwola.com,AdBlock +- DOMAIN-SUFFIX,pr.da.netease.com,AdBlock +- DOMAIN-SUFFIX,pr.ybp.yahoo.com,AdBlock +- DOMAIN-SUFFIX,pr00001.com,AdBlock +- DOMAIN-SUFFIX,practivate.adobe.com,AdBlock +- DOMAIN-SUFFIX,pr-bh.ybp.yahoo.com,AdBlock +- DOMAIN-SUFFIX,prc.rjje4.com,AdBlock +- DOMAIN-SUFFIX,prcappzone.intel.com,AdBlock +- DOMAIN-SUFFIX,pre.api.tw06.xlmc.sandai.net,AdBlock +- DOMAIN-SUFFIX,pre.ra.icast.cn,AdBlock +- DOMAIN-SUFFIX,prerollads.ign.com,AdBlock +- DOMAIN-SUFFIX,priceinfo.comuv.com,AdBlock +- DOMAIN-SUFFIX,pro.cn,AdBlock +- DOMAIN-SUFFIX,pro.heiguang.com,AdBlock +- DOMAIN-SUFFIX,pro.iweihai.cn,AdBlock +- DOMAIN-SUFFIX,probes.cedexis.com,AdBlock +- DOMAIN-SUFFIX,profile.ssp.rambler.ru,AdBlock +- DOMAIN-SUFFIX,projectwonderful.com,AdBlock +- DOMAIN-SUFFIX,prom.gome.com.cn,AdBlock +- DOMAIN-SUFFIX,promo.fileforum.com,AdBlock +- DOMAIN-SUFFIX,promos.fling.com,AdBlock +- DOMAIN-SUFFIX,promote.biz.weibo.cn,AdBlock +- DOMAIN-SUFFIX,promote.caixin.com,AdBlock +- DOMAIN-SUFFIX,promote.pair.com,AdBlock +- DOMAIN-SUFFIX,promotion.aliyun.com,AdBlock +- DOMAIN-SUFFIX,promotion.gomlab.com,AdBlock +- DOMAIN-SUFFIX,promotions.iasbet.com,AdBlock +- DOMAIN-SUFFIX,propellerads.com,AdBlock +- DOMAIN-SUFFIX,prophet.heise.de,AdBlock +- DOMAIN-SUFFIX,proton.flurry.com,AdBlock +- DOMAIN-SUFFIX,proxy.sec.miui.com,AdBlock +- DOMAIN-SUFFIX,prw.lenovomm.com,AdBlock +- DOMAIN-SUFFIX,ps.3fenge.com,AdBlock +- DOMAIN-SUFFIX,psb.lenovomm.com,AdBlock +- DOMAIN-SUFFIX,psfq.gou.sogou.com,AdBlock +- DOMAIN-SUFFIX,psma02.com,AdBlock +- DOMAIN-SUFFIX,ptdrw.com,AdBlock +- DOMAIN-SUFFIX,ptkhy.com,AdBlock +- DOMAIN-SUFFIX,ptw.la,AdBlock +- DOMAIN-SUFFIX,pub.betclick.com,AdBlock +- DOMAIN-SUFFIX,pub.chinadailyasia.com,AdBlock +- DOMAIN-SUFFIX,pub.funshion.com,AdBlock +- DOMAIN-SUFFIX,pub.mop.com,AdBlock +- DOMAIN-SUFFIX,pub1.cope.es,AdBlock +- DOMAIN-SUFFIX,pubbirdf.com,AdBlock +- DOMAIN-SUFFIX,public.app.autohome.com.cn,AdBlock +- DOMAIN-SUFFIX,public6.com,AdBlock +- DOMAIN-SUFFIX,publicidad.net,AdBlock +- DOMAIN-SUFFIX,publicidad.tv,AdBlock +- DOMAIN-SUFFIX,publish.ad.youth.cn,AdBlock +- DOMAIN-SUFFIX,pubmatic.com,AdBlock +- DOMAIN-SUFFIX,pubnative.net,AdBlock +- DOMAIN-SUFFIX,pubnub.com,AdBlock +- DOMAIN-SUFFIX,pubs.hiddennetwork.com,AdBlock +- DOMAIN-SUFFIX,puds.test.uae.uc.cn,AdBlock +- DOMAIN-SUFFIX,puds.ucweb.com,AdBlock +- DOMAIN-SUFFIX,pull.push.sogou.com,AdBlock +- DOMAIN-SUFFIX,punchbox.org,AdBlock +- DOMAIN-SUFFIX,punuomisi.cn,AdBlock +- DOMAIN-SUFFIX,pups.bdimg.com,AdBlock +- DOMAIN-SUFFIX,pupu.xnhh120.com,AdBlock +- DOMAIN-SUFFIX,push.126.net,AdBlock +- DOMAIN-SUFFIX,push.5z5zw.com,AdBlock +- DOMAIN-SUFFIX,push.air-matters.com,AdBlock +- DOMAIN-SUFFIX,push.app.autohome.com.cn,AdBlock +- DOMAIN-SUFFIX,push.com2us.net,AdBlock +- DOMAIN-SUFFIX,push.feng.com,AdBlock +- DOMAIN-SUFFIX,push.mobile.kugou.com,AdBlock +- DOMAIN-SUFFIX,push.res.meizu.com,AdBlock +- DOMAIN-SUFFIX,push.wandoujia.com,AdBlock +- DOMAIN-SUFFIX,push.wapx.cn,AdBlock +- DOMAIN-SUFFIX,push.yuedu.163.com,AdBlock +- DOMAIN-SUFFIX,push.zdworks.com,AdBlock +- DOMAIN-SUFFIX,push.zhangyue.com,AdBlock +- DOMAIN-SUFFIX,push.zhanzhang.baidu.com,AdBlock +- DOMAIN-SUFFIX,push-android.myzaker.com,AdBlock +- DOMAIN-SUFFIX,pushapi.lenovomm.com,AdBlock +- DOMAIN-SUFFIX,push-dc.51y5.net,AdBlock +- DOMAIN-SUFFIX,pv.alert.autohome.com.cn,AdBlock +- DOMAIN-SUFFIX,pv.anzhi.com,AdBlock +- DOMAIN-SUFFIX,pv.cheshi.com,AdBlock +- DOMAIN-SUFFIX,pv.enet.com.cn,AdBlock +- DOMAIN-SUFFIX,pv.focus.cn,AdBlock +- DOMAIN-SUFFIX,pv.ra.icast.cn,AdBlock +- DOMAIN-SUFFIX,pv.sogou.com,AdBlock +- DOMAIN-SUFFIX,pv.sohu.com,AdBlock +- DOMAIN-SUFFIX,pv.xcar.com.cn,AdBlock +- DOMAIN-SUFFIX,pv.zdnet.com.cn,AdBlock +- DOMAIN-SUFFIX,pv.zol.com.cn,AdBlock +- DOMAIN-SUFFIX,pvc.zol.com.cn,AdBlock +- DOMAIN-SUFFIX,pvdata.ku6.com,AdBlock +- DOMAIN-SUFFIX,pvlog.hd.baofeng.com,AdBlock +- DOMAIN-SUFFIX,pvlog.moviebox.baofeng.net,AdBlock +- DOMAIN-SUFFIX,pvm.zol.com.cn,AdBlock +- DOMAIN-SUFFIX,pvmsite.zol.com.cn,AdBlock +- DOMAIN-SUFFIX,pvsite.zol.com.cn,AdBlock +- DOMAIN-SUFFIX,pvstat.html5.qq.com,AdBlock +- DOMAIN-SUFFIX,pvtest.zol.com.cn,AdBlock +- DOMAIN-SUFFIX,pvx.autohome.com.cn,AdBlock +- DOMAIN-SUFFIX,pwj.biqugezw.com,AdBlock +- DOMAIN-SUFFIX,px.adhigh.net,AdBlock +- DOMAIN-SUFFIX,px.media-serving.com,AdBlock +- DOMAIN-SUFFIX,px.moatads.com,AdBlock +- DOMAIN-SUFFIX,px.owneriq.net,AdBlock +- DOMAIN-SUFFIX,px.powerlinks.com,AdBlock +- DOMAIN-SUFFIX,px.steelhousemedia.com,AdBlock +- DOMAIN-SUFFIX,pxene.com,AdBlock +- DOMAIN-SUFFIX,pxl.connexity.net,AdBlock +- DOMAIN-SUFFIX,py.qlogo.cn,AdBlock +- DOMAIN-SUFFIX,py.wikigifth.com,AdBlock +- DOMAIN-SUFFIX,py2.qlogo.cn,AdBlock +- DOMAIN-SUFFIX,pyerc.com,AdBlock +- DOMAIN-SUFFIX,pyzkk.com,AdBlock +- DOMAIN-SUFFIX,q.ox11.com,AdBlock +- DOMAIN-SUFFIX,q.s.cr-nielsen.com,AdBlock +- DOMAIN-SUFFIX,q1scv.vov0.com,AdBlock +- DOMAIN-SUFFIX,q6rwa.eschangchi.com,AdBlock +- DOMAIN-SUFFIX,qbyy010.com,AdBlock +- DOMAIN-SUFFIX,qchannel01.cn,AdBlock +- DOMAIN-SUFFIX,qchannel02.cn,AdBlock +- DOMAIN-SUFFIX,qchannel03.cn,AdBlock +- DOMAIN-SUFFIX,qchannel04.cn,AdBlock +- DOMAIN-SUFFIX,qcjslm.com,AdBlock +- DOMAIN-SUFFIX,qcl777.com,AdBlock +- DOMAIN-SUFFIX,qd.dhzw.org,AdBlock +- DOMAIN-SUFFIX,qd.js.sanjiangge.com,AdBlock +- DOMAIN-SUFFIX,qd.moutaihotel.cn,AdBlock +- DOMAIN-SUFFIX,qd.wanjuanba.com,AdBlock +- DOMAIN-SUFFIX,qd.x4399.com,AdBlock +- DOMAIN-SUFFIX,qdchunyu.com,AdBlock +- DOMAIN-SUFFIX,qeoa.hawbfa.com,AdBlock +- DOMAIN-SUFFIX,qgss8.com,AdBlock +- DOMAIN-SUFFIX,qhaif.com,AdBlock +- DOMAIN-SUFFIX,qhl.bealge.sogou.com,AdBlock +- DOMAIN-SUFFIX,qiailm.com,AdBlock +- DOMAIN-SUFFIX,qianclick.baidu.com,AdBlock +- DOMAIN-SUFFIX,qiaopiguniang.com,AdBlock +- DOMAIN-SUFFIX,qichexin.com,AdBlock +- DOMAIN-SUFFIX,qihaoqu.com,AdBlock +- DOMAIN-SUFFIX,qinchugudao.com,AdBlock +- DOMAIN-SUFFIX,qingqu.la,AdBlock +- DOMAIN-SUFFIX,qiqipower.com,AdBlock +- DOMAIN-SUFFIX,qiqivv.com,AdBlock +- DOMAIN-SUFFIX,qiqiww.com,AdBlock +- DOMAIN-SUFFIX,qiqiyii.com,AdBlock +- DOMAIN-SUFFIX,qiye11.ejunshi.net,AdBlock +- DOMAIN-SUFFIX,qiyem.ejunshi.com,AdBlock +- DOMAIN-SUFFIX,qiyezs.ejunshi.com,AdBlock +- DOMAIN-SUFFIX,qiyou.com,AdBlock +- DOMAIN-SUFFIX,qjfcdn1220.0101122.com,AdBlock +- DOMAIN-SUFFIX,qjjtc.com,AdBlock +- DOMAIN-SUFFIX,qlisv.siemens6es7.com,AdBlock +- DOMAIN-SUFFIX,qlmho.renhengshangmao.com,AdBlock +- DOMAIN-SUFFIX,qloer.com,AdBlock +- DOMAIN-SUFFIX,qlonglong.com,AdBlock +- DOMAIN-SUFFIX,qmkdy.com,AdBlock +- DOMAIN-SUFFIX,qoiusky.com,AdBlock +- DOMAIN-SUFFIX,qooic.com,AdBlock +- DOMAIN-SUFFIX,qp.yunanfuwuqi.com,AdBlock +- DOMAIN-SUFFIX,qq.guansenff.cn,AdBlock +- DOMAIN-SUFFIX,qq.irs01.com,AdBlock +- DOMAIN-SUFFIX,qq.tapiche.cn,AdBlock +- DOMAIN-SUFFIX,qq2.co,AdBlock +- DOMAIN-SUFFIX,qq61.com,AdBlock +- DOMAIN-SUFFIX,qqhuhu.com,AdBlock +- DOMAIN-SUFFIX,qqm98.com,AdBlock +- DOMAIN-SUFFIX,qqshow2-item.qq.com,AdBlock +- DOMAIN-SUFFIX,qqx.cqqytgpt.com,AdBlock +- DOMAIN-SUFFIX,qqzu.com,AdBlock +- DOMAIN-SUFFIX,qsbz2011.com,AdBlock +- DOMAIN-SUFFIX,qshxc.com,AdBlock +- DOMAIN-SUFFIX,qt.biqugezw.com,AdBlock +- DOMAIN-SUFFIX,qt002x.corp.youdao.com,AdBlock +- DOMAIN-SUFFIX,qtmojo.cn,AdBlock +- DOMAIN-SUFFIX,qtmojo.com,AdBlock +- DOMAIN-SUFFIX,quanliyouxi.cn,AdBlock +- DOMAIN-SUFFIX,quansj.cn,AdBlock +- DOMAIN-SUFFIX,quantcount.com,AdBlock +- DOMAIN-SUFFIX,quantserve.com,AdBlock +- DOMAIN-SUFFIX,qucaigg.com,AdBlock +- DOMAIN-SUFFIX,queene.cn,AdBlock +- DOMAIN-SUFFIX,questionmarket.com,AdBlock +- DOMAIN-SUFFIX,qujishu.com,AdBlock +- DOMAIN-SUFFIX,qumi.com,AdBlock +- DOMAIN-SUFFIX,qupinhj.com,AdBlock +- DOMAIN-SUFFIX,qutaobi.com,AdBlock +- DOMAIN-SUFFIX,quw18.com,AdBlock +- DOMAIN-SUFFIX,quyaoya.com,AdBlock +- DOMAIN-SUFFIX,qweqwe.mctvhp.cn,AdBlock +- DOMAIN-SUFFIX,qxjdlf.com,AdBlock +- DOMAIN-SUFFIX,qxm.pluto.sogou.com,AdBlock +- DOMAIN-SUFFIX,qxxys.com,AdBlock +- DOMAIN-SUFFIX,qyctj.com,AdBlock +- DOMAIN-SUFFIX,qytyf.com,AdBlock +- DOMAIN-SUFFIX,qzdag.com,AdBlock +- DOMAIN-SUFFIX,qzdfc.com,AdBlock +- DOMAIN-SUFFIX,qzgjprj.com,AdBlock +- DOMAIN-SUFFIX,qzkxt.com,AdBlock +- DOMAIN-SUFFIX,r.0.0.0.0.cn,AdBlock +- DOMAIN-SUFFIX,r.254a.com,AdBlock +- DOMAIN-SUFFIX,r.5207470.com,AdBlock +- DOMAIN-SUFFIX,r.browser.miui.com,AdBlock +- DOMAIN-SUFFIX,r.bxb.oupeng.com,AdBlock +- DOMAIN-SUFFIX,r.dmp.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,r.mail.163.com,AdBlock +- DOMAIN-SUFFIX,r.msn.com,AdBlock +- DOMAIN-SUFFIX,r.myadx.net,AdBlock +- DOMAIN-SUFFIX,r.ow.0.0.0.0.cn,AdBlock +- DOMAIN-SUFFIX,r.pixgold.com,AdBlock +- DOMAIN-SUFFIX,r.radikal.ru,AdBlock +- DOMAIN-SUFFIX,r.xcycm.com,AdBlock +- DOMAIN-SUFFIX,r.youmi.net,AdBlock +- DOMAIN-SUFFIX,r.zlongad.com,AdBlock +- DOMAIN-SUFFIX,r8nu86wg.me,AdBlock +- DOMAIN-SUFFIX,ra.gtimg.com,AdBlock +- DOMAIN-SUFFIX,rabbit.meitustat.com,AdBlock +- DOMAIN-SUFFIX,rabbit.tg.meitu.com,AdBlock +- DOMAIN-SUFFIX,rack.bauermedia.co.uk,AdBlock +- DOMAIN-SUFFIX,rad.live.com,AdBlock +- DOMAIN-SUFFIX,rad.microsoft.com,AdBlock +- DOMAIN-SUFFIX,rad.msn.com,AdBlock +- DOMAIN-SUFFIX,rad.reporo.net,AdBlock +- DOMAIN-SUFFIX,radar.cedexis.com,AdBlock +- DOMAIN-SUFFIX,raeqqe.cn,AdBlock +- DOMAIN-SUFFIX,rank.hit.china.com,AdBlock +- DOMAIN-SUFFIX,rannabio.com,AdBlock +- DOMAIN-SUFFIX,ratings.lycos.com,AdBlock +- DOMAIN-SUFFIX,raw.okwan.cn,AdBlock +- DOMAIN-SUFFIX,rayjump.com,AdBlock +- DOMAIN-SUFFIX,rbp.emea.mxptint.net,AdBlock +- DOMAIN-SUFFIX,rbp.mxptint.net,AdBlock +- DOMAIN-SUFFIX,rbs.haiyunx.com,AdBlock +- DOMAIN-SUFFIX,rbywg.com,AdBlock +- DOMAIN-SUFFIX,rc.fthcz.com,AdBlock +- DOMAIN-SUFFIX,rc.haodongkeji.cn,AdBlock +- DOMAIN-SUFFIX,rc.mgwcn.com,AdBlock +- DOMAIN-SUFFIX,rc.xmcmn.com,AdBlock +- DOMAIN-SUFFIX,rc2waycm-atl.netmng.com,AdBlock +- DOMAIN-SUFFIX,rc-au.imrworldwide.com,AdBlock +- DOMAIN-SUFFIX,rcmd.pop.ijinshan.com,AdBlock +- DOMAIN-SUFFIX,rcp.c.appier.net,AdBlock +- DOMAIN-SUFFIX,rcv.iclicash.com,AdBlock +- DOMAIN-SUFFIX,rcv.jesgoo.com,AdBlock +- DOMAIN-SUFFIX,rcv.mobad.ijinshan.com,AdBlock +- DOMAIN-SUFFIX,rcv.moogos.com,AdBlock +- DOMAIN-SUFFIX,rcv.union-wifi.com,AdBlock +- DOMAIN-SUFFIX,rcyy3.kaopuwangjz.com,AdBlock +- DOMAIN-SUFFIX,rd.ane.yahoo.co.jp,AdBlock +- DOMAIN-SUFFIX,rd.autohome.com.cn,AdBlock +- DOMAIN-SUFFIX,rd.da.netease.com,AdBlock +- DOMAIN-SUFFIX,rd.e.sogou.com,AdBlock +- DOMAIN-SUFFIX,rdiqt.cn,AdBlock +- DOMAIN-SUFFIX,rdtuijian.com,AdBlock +- DOMAIN-SUFFIX,rdx.autohome.com.cn,AdBlock +- DOMAIN-SUFFIX,re.m.taobao.com,AdBlock +- DOMAIN-SUFFIX,re.taobao.com,AdBlock +- DOMAIN-SUFFIX,re.taotaosou.com,AdBlock +- DOMAIN-SUFFIX,reachmax.cn,AdBlock +- DOMAIN-SUFFIX,reader.browser.miui.com,AdBlock +- DOMAIN-SUFFIX,reader.meizu.com,AdBlock +- DOMAIN-SUFFIX,reader.res.meizu.com,AdBlock +- DOMAIN-SUFFIX,realtime.monitor.ppweb.com.cn,AdBlock +- DOMAIN-SUFFIX,rec.g.163.com,AdBlock +- DOMAIN-SUFFIX,rec.moviebox.baofeng.net,AdBlock +- DOMAIN-SUFFIX,recreativ.ru,AdBlock +- DOMAIN-SUFFIX,recv-vd.gridsumdissector.cn,AdBlock +- DOMAIN-SUFFIX,recv-vd.gridsumdissector.com,AdBlock +- DOMAIN-SUFFIX,recv-wd.gridsumdissector.com,AdBlock +- DOMAIN-SUFFIX,red.bayimg.net,AdBlock +- DOMAIN-SUFFIX,redirect.simba.taobao.com,AdBlock +- DOMAIN-SUFFIX,redpaper-10006092.cos.myqcloud.com,AdBlock +- DOMAIN-SUFFIX,redvase.bravenet.com,AdBlock +- DOMAIN-SUFFIX,referrer.disqus.com,AdBlock +- DOMAIN-SUFFIX,relap.io,AdBlock +- DOMAIN-SUFFIX,release.baidu.com,AdBlock +- DOMAIN-SUFFIX,reliancevalve.com,AdBlock +- DOMAIN-SUFFIX,remote88.com,AdBlock +- DOMAIN-SUFFIX,remotedu.cn,AdBlock +- DOMAIN-SUFFIX,rem-track.bild.de,AdBlock +- DOMAIN-SUFFIX,rencai56.com,AdBlock +- DOMAIN-SUFFIX,renren2.maoyun.tv,AdBlock +- DOMAIN-SUFFIX,req.startappservice.com,AdBlock +- DOMAIN-SUFFIX,res.cocounion.com,AdBlock +- DOMAIN-SUFFIX,res.dxpmedia.com,AdBlock +- DOMAIN-SUFFIX,res.icast.cn,AdBlock +- DOMAIN-SUFFIX,res.ipingke.com,AdBlock +- DOMAIN-SUFFIX,res.mmstat.com,AdBlock +- DOMAIN-SUFFIX,res.qhupdate.com,AdBlock +- DOMAIN-SUFFIX,res3.feedsportal.com,AdBlock +- DOMAIN-SUFFIX,rescn.u3.ucweb.com,AdBlock +- DOMAIN-SUFFIX,resetgey.com,AdBlock +- DOMAIN-SUFFIX,res-ga.smzdm.com,AdBlock +- DOMAIN-SUFFIX,resolver.gslb.mi-idc.com,AdBlock +- DOMAIN-SUFFIX,resolver.msg.xiaomi.net,AdBlock +- DOMAIN-SUFFIX,resource.baomihua.com,AdBlock +- DOMAIN-SUFFIX,responsys.net,AdBlock +- DOMAIN-SUFFIX,ret.xinlongrubber.com,AdBlock +- DOMAIN-SUFFIX,rev.fapdu.com,AdBlock +- DOMAIN-SUFFIX,revdepo.com,AdBlock +- DOMAIN-SUFFIX,revealads.appspot.com,AdBlock +- DOMAIN-SUFFIX,revsci.net,AdBlock +- DOMAIN-SUFFIX,rfir2.50w.me,AdBlock +- DOMAIN-SUFFIX,rh.code.jjyx.com,AdBlock +- DOMAIN-SUFFIX,rh.greenbetterkids.com,AdBlock +- DOMAIN-SUFFIX,rhgyg.com,AdBlock +- DOMAIN-SUFFIX,rich.kuwo.cn,AdBlock +- DOMAIN-SUFFIX,richmedia.yimg.com,AdBlock +- DOMAIN-SUFFIX,riqu2015.com,AdBlock +- DOMAIN-SUFFIX,river.zhidao.baidu.com,AdBlock +- DOMAIN-SUFFIX,rj.baidu.com,AdBlock +- DOMAIN-SUFFIX,rjgw.theta.sogou.com,AdBlock +- DOMAIN-SUFFIX,rjs.niuxgame77.com,AdBlock +- DOMAIN-SUFFIX,rk.rongchengxxw.com,AdBlock +- DOMAIN-SUFFIX,rlcdn.com,AdBlock +- DOMAIN-SUFFIX,rlogs.youdao.com,AdBlock +- DOMAIN-SUFFIX,rm.ra.icast.cn,AdBlock +- DOMAIN-SUFFIX,rm.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,rmads.eu.msn.com,AdBlock +- DOMAIN-SUFFIX,rmads.msn.com,AdBlock +- DOMAIN-SUFFIX,rmcxw.cn,AdBlock +- DOMAIN-SUFFIX,rmoeu.mercury.sogou.com,AdBlock +- DOMAIN-SUFFIX,rmtx.ra.icast.cn,AdBlock +- DOMAIN-SUFFIX,rmw.jdburl.com,AdBlock +- DOMAIN-SUFFIX,rnfrfxqztlno.com,AdBlock +- DOMAIN-SUFFIX,roia.com,AdBlock +- DOMAIN-SUFFIX,rosi.okkkk.com,AdBlock +- DOMAIN-SUFFIX,rotabanner.kulichki.net,AdBlock +- DOMAIN-SUFFIX,rotate.ymtracking.com,AdBlock +- DOMAIN-SUFFIX,rotator.tradetracker.net,AdBlock +- DOMAIN-SUFFIX,router.bittorrent.com,AdBlock +- DOMAIN-SUFFIX,rovio-news-app.angrybirdsgame.com,AdBlock +- DOMAIN-SUFFIX,rp.crasheye.cn,AdBlock +- DOMAIN-SUFFIX,rp.gwallet.com,AdBlock +- DOMAIN-SUFFIX,rpaulfrank.com,AdBlock +- DOMAIN-SUFFIX,rpc-php.trafficfactory.biz,AdBlock +- DOMAIN-SUFFIX,rplog.baidu.com,AdBlock +- DOMAIN-SUFFIX,rpnews.itaoxiaoshuo.com,AdBlock +- DOMAIN-SUFFIX,rpt.anchorfree.net,AdBlock +- DOMAIN-SUFFIX,rqgsf.com,AdBlock +- DOMAIN-SUFFIX,rr.knet.cn,AdBlock +- DOMAIN-SUFFIX,rrr.youle55.com,AdBlock +- DOMAIN-SUFFIX,rrsubway.com,AdBlock +- DOMAIN-SUFFIX,rs.sinajs.cn,AdBlock +- DOMAIN-SUFFIX,rs1.rensheng5.com,AdBlock +- DOMAIN-SUFFIX,rsas.szzek.com,AdBlock +- DOMAIN-SUFFIX,rsccs.com,AdBlock +- DOMAIN-SUFFIX,rt.funshion.net,AdBlock +- DOMAIN-SUFFIX,rt.gsspat.jp,AdBlock +- DOMAIN-SUFFIX,rtas.videocc.net,AdBlock +- DOMAIN-SUFFIX,rtax.criteo.com,AdBlock +- DOMAIN-SUFFIX,rtb.com.ru,AdBlock +- DOMAIN-SUFFIX,rtb.eanalyzer.de,AdBlock +- DOMAIN-SUFFIX,rtb.metrigo.com,AdBlock +- DOMAIN-SUFFIX,rtbasia.com,AdBlock +- DOMAIN-SUFFIX,rtb-p.kejet.net,AdBlock +- DOMAIN-SUFFIX,rtbstat.zcdsp.com,AdBlock +- DOMAIN-SUFFIX,rtlog.vidown.cn,AdBlock +- DOMAIN-SUFFIX,rtmonitor.kugou.com,AdBlock +- DOMAIN-SUFFIX,rto.steelhousemedia.com,AdBlock +- DOMAIN-SUFFIX,ruan88.com,AdBlock +- DOMAIN-SUFFIX,rubicon-match.dotomi.com,AdBlock +- DOMAIN-SUFFIX,rubiconproject.com,AdBlock +- DOMAIN-SUFFIX,rudy.adsnative.com,AdBlock +- DOMAIN-SUFFIX,ru-gmtdmp.mookie1.com,AdBlock +- DOMAIN-SUFFIX,rum-collector.pingdom.net,AdBlock +- DOMAIN-SUFFIX,rum-static.pingdom.net,AdBlock +- DOMAIN-SUFFIX,runetki.joyreactor.ru,AdBlock +- DOMAIN-SUFFIX,runiman.com,AdBlock +- DOMAIN-SUFFIX,rutrk.org,AdBlock +- DOMAIN-SUFFIX,ruxianke.com,AdBlock +- DOMAIN-SUFFIX,rvb.quanliyouxi.cn,AdBlock +- DOMAIN-SUFFIX,rwjfs.com,AdBlock +- DOMAIN-SUFFIX,rwq.youle55.com,AdBlock +- DOMAIN-SUFFIX,rxwan.com,AdBlock +- DOMAIN-SUFFIX,ry51w.cn,AdBlock +- DOMAIN-SUFFIX,s.0.0.0.0.cn,AdBlock +- DOMAIN-SUFFIX,s.051352.com,AdBlock +- DOMAIN-SUFFIX,s.0594529.com,AdBlock +- DOMAIN-SUFFIX,s.17173cdn.com,AdBlock +- DOMAIN-SUFFIX,s.35kds.com,AdBlock +- DOMAIN-SUFFIX,s.5jjx.net,AdBlock +- DOMAIN-SUFFIX,s.652748.com,AdBlock +- DOMAIN-SUFFIX,s.6travel.com,AdBlock +- DOMAIN-SUFFIX,s.abcache.com,AdBlock +- DOMAIN-SUFFIX,s.alitui.weibo.com,AdBlock +- DOMAIN-SUFFIX,s.baidu.com,AdBlock +- DOMAIN-SUFFIX,s.bmgan.com,AdBlock +- DOMAIN-SUFFIX,s.caduka.cn,AdBlock +- DOMAIN-SUFFIX,s.cdn.u17t.com,AdBlock +- DOMAIN-SUFFIX,s.cdxyb.cn,AdBlock +- DOMAIN-SUFFIX,s.clkservice.youdao.com,AdBlock +- DOMAIN-SUFFIX,s.com2us.net,AdBlock +- DOMAIN-SUFFIX,s.coveredsys.cn,AdBlock +- DOMAIN-SUFFIX,s.cr-nielsen.com,AdBlock +- DOMAIN-SUFFIX,s.csbew.com,AdBlock +- DOMAIN-SUFFIX,s.ddstu.com,AdBlock +- DOMAIN-SUFFIX,s.de123.net,AdBlock +- DOMAIN-SUFFIX,s.doyo.cn,AdBlock +- DOMAIN-SUFFIX,s.dpcq1.net,AdBlock +- DOMAIN-SUFFIX,s.dsjcfw.com,AdBlock +- DOMAIN-SUFFIX,s.effectivemeasure.net,AdBlock +- DOMAIN-SUFFIX,s.ekeide.com,AdBlock +- DOMAIN-SUFFIX,s.georgias.cn,AdBlock +- DOMAIN-SUFFIX,s.go.sohu.com,AdBlock +- DOMAIN-SUFFIX,s.haiyunx.com,AdBlock +- DOMAIN-SUFFIX,s.hk9600.com,AdBlock +- DOMAIN-SUFFIX,s.hkfuy.com,AdBlock +- DOMAIN-SUFFIX,s.hnhgw.cn,AdBlock +- DOMAIN-SUFFIX,s.hzht666.com,AdBlock +- DOMAIN-SUFFIX,s.img.mix.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,s.iroby.com,AdBlock +- DOMAIN-SUFFIX,s.iuuff.com,AdBlock +- DOMAIN-SUFFIX,s.jandan.com,AdBlock +- DOMAIN-SUFFIX,s.jimdo.com,AdBlock +- DOMAIN-SUFFIX,s.jlminte.com,AdBlock +- DOMAIN-SUFFIX,s.jpush.cn,AdBlock +- DOMAIN-SUFFIX,s.jzkelida.com,AdBlock +- DOMAIN-SUFFIX,s.khgj.cn,AdBlock +- DOMAIN-SUFFIX,s.l8l9.com,AdBlock +- DOMAIN-SUFFIX,s.maipubao.cn,AdBlock +- DOMAIN-SUFFIX,s.meimeidaren.com,AdBlock +- DOMAIN-SUFFIX,s.mgwcn.com,AdBlock +- DOMAIN-SUFFIX,s.mt145.com,AdBlock +- DOMAIN-SUFFIX,s.okmgy.cn,AdBlock +- DOMAIN-SUFFIX,s.phpwind.com,AdBlock +- DOMAIN-SUFFIX,s.qd.qingting.fm,AdBlock +- DOMAIN-SUFFIX,s.qd.qingtingfm.com,AdBlock +- DOMAIN-SUFFIX,s.qhupdate.com,AdBlock +- DOMAIN-SUFFIX,s.qtad.qingting.fm,AdBlock +- DOMAIN-SUFFIX,s.qzkxt.com,AdBlock +- DOMAIN-SUFFIX,s.ryre.cn,AdBlock +- DOMAIN-SUFFIX,s.sh.qihoo.com,AdBlock +- DOMAIN-SUFFIX,s.shiftrro.com,AdBlock +- DOMAIN-SUFFIX,s.staqnet.com,AdBlock +- DOMAIN-SUFFIX,s.temaidi.com,AdBlock +- DOMAIN-SUFFIX,s.trafficjam.cn,AdBlock +- DOMAIN-SUFFIX,s.uc627.com,AdBlock +- DOMAIN-SUFFIX,s.uuidksinc.net,AdBlock +- DOMAIN-SUFFIX,s.wapadv.com,AdBlock +- DOMAIN-SUFFIX,s.wrating.com,AdBlock +- DOMAIN-SUFFIX,s.wxktv.cn,AdBlock +- DOMAIN-SUFFIX,s.x.cn.xtgreat.com,AdBlock +- DOMAIN-SUFFIX,s.xcfe.cn,AdBlock +- DOMAIN-SUFFIX,s.xinghao89.com,AdBlock +- DOMAIN-SUFFIX,s.xmcmn.com,AdBlock +- DOMAIN-SUFFIX,s.yanpoly.com,AdBlock +- DOMAIN-SUFFIX,s.yfycy.com,AdBlock +- DOMAIN-SUFFIX,s.yidianzixun.com,AdBlock +- DOMAIN-SUFFIX,s.yjkyj.cn,AdBlock +- DOMAIN-SUFFIX,s.youmi.net,AdBlock +- DOMAIN-SUFFIX,s.ysxufeng.com,AdBlock +- DOMAIN-SUFFIX,s.yunpifu.cn,AdBlock +- DOMAIN-SUFFIX,s.zgclmw.cn,AdBlock +- DOMAIN-SUFFIX,s.zixuntop.com,AdBlock +- DOMAIN-SUFFIX,s.zjhoudao.com,AdBlock +- DOMAIN-SUFFIX,s.zlongad.com,AdBlock +- DOMAIN-SUFFIX,s.zxwdw.com,AdBlock +- DOMAIN-SUFFIX,s0.2mdn.net,AdBlock +- DOMAIN-SUFFIX,s03.optimix.asia,AdBlock +- DOMAIN-SUFFIX,s1.2mdn.net,AdBlock +- DOMAIN-SUFFIX,s1.cmfu.com,AdBlock +- DOMAIN-SUFFIX,s1.hiapk.com,AdBlock +- DOMAIN-SUFFIX,s1.hnhbyxdq.com,AdBlock +- DOMAIN-SUFFIX,s1.huiqituan.com,AdBlock +- DOMAIN-SUFFIX,s1.iigushi.com,AdBlock +- DOMAIN-SUFFIX,s1.kutongji.com,AdBlock +- DOMAIN-SUFFIX,s1.mingmingtehui.com,AdBlock +- DOMAIN-SUFFIX,s1.qiqutt.cn,AdBlock +- DOMAIN-SUFFIX,s1.qiqutt.com,AdBlock +- DOMAIN-SUFFIX,s1.qiuyi.cn,AdBlock +- DOMAIN-SUFFIX,s1.s8tu.com,AdBlock +- DOMAIN-SUFFIX,s1.tansuotv.com,AdBlock +- DOMAIN-SUFFIX,s10.histats.com,AdBlock +- DOMAIN-SUFFIX,s2.dnaxddnc.com,AdBlock +- DOMAIN-SUFFIX,s2.hiapk.com,AdBlock +- DOMAIN-SUFFIX,s2.huoying666.com,AdBlock +- DOMAIN-SUFFIX,s2.kuaibaopay.com,AdBlock +- DOMAIN-SUFFIX,s2.mingmingtehui.com,AdBlock +- DOMAIN-SUFFIX,s2.yandui.com,AdBlock +- DOMAIN-SUFFIX,s2.zdface.com,AdBlock +- DOMAIN-SUFFIX,s2.zdmimg.com,AdBlock +- DOMAIN-SUFFIX,s3.pfp.sina.net,AdBlock +- DOMAIN-SUFFIX,s3.rongnews.com,AdBlock +- DOMAIN-SUFFIX,s3d4.cn,AdBlock +- DOMAIN-SUFFIX,s4.55.la,AdBlock +- DOMAIN-SUFFIX,s4.histats.com,AdBlock +- DOMAIN-SUFFIX,s400cc.com,AdBlock +- DOMAIN-SUFFIX,s5.keydot.net,AdBlock +- DOMAIN-SUFFIX,s8.001fzc.com,AdBlock +- DOMAIN-SUFFIX,s8.dnaxddnc.com,AdBlock +- DOMAIN-SUFFIX,s8x1.com,AdBlock +- DOMAIN-SUFFIX,s9w.cc,AdBlock +- DOMAIN-SUFFIX,sa909.com,AdBlock +- DOMAIN-SUFFIX,sad.qeo.cn,AdBlock +- DOMAIN-SUFFIX,safe.tsgpay.cn,AdBlock +- DOMAIN-SUFFIX,safe-aisle.jointreport-switch.com,AdBlock +- DOMAIN-SUFFIX,saferwet.com,AdBlock +- DOMAIN-SUFFIX,same.chinadaily.com.cn,AdBlock +- DOMAIN-SUFFIX,same.eastmoney.com,AdBlock +- DOMAIN-SUFFIX,same.jrj.com.cn,AdBlock +- DOMAIN-SUFFIX,same.mzy2014.com,AdBlock +- DOMAIN-SUFFIX,same.stockstar.com,AdBlock +- DOMAIN-SUFFIX,same01.jrj.com.cn,AdBlock +- DOMAIN-SUFFIX,same02.jrj.com.cn,AdBlock +- DOMAIN-SUFFIX,same03.jrj.com.cn,AdBlock +- DOMAIN-SUFFIX,sams.nikonimaging.com,AdBlock +- DOMAIN-SUFFIX,sangxi.top,AdBlock +- DOMAIN-SUFFIX,sanya1.com,AdBlock +- DOMAIN-SUFFIX,sape.ru,AdBlock +- DOMAIN-SUFFIX,sapi.sina.cn,AdBlock +- DOMAIN-SUFFIX,savebt.net,AdBlock +- DOMAIN-SUFFIX,saxxaz.taohuayuan8888.com,AdBlock +- DOMAIN-SUFFIX,sb.scorecardresearch.com,AdBlock +- DOMAIN-SUFFIX,sb88b.com,AdBlock +- DOMAIN-SUFFIX,sbeacon.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,sbrqp.com,AdBlock +- DOMAIN-SUFFIX,sbw.ysjweb.com,AdBlock +- DOMAIN-SUFFIX,sc.58mingtian.cn,AdBlock +- DOMAIN-SUFFIX,sc.chinaiiss.com,AdBlock +- DOMAIN-SUFFIX,sc.ggdoubi.com,AdBlock +- DOMAIN-SUFFIX,sc.ggfeng.com,AdBlock +- DOMAIN-SUFFIX,sc.iasds01.com,AdBlock +- DOMAIN-SUFFIX,sc.sczxy.com,AdBlock +- DOMAIN-SUFFIX,sc.shayugg.com,AdBlock +- DOMAIN-SUFFIX,sc1369.com,AdBlock +- DOMAIN-SUFFIX,scc.0.0.0.0.cn,AdBlock +- DOMAIN-SUFFIX,sccdn.f2zd.com,AdBlock +- DOMAIN-SUFFIX,scdng.com,AdBlock +- DOMAIN-SUFFIX,scdown.qq.com,AdBlock +- DOMAIN-SUFFIX,scene.vip.xunlei.com,AdBlock +- DOMAIN-SUFFIX,schborg.com,AdBlock +- DOMAIN-SUFFIX,schemas.android.com,AdBlock +- DOMAIN-SUFFIX,schprompt.dangdang.com,AdBlock +- DOMAIN-SUFFIX,sciencelolb.com,AdBlock +- DOMAIN-SUFFIX,scimg.27admin.com,AdBlock +- DOMAIN-SUFFIX,sclick.6rooms.com,AdBlock +- DOMAIN-SUFFIX,sclick.baidu.com,AdBlock +- DOMAIN-SUFFIX,sclizhong.com,AdBlock +- DOMAIN-SUFFIX,sclog.moviebox.baofeng.com,AdBlock +- DOMAIN-SUFFIX,scorecardresearch.com,AdBlock +- DOMAIN-SUFFIX,scribe.twitter.com,AdBlock +- DOMAIN-SUFFIX,scrippsnetworks.com,AdBlock +- DOMAIN-SUFFIX,script.crazyegg.com,AdBlock +- DOMAIN-SUFFIX,script.vccoo.com,AdBlock +- DOMAIN-SUFFIX,script-bd.baixing.net,AdBlock +- DOMAIN-SUFFIX,scriptcc.cc,AdBlock +- DOMAIN-SUFFIX,scupio.com,AdBlock +- DOMAIN-SUFFIX,scw0.com,AdBlock +- DOMAIN-SUFFIX,sd.0.0.0.0.cn,AdBlock +- DOMAIN-SUFFIX,sd.kk3g.net,AdBlock +- DOMAIN-SUFFIX,sdac.lenovomm.com,AdBlock +- DOMAIN-SUFFIX,sdapprecv.app.cntvwb.cn,AdBlock +- DOMAIN-SUFFIX,sdb.amazonaws.com,AdBlock +- DOMAIN-SUFFIX,sdhzstone.net,AdBlock +- DOMAIN-SUFFIX,sdk.appadhoc.com,AdBlock +- DOMAIN-SUFFIX,sdk.cdnmaster.com,AdBlock +- DOMAIN-SUFFIX,sdk.cmgame.com,AdBlock +- DOMAIN-SUFFIX,sdk.conf.igexin.com,AdBlock +- DOMAIN-SUFFIX,sdk.mobad.ijinshan.com,AdBlock +- DOMAIN-SUFFIX,sdk.open.amp.igexin.com,AdBlock +- DOMAIN-SUFFIX,sdk.open.lbs.igexin.com,AdBlock +- DOMAIN-SUFFIX,sdk.open.phone.igexin.com,AdBlock +- DOMAIN-SUFFIX,sdk.open.talk.gepush.com,AdBlock +- DOMAIN-SUFFIX,sdk.open.talk.igexin.com,AdBlock +- DOMAIN-SUFFIX,sdkapp.mobile.sina.cn,AdBlock +- DOMAIN-SUFFIX,sdkapp.uve.weibo.com,AdBlock +- DOMAIN-SUFFIX,sdkclick.mobile.sina.cn,AdBlock +- DOMAIN-SUFFIX,sdkconfig.ad.intl.xiaomi.com,AdBlock +- DOMAIN-SUFFIX,sdkdm.com,AdBlock +- DOMAIN-SUFFIX,sdklog.cmgame.com,AdBlock +- DOMAIN-SUFFIX,sdklog.uu.cc,AdBlock +- DOMAIN-SUFFIX,sdkpay.uu.cc,AdBlock +- DOMAIN-SUFFIX,sdksitter.m.sjzhushou.com,AdBlock +- DOMAIN-SUFFIX,sdl.0.0.0.0.cn,AdBlock +- DOMAIN-SUFFIX,sdn.kugou.com,AdBlock +- DOMAIN-SUFFIX,sdn.penggua.com.cn,AdBlock +- DOMAIN-SUFFIX,sdownload.stargame.com,AdBlock +- DOMAIN-SUFFIX,sdqoi2d.com,AdBlock +- DOMAIN-SUFFIX,sdwfw.com,AdBlock +- DOMAIN-SUFFIX,sdycd.com,AdBlock +- DOMAIN-SUFFIX,sea.napi.ucweb.com,AdBlock +- DOMAIN-SUFFIX,searchignited.com,AdBlock +- DOMAIN-SUFFIX,searchswapper.com,AdBlock +- DOMAIN-SUFFIX,seavideo-ak.espn.go.com,AdBlock +- DOMAIN-SUFFIX,sebar.thand.info,AdBlock +- DOMAIN-SUFFIX,sec.resource.xiaomi.net,AdBlock +- DOMAIN-SUFFIX,secpay.wostore.cn,AdBlock +- DOMAIN-SUFFIX,secretmedia.s3.amazonaws.com,AdBlock +- DOMAIN-SUFFIX,secure.dsp.com,AdBlock +- DOMAIN-SUFFIX,secure.fastclick.net,AdBlock +- DOMAIN-SUFFIX,secure.img-cdn.mediaplex.com,AdBlock +- DOMAIN-SUFFIX,secure.quantserve.com,AdBlock +- DOMAIN-SUFFIX,secure.statcounter.com,AdBlock +- DOMAIN-SUFFIX,secure-asia.imrworldwide.com,AdBlock +- DOMAIN-SUFFIX,secure-assets.rubiconproject.com,AdBlock +- DOMAIN-SUFFIX,secure-chn.imrworldwide.com,AdBlock +- DOMAIN-SUFFIX,secure-ds.serving-sys.com,AdBlock +- DOMAIN-SUFFIX,security.browser.miui.com,AdBlock +- DOMAIN-SUFFIX,seen.h01ce.cn,AdBlock +- DOMAIN-SUFFIX,seen.hgo7r.cn,AdBlock +- DOMAIN-SUFFIX,seg.sharethis.com,AdBlock +- DOMAIN-SUFFIX,segment.com,AdBlock +- DOMAIN-SUFFIX,selfie.snapmobileasia.net,AdBlock +- DOMAIN-SUFFIX,sell1.etlong.com,AdBlock +- DOMAIN-SUFFIX,sensorsdata.ruguoapp.com,AdBlock +- DOMAIN-SUFFIX,serial.alcohol-soft.com,AdBlock +- DOMAIN-SUFFIX,serrano.hardwareheaven.com,AdBlock +- DOMAIN-SUFFIX,serve.popads.net,AdBlock +- DOMAIN-SUFFIX,servedby.keygamesnetwork.com,AdBlock +- DOMAIN-SUFFIX,server.m.pp.cn,AdBlock +- DOMAIN-SUFFIX,service.ad.adesk.com,AdBlock +- DOMAIN-SUFFIX,service.ad.duomi.com,AdBlock +- DOMAIN-SUFFIX,service.cocounion.com,AdBlock +- DOMAIN-SUFFIX,service.danmu.youku.com,AdBlock +- DOMAIN-SUFFIX,service.epro.sogou.com,AdBlock +- DOMAIN-SUFFIX,service.urchin.com,AdBlock +- DOMAIN-SUFFIX,servicer.adskeeper.co.uk,AdBlock +- DOMAIN-SUFFIX,serving-sys.com,AdBlock +- DOMAIN-SUFFIX,sestat.baidu.com,AdBlock +- DOMAIN-SUFFIX,setting.crashlytics.com,AdBlock +- DOMAIN-SUFFIX,setting.rayjump.com,AdBlock +- DOMAIN-SUFFIX,setting.snswin.qq.com,AdBlock +- DOMAIN-SUFFIX,settings.crashlytics.com,AdBlock +- DOMAIN-SUFFIX,sezvc.com,AdBlock +- DOMAIN-SUFFIX,sfloushi.com,AdBlock +- DOMAIN-SUFFIX,sg536.cn,AdBlock +- DOMAIN-SUFFIX,sgbfjs.info,AdBlock +- DOMAIN-SUFFIX,sg-cdn.effectivemeasure.net,AdBlock +- DOMAIN-SUFFIX,sgg.southcn.com,AdBlock +- DOMAIN-SUFFIX,sgvip.chinahdcm.com,AdBlock +- DOMAIN-SUFFIX,sh.qihoo.com,AdBlock +- DOMAIN-SUFFIX,sh.shuqw.com,AdBlock +- DOMAIN-SUFFIX,sha50.com,AdBlock +- DOMAIN-SUFFIX,shadu.baidu.com,AdBlock +- DOMAIN-SUFFIX,shaft.jebe.renren.com,AdBlock +- DOMAIN-SUFFIX,shama5.com,AdBlock +- DOMAIN-SUFFIX,shanghaironghua.com,AdBlock +- DOMAIN-SUFFIX,shanglinli.com,AdBlock +- DOMAIN-SUFFIX,shangz99991.com,AdBlock +- DOMAIN-SUFFIX,shankejingling.com,AdBlock +- DOMAIN-SUFFIX,share.gzdsw.com,AdBlock +- DOMAIN-SUFFIX,shared.youdao.com,AdBlock +- DOMAIN-SUFFIX,sharedaddomain.com,AdBlock +- DOMAIN-SUFFIX,sharrysweb.com,AdBlock +- DOMAIN-SUFFIX,shbywsd.cn,AdBlock +- DOMAIN-SUFFIX,shenghuo.xiaomi.com,AdBlock +- DOMAIN-SUFFIX,shenleyuni.com,AdBlock +- DOMAIN-SUFFIX,shenyian.net,AdBlock +- DOMAIN-SUFFIX,shenyun.com,AdBlock +- DOMAIN-SUFFIX,shenyun.org,AdBlock +- DOMAIN-SUFFIX,shenyunperformingarts.org,AdBlock +- DOMAIN-SUFFIX,shglegle.com,AdBlock +- DOMAIN-SUFFIX,shibeiou.com,AdBlock +- DOMAIN-SUFFIX,shiftrro.com,AdBlock +- DOMAIN-SUFFIX,shili.downxia.com,AdBlock +- DOMAIN-SUFFIX,shili.wanyx.com,AdBlock +- DOMAIN-SUFFIX,shiwan.dl.gxpan.cn,AdBlock +- DOMAIN-SUFFIX,shixunjs.th21333.com,AdBlock +- DOMAIN-SUFFIX,shke.kuuad.com,AdBlock +- DOMAIN-SUFFIX,shop.admin.yinyuetai.com,AdBlock +- DOMAIN-SUFFIX,shop.yinyuetai.com,AdBlock +- DOMAIN-SUFFIX,shop265.com,AdBlock +- DOMAIN-SUFFIX,shoppingpartners2.futurenet.com,AdBlock +- DOMAIN-SUFFIX,shouyoutan.com,AdBlock +- DOMAIN-SUFFIX,show.kc.taotaosou.com,AdBlock +- DOMAIN-SUFFIX,show.qx15.com,AdBlock +- DOMAIN-SUFFIX,show.xiazai16.com,AdBlock +- DOMAIN-SUFFIX,showcase.vpsboard.com,AdBlock +- DOMAIN-SUFFIX,showing.hardwareheaven.com,AdBlock +- DOMAIN-SUFFIX,shows.21cn.com,AdBlock +- DOMAIN-SUFFIX,shtt.shuqw.com,AdBlock +- DOMAIN-SUFFIX,shucaihangjia.com,AdBlock +- DOMAIN-SUFFIX,shuiguo.com,AdBlock +- DOMAIN-SUFFIX,shuqw.com,AdBlock +- DOMAIN-SUFFIX,shushijiameng123.com,AdBlock +- DOMAIN-SUFFIX,shuttle.bayescom.com,AdBlock +- DOMAIN-SUFFIX,shuzilm.cn,AdBlock +- DOMAIN-SUFFIX,shxinjie.cn,AdBlock +- DOMAIN-SUFFIX,shzyjbr.wtdtjs.rocks,AdBlock +- DOMAIN-SUFFIX,si9377.com,AdBlock +- DOMAIN-SUFFIX,sicentlife.com,AdBlock +- DOMAIN-SUFFIX,sifubo.cn,AdBlock +- DOMAIN-SUFFIX,sifuce.cn,AdBlock +- DOMAIN-SUFFIX,sifuda.cn,AdBlock +- DOMAIN-SUFFIX,sifufu.cn,AdBlock +- DOMAIN-SUFFIX,sifuge.cn,AdBlock +- DOMAIN-SUFFIX,sifugu.cn,AdBlock +- DOMAIN-SUFFIX,sifuhe.cn,AdBlock +- DOMAIN-SUFFIX,sifuhu.cn,AdBlock +- DOMAIN-SUFFIX,sifuji.cn,AdBlock +- DOMAIN-SUFFIX,sifuka.cn,AdBlock +- DOMAIN-SUFFIX,sigbusa.com,AdBlock +- DOMAIN-SUFFIX,sigo99.com,AdBlock +- DOMAIN-SUFFIX,simba.m.taobao.com,AdBlock +- DOMAIN-SUFFIX,sina.wrating.com,AdBlock +- DOMAIN-SUFFIX,sina.yinstar.org,AdBlock +- DOMAIN-SUFFIX,sinaalicdn.com,AdBlock +- DOMAIN-SUFFIX,sinaaliyun.cn,AdBlock +- DOMAIN-SUFFIX,siqwqjza.m.yikanxiaoshuo.net,AdBlock +- DOMAIN-SUFFIX,sis.jpush.io,AdBlock +- DOMAIN-SUFFIX,sit.gentags.net,AdBlock +- DOMAIN-SUFFIX,sit.pagechoice.net,AdBlock +- DOMAIN-SUFFIX,site.cdnmaster.com,AdBlock +- DOMAIN-SUFFIX,site.img.4tube.com,AdBlock +- DOMAIN-SUFFIX,sitemeter.com,AdBlock +- DOMAIN-SUFFIX,sitemobia.com,AdBlock +- DOMAIN-SUFFIX,sitescout.com,AdBlock +- DOMAIN-SUFFIX,sitetag.us,AdBlock +- DOMAIN-SUFFIX,sj.uukanshu.com,AdBlock +- DOMAIN-SUFFIX,sj1.3987.com,AdBlock +- DOMAIN-SUFFIX,sjj.jsyjwj.com,AdBlock +- DOMAIN-SUFFIX,skatehot.net,AdBlock +- DOMAIN-SUFFIX,sl.xawjwl.com,AdBlock +- DOMAIN-SUFFIX,slb.sxuantang.com,AdBlock +- DOMAIN-SUFFIX,slb.upshengyi.com,AdBlock +- DOMAIN-SUFFIX,slib.tvmao.cn,AdBlock +- DOMAIN-SUFFIX,slides.discovery.tom.com,AdBlock +- DOMAIN-SUFFIX,slog.sina.cn,AdBlock +- DOMAIN-SUFFIX,slog.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,slot.union.ucweb.com,AdBlock +- DOMAIN-SUFFIX,slzs.52xiyou.com,AdBlock +- DOMAIN-SUFFIX,sm.0.0.0.0.cn,AdBlock +- DOMAIN-SUFFIX,sm1.todgo.com,AdBlock +- DOMAIN-SUFFIX,sm2.todgo.com,AdBlock +- DOMAIN-SUFFIX,smartmad.com,AdBlock +- DOMAIN-SUFFIX,smblock.s3.amazonaws.com,AdBlock +- DOMAIN-SUFFIX,smgru.net,AdBlock +- DOMAIN-SUFFIX,smucdn.com,AdBlock +- DOMAIN-SUFFIX,smxay.com,AdBlock +- DOMAIN-SUFFIX,smxsg.com,AdBlock +- DOMAIN-SUFFIX,snap.snapmobile.asia,AdBlock +- DOMAIN-SUFFIX,snapmobileasia.net,AdBlock +- DOMAIN-SUFFIX,sngmta.qq.com,AdBlock +- DOMAIN-SUFFIX,snnnyy.com,AdBlock +- DOMAIN-SUFFIX,snow001.com,AdBlock +- DOMAIN-SUFFIX,so9l.com,AdBlock +- DOMAIN-SUFFIX,soarfi.cn,AdBlock +- DOMAIN-SUFFIX,sobar.baidu.com,AdBlock +- DOMAIN-SUFFIX,sobartop.baidu.com,AdBlock +- DOMAIN-SUFFIX,social-touch.com,AdBlock +- DOMAIN-SUFFIX,sod.onelink.me,AdBlock +- DOMAIN-SUFFIX,soft.chaomeng8.com,AdBlock +- DOMAIN-SUFFIX,soft.zhidian3g.cn,AdBlock +- DOMAIN-SUFFIX,sohu.irs01.com,AdBlock +- DOMAIN-SUFFIX,sohu.wrating.com,AdBlock +- DOMAIN-SUFFIX,somecoding.com,AdBlock +- DOMAIN-SUFFIX,somennew.com,AdBlock +- DOMAIN-SUFFIX,song.fanxing.kugou.com,AdBlock +- DOMAIN-SUFFIX,song001.com,AdBlock +- DOMAIN-SUFFIX,sonomoyo.com,AdBlock +- DOMAIN-SUFFIX,sos0easy.com,AdBlock +- DOMAIN-SUFFIX,sou.dkdlsj.com,AdBlock +- DOMAIN-SUFFIX,sou.xanbhx.com,AdBlock +- DOMAIN-SUFFIX,souid.com,AdBlock +- DOMAIN-SUFFIX,source.youxiaoad.com,AdBlock +- DOMAIN-SUFFIX,sousuo.xm.sjzhushou.com,AdBlock +- DOMAIN-SUFFIX,sp.fastclick.net,AdBlock +- DOMAIN-SUFFIX,sp.gmossp-sp.jp,AdBlock +- DOMAIN-SUFFIX,sp.wndoor.com,AdBlock +- DOMAIN-SUFFIX,sp.yixui.com,AdBlock +- DOMAIN-SUFFIX,sp3.cndm.com,AdBlock +- DOMAIN-SUFFIX,spad.i-mobile.co.jp,AdBlock +- DOMAIN-SUFFIX,spade.twitch.tv,AdBlock +- DOMAIN-SUFFIX,spap.adingo.jp,AdBlock +- DOMAIN-SUFFIX,spap.adingo.jp.eimg.jp,AdBlock +- DOMAIN-SUFFIX,spapi.i-mobile.co.jp,AdBlock +- DOMAIN-SUFFIX,spb.bid.run,AdBlock +- DOMAIN-SUFFIX,spcdnpc.i-mobile.co.jp,AdBlock +- DOMAIN-SUFFIX,spcnv.i-mobile.co.jp,AdBlock +- DOMAIN-SUFFIX,spcode.baidu.com,AdBlock +- DOMAIN-SUFFIX,spdeliver.i-mobile.co.jp,AdBlock +- DOMAIN-SUFFIX,spdmg.i-mobile.co.jp,AdBlock +- DOMAIN-SUFFIX,spdmg-backend.i-mobile.co.jp,AdBlock +- DOMAIN-SUFFIX,sphwq.net,AdBlock +- DOMAIN-SUFFIX,spnet2-1.i-mobile.co.jp,AdBlock +- DOMAIN-SUFFIX,spnet33.i-mobile.co.jp,AdBlock +- DOMAIN-SUFFIX,sponsorpay.com,AdBlock +- DOMAIN-SUFFIX,sponsors.s2ki.com,AdBlock +- DOMAIN-SUFFIX,sponsors.webosroundup.com,AdBlock +- DOMAIN-SUFFIX,spproxy.autobytel.com,AdBlock +- DOMAIN-SUFFIX,spro.so.com,AdBlock +- DOMAIN-SUFFIX,spt.dictionary.com,AdBlock +- DOMAIN-SUFFIX,sqd.jstdjq.com,AdBlock +- DOMAIN-SUFFIX,sqext.com,AdBlock +- DOMAIN-SUFFIX,sqtpks3.1391.com,AdBlock +- DOMAIN-SUFFIX,squarespace.evyy.net,AdBlock +- DOMAIN-SUFFIX,src.duanxin520.com,AdBlock +- DOMAIN-SUFFIX,src.leju.com,AdBlock +- DOMAIN-SUFFIX,src.zf313.com,AdBlock +- DOMAIN-SUFFIX,srd.simba.taobao.com,AdBlock +- DOMAIN-SUFFIX,srhuafeng.com,AdBlock +- DOMAIN-SUFFIX,srv.carbonads.net,AdBlock +- DOMAIN-SUFFIX,srv.revdepo.com,AdBlock +- DOMAIN-SUFFIX,srv.thespacereporter.com,AdBlock +- DOMAIN-SUFFIX,ss.cnczjy.com,AdBlock +- DOMAIN-SUFFIX,ss.cnnic.cn,AdBlock +- DOMAIN-SUFFIX,ss.he9630.com,AdBlock +- DOMAIN-SUFFIX,ss.knet.cn,AdBlock +- DOMAIN-SUFFIX,ss.missyouxi.com,AdBlock +- DOMAIN-SUFFIX,ss.shicimingju.com,AdBlock +- DOMAIN-SUFFIX,ss.shuajuzu.com,AdBlock +- DOMAIN-SUFFIX,ss.subo.me,AdBlock +- DOMAIN-SUFFIX,ss.swagger1.com,AdBlock +- DOMAIN-SUFFIX,ss.sysad.cn,AdBlock +- DOMAIN-SUFFIX,ss.sysadult.cn,AdBlock +- DOMAIN-SUFFIX,ssac.suning.com,AdBlock +- DOMAIN-SUFFIX,sscefsol.com,AdBlock +- DOMAIN-SUFFIX,sscefsol.com.cn,AdBlock +- DOMAIN-SUFFIX,ssdaili.com,AdBlock +- DOMAIN-SUFFIX,ssh.hxlif.com,AdBlock +- DOMAIN-SUFFIX,ssh.jsyzw132.com,AdBlock +- DOMAIN-SUFFIX,ssh.lifu11.com,AdBlock +- DOMAIN-SUFFIX,ssh.szxiuchang.com,AdBlock +- DOMAIN-SUFFIX,ssh.yezijizhang.com,AdBlock +- DOMAIN-SUFFIX,ssjpx.com,AdBlock +- DOMAIN-SUFFIX,ssjy168.com,AdBlock +- DOMAIN-SUFFIX,ssl.google-analytics.com,AdBlock +- DOMAIN-SUFFIX,ssl.hyhzy.cn,AdBlock +- DOMAIN-SUFFIX,ssl.ymapp.com,AdBlock +- DOMAIN-SUFFIX,ssl-cdn.media.innity.net,AdBlock +- DOMAIN-SUFFIX,sso-cas.gridsumdissector.com,AdBlock +- DOMAIN-SUFFIX,ssp.08160.cn,AdBlock +- DOMAIN-SUFFIX,ssp.1rtb.com,AdBlock +- DOMAIN-SUFFIX,ssp.4hw.com.cn,AdBlock +- DOMAIN-SUFFIX,ssp.86str.com,AdBlock +- DOMAIN-SUFFIX,ssp.chaohutechan.com,AdBlock +- DOMAIN-SUFFIX,ssp.cibn.starschina.com,AdBlock +- DOMAIN-SUFFIX,ssp.daxueshengqiandai.com,AdBlock +- DOMAIN-SUFFIX,ssp.dmpdsp.com,AdBlock +- DOMAIN-SUFFIX,ssp.kjwx8.com,AdBlock +- DOMAIN-SUFFIX,ssp.kss.ksyun.com,AdBlock +- DOMAIN-SUFFIX,ssp.kssws.ks-cdn.com,AdBlock +- DOMAIN-SUFFIX,ssp.kxly360.com,AdBlock +- DOMAIN-SUFFIX,ssp.pro.cn,AdBlock +- DOMAIN-SUFFIX,ssp.tadseeker.com,AdBlock +- DOMAIN-SUFFIX,ssp.thescenseproject.com,AdBlock +- DOMAIN-SUFFIX,ssp.youxiaoad.com,AdBlock +- DOMAIN-SUFFIX,ssp.zf313.com,AdBlock +- DOMAIN-SUFFIX,ssp1.dmpdsp.com,AdBlock +- DOMAIN-SUFFIX,sspapi.youxiaoad.com,AdBlock +- DOMAIN-SUFFIX,ssp-bidder.i-mobile.co.jp,AdBlock +- DOMAIN-SUFFIX,ssp-rtb.sape.ru,AdBlock +- DOMAIN-SUFFIX,sss.jusha.com,AdBlock +- DOMAIN-SUFFIX,sss.sege.xxx,AdBlock +- DOMAIN-SUFFIX,sss.soarfi.cn,AdBlock +- DOMAIN-SUFFIX,sss.wzjmr.com,AdBlock +- DOMAIN-SUFFIX,sss.zbred.com,AdBlock +- DOMAIN-SUFFIX,sssvd.china.com,AdBlock +- DOMAIN-SUFFIX,sstc360.com,AdBlock +- DOMAIN-SUFFIX,ssum.casalemedia.com,AdBlock +- DOMAIN-SUFFIX,st.holalauncher.com,AdBlock +- DOMAIN-SUFFIX,st.holaworld.cn,AdBlock +- DOMAIN-SUFFIX,st.targetix.net,AdBlock +- DOMAIN-SUFFIX,st.yandexadexchange.net,AdBlock +- DOMAIN-SUFFIX,st.yengo.com,AdBlock +- DOMAIN-SUFFIX,sta.ganji.com,AdBlock +- DOMAIN-SUFFIX,sta.haloall.com,AdBlock +- DOMAIN-SUFFIX,sta.holagames.com,AdBlock +- DOMAIN-SUFFIX,sta.jcjk0451.com,AdBlock +- DOMAIN-SUFFIX,stadig.ifeng.com,AdBlock +- DOMAIN-SUFFIX,stadig0.ifeng.com,AdBlock +- DOMAIN-SUFFIX,staging.admin.e.mi.com,AdBlock +- DOMAIN-SUFFIX,staqnet.com,AdBlock +- DOMAIN-SUFFIX,star8.net,AdBlock +- DOMAIN-SUFFIX,startapp.com,AdBlock +- DOMAIN-SUFFIX,startappexchange.com,AdBlock +- DOMAIN-SUFFIX,startappservice.com,AdBlock +- DOMAIN-SUFFIX,startup.oupeng.com,AdBlock +- DOMAIN-SUFFIX,static1.kewaishu.info,AdBlock +- DOMAIN-SUFFIX,staticadm.leju.com,AdBlock +- DOMAIN-SUFFIX,staticadm.leju.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,staticjs.cn,AdBlock +- DOMAIN-SUFFIX,statics.3987.com,AdBlock +- DOMAIN-SUFFIX,statics.9669.com,AdBlock +- DOMAIN-SUFFIX,statics.woozooo.com,AdBlock +- DOMAIN-SUFFIX,statictest.fraudmetrix.cn,AdBlock +- DOMAIN-SUFFIX,static-xl9-ssl.xunlei.com,AdBlock +- DOMAIN-SUFFIX,staticxx.facebook.com,AdBlock +- DOMAIN-SUFFIX,statisticsv2.yinyuetai.com,AdBlock +- DOMAIN-SUFFIX,stat-y.xywy.com,AdBlock +- DOMAIN-SUFFIX,stat-z.xywy.com,AdBlock +- DOMAIN-SUFFIX,steelhousemedia.com,AdBlock +- DOMAIN-SUFFIX,stervapoimenialena.info,AdBlock +- DOMAIN-SUFFIX,stg8.com,AdBlock +- DOMAIN-SUFFIX,stjzh.gdtarget.com,AdBlock +- DOMAIN-SUFFIX,st-n.ads3-adnow.com,AdBlock +- DOMAIN-SUFFIX,stn88.com,AdBlock +- DOMAIN-SUFFIX,stocksbsc.com,AdBlock +- DOMAIN-SUFFIX,storeconfig.mistat.xiaomi.com,AdBlock +- DOMAIN-SUFFIX,storewidget.pcauthority.com.au,AdBlock +- DOMAIN-SUFFIX,stream.heavenmedia.net,AdBlock +- DOMAIN-SUFFIX,stream.shuzilm.cn,AdBlock +- DOMAIN-SUFFIX,streaming.rtbiddingplatform.com,AdBlock +- DOMAIN-SUFFIX,strip.alicdn.com,AdBlock +- DOMAIN-SUFFIX,strip.taobaocdn.com,AdBlock +- DOMAIN-SUFFIX,su.8881919.cc,AdBlock +- DOMAIN-SUFFIX,su.bdimg.com,AdBlock +- DOMAIN-SUFFIX,su.bdstatic.com,AdBlock +- DOMAIN-SUFFIX,sub.powerapple.com,AdBlock +- DOMAIN-SUFFIX,sub.topber.com,AdBlock +- DOMAIN-SUFFIX,subswin.com,AdBlock +- DOMAIN-SUFFIX,sucodb.com,AdBlock +- DOMAIN-SUFFIX,sugar.zhihu.com,AdBlock +- DOMAIN-SUFFIX,sunjianhao.com,AdBlock +- DOMAIN-SUFFIX,suoooi.cn,AdBlock +- DOMAIN-SUFFIX,super.cat898.com,AdBlock +- DOMAIN-SUFFIX,super.kdnet.net,AdBlock +- DOMAIN-SUFFIX,supfast.net,AdBlock +- DOMAIN-SUFFIX,surv.xbizmedia.com,AdBlock +- DOMAIN-SUFFIX,susapi.dev.surepush.cn,AdBlock +- DOMAIN-SUFFIX,susapi.lenovomm.com,AdBlock +- DOMAIN-SUFFIX,suvset.sohu.com,AdBlock +- DOMAIN-SUFFIX,sv719.dreamdays.cn,AdBlock +- DOMAIN-SUFFIX,sw.cailawyer.cn,AdBlock +- DOMAIN-SUFFIX,sw.mobile.sogou.com,AdBlock +- DOMAIN-SUFFIX,swa.gtimg.com,AdBlock +- DOMAIN-SUFFIX,swappdl.duoyi.com,AdBlock +- DOMAIN-SUFFIX,switchadhub.com,AdBlock +- DOMAIN-SUFFIX,switching.atm.punchbox.org,AdBlock +- DOMAIN-SUFFIX,swpgjai.pop.weddingeeos.com,AdBlock +- DOMAIN-SUFFIX,swx.0.0.0.0.cn,AdBlock +- DOMAIN-SUFFIX,sxbhzs.net,AdBlock +- DOMAIN-SUFFIX,sxdyrq.com,AdBlock +- DOMAIN-SUFFIX,sxjxhg.com,AdBlock +- DOMAIN-SUFFIX,sxz67.com,AdBlock +- DOMAIN-SUFFIX,sy.code.mytanwan.com,AdBlock +- DOMAIN-SUFFIX,sy.flash.mytanwan.com,AdBlock +- DOMAIN-SUFFIX,sy.jlhygy.com,AdBlock +- DOMAIN-SUFFIX,sy.kcxsyz.com,AdBlock +- DOMAIN-SUFFIX,sy.shongcheng.com,AdBlock +- DOMAIN-SUFFIX,sy.sxjxhg.com,AdBlock +- DOMAIN-SUFFIX,sycbbs.com,AdBlock +- DOMAIN-SUFFIX,sy-cdnres.unionsy.com,AdBlock +- DOMAIN-SUFFIX,syilm.net,AdBlock +- DOMAIN-SUFFIX,sykty.com,AdBlock +- DOMAIN-SUFFIX,symaj.cn,AdBlock +- DOMAIN-SUFFIX,synacast.com,AdBlock +- DOMAIN-SUFFIX,sync.1dmp.io,AdBlock +- DOMAIN-SUFFIX,sync.1rx.io,AdBlock +- DOMAIN-SUFFIX,sync.adotmob.com,AdBlock +- DOMAIN-SUFFIX,sync.audsp.com,AdBlock +- DOMAIN-SUFFIX,sync.audtd.com,AdBlock +- DOMAIN-SUFFIX,sync.crwdcntrl.net,AdBlock +- DOMAIN-SUFFIX,sync.extend.tv,AdBlock +- DOMAIN-SUFFIX,sync.fastclick.net,AdBlock +- DOMAIN-SUFFIX,sync.intentiq.com,AdBlock +- DOMAIN-SUFFIX,sync.ipredictive.com,AdBlock +- DOMAIN-SUFFIX,sync.mathtag.com,AdBlock +- DOMAIN-SUFFIX,sync.morgdm.ru,AdBlock +- DOMAIN-SUFFIX,sync.rambler.ru,AdBlock +- DOMAIN-SUFFIX,sync.republer.com,AdBlock +- DOMAIN-SUFFIX,sync.teamrtb.net,AdBlock +- DOMAIN-SUFFIX,sync.tidaltv.com,AdBlock +- DOMAIN-SUFFIX,sync2.audtd.com,AdBlock +- DOMAIN-SUFFIX,sync-dsp.ad-m.asia,AdBlock +- DOMAIN-SUFFIX,sync-eu.exe.bid,AdBlock +- DOMAIN-SUFFIX,sync-tm.everesttech.net,AdBlock +- DOMAIN-SUFFIX,syndication.exdynsrv.com,AdBlock +- DOMAIN-SUFFIX,syndication.exoclick.com,AdBlock +- DOMAIN-SUFFIX,syndication.intel.com,AdBlock +- DOMAIN-SUFFIX,syndication.jsadapi.com,AdBlock +- DOMAIN-SUFFIX,syndication.twitter.com,AdBlock +- DOMAIN-SUFFIX,syndication1.viraladnetwork.net,AdBlock +- DOMAIN-SUFFIX,syndication-o.twitter.com,AdBlock +- DOMAIN-SUFFIX,syofew6o.net,AdBlock +- DOMAIN-SUFFIX,sys.zhangyue.com,AdBlock +- DOMAIN-SUFFIX,sysdig.com,AdBlock +- DOMAIN-SUFFIX,sytcyf.com,AdBlock +- DOMAIN-SUFFIX,sytsr.com,AdBlock +- DOMAIN-SUFFIX,sytz1288.com,AdBlock +- DOMAIN-SUFFIX,szb.aiyole.com,AdBlock +- DOMAIN-SUFFIX,szdzbx.com,AdBlock +- DOMAIN-SUFFIX,szfaq.com,AdBlock +- DOMAIN-SUFFIX,szggdw.com,AdBlock +- DOMAIN-SUFFIX,szkdst.com,AdBlock +- DOMAIN-SUFFIX,szrk3.com,AdBlock +- DOMAIN-SUFFIX,szshouzhai.com,AdBlock +- DOMAIN-SUFFIX,szxc868.com,AdBlock +- DOMAIN-SUFFIX,szxpsg.com,AdBlock +- DOMAIN-SUFFIX,szyr474.com,AdBlock +- DOMAIN-SUFFIX,t.2d-c.cn,AdBlock +- DOMAIN-SUFFIX,t.3apf.com,AdBlock +- DOMAIN-SUFFIX,t.adbxb.cn,AdBlock +- DOMAIN-SUFFIX,t.adcrops.net,AdBlock +- DOMAIN-SUFFIX,t.adxchina.cn,AdBlock +- DOMAIN-SUFFIX,t.atpanel.com,AdBlock +- DOMAIN-SUFFIX,t.cnsjx.net,AdBlock +- DOMAIN-SUFFIX,t.collect.yinyuetai.com,AdBlock +- DOMAIN-SUFFIX,t.cr-nielsen.com,AdBlock +- DOMAIN-SUFFIX,t.cyuew.com,AdBlock +- DOMAIN-SUFFIX,t.d.yoyi.tv,AdBlock +- DOMAIN-SUFFIX,t.dangdang.com,AdBlock +- DOMAIN-SUFFIX,t.dmtrck.com,AdBlock +- DOMAIN-SUFFIX,t.go.sohu.com,AdBlock +- DOMAIN-SUFFIX,t.growingio.com,AdBlock +- DOMAIN-SUFFIX,t.iz55.com,AdBlock +- DOMAIN-SUFFIX,t.oq68.com,AdBlock +- DOMAIN-SUFFIX,t.pingzei.com,AdBlock +- DOMAIN-SUFFIX,t.qiuqiuqipai.com,AdBlock +- DOMAIN-SUFFIX,t.sj.qq.com,AdBlock +- DOMAIN-SUFFIX,t.supermario.xyz,AdBlock +- DOMAIN-SUFFIX,t.trafmag.com,AdBlock +- DOMAIN-SUFFIX,t.tzcccm.com,AdBlock +- DOMAIN-SUFFIX,t.ujian.cc,AdBlock +- DOMAIN-SUFFIX,t.uvcourse.net,AdBlock +- DOMAIN-SUFFIX,t.youmi.net,AdBlock +- DOMAIN-SUFFIX,t1.58cdn.com.cn,AdBlock +- DOMAIN-SUFFIX,t1.jzkapp.com,AdBlock +- DOMAIN-SUFFIX,t1.visualrevenue.com,AdBlock +- DOMAIN-SUFFIX,t1.wshufa.com,AdBlock +- DOMAIN-SUFFIX,t188.dazhonghua.cn,AdBlock +- DOMAIN-SUFFIX,t2.58cdn.com.cn,AdBlock +- DOMAIN-SUFFIX,t2.jzkapp.com,AdBlock +- DOMAIN-SUFFIX,t2.vbxx.net,AdBlock +- DOMAIN-SUFFIX,t2.wshufa.com,AdBlock +- DOMAIN-SUFFIX,t3.58cdn.com.cn,AdBlock +- DOMAIN-SUFFIX,t70123.com,AdBlock +- DOMAIN-SUFFIX,t75.qyqc4s.com,AdBlock +- DOMAIN-SUFFIX,ta.qq.com,AdBlock +- DOMAIN-SUFFIX,ta80.com,AdBlock +- DOMAIN-SUFFIX,taat00889.com,AdBlock +- DOMAIN-SUFFIX,tactics.bainv.net,AdBlock +- DOMAIN-SUFFIX,tad.suning.com,AdBlock +- DOMAIN-SUFFIX,tag.cdnmaster.cn,AdBlock +- DOMAIN-SUFFIX,tag.digitaltarget.ru,AdBlock +- DOMAIN-SUFFIX,tags.growingio.com,AdBlock +- DOMAIN-SUFFIX,tags2.adshell.net,AdBlock +- DOMAIN-SUFFIX,tags4.revdepo.com,AdBlock +- DOMAIN-SUFFIX,tajs.qq.com,AdBlock +- DOMAIN-SUFFIX,tajxgs.com,AdBlock +- DOMAIN-SUFFIX,talk.nz.igexin.com,AdBlock +- DOMAIN-SUFFIX,tangoutianxia.com,AdBlock +- DOMAIN-SUFFIX,tansuotv.com,AdBlock +- DOMAIN-SUFFIX,tanwanyx.com,AdBlock +- DOMAIN-SUFFIX,tanx.com,AdBlock +- DOMAIN-SUFFIX,tanxlog.istreamsche.com,AdBlock +- DOMAIN-SUFFIX,tanzanite.infomine.com,AdBlock +- DOMAIN-SUFFIX,taobaly.cn,AdBlock +- DOMAIN-SUFFIX,taobaoaliyun.cn,AdBlock +- DOMAIN-SUFFIX,taobaobo5.com,AdBlock +- DOMAIN-SUFFIX,taobayun.cn,AdBlock +- DOMAIN-SUFFIX,taoggou.com,AdBlock +- DOMAIN-SUFFIX,taohanpai.com,AdBlock +- DOMAIN-SUFFIX,taomato.com,AdBlock +- DOMAIN-SUFFIX,tap.rubiconproject.com,AdBlock +- DOMAIN-SUFFIX,tap-cdn.rubiconproject.com,AdBlock +- DOMAIN-SUFFIX,tapjoy.cn,AdBlock +- DOMAIN-SUFFIX,tapjoy.com,AdBlock +- DOMAIN-SUFFIX,tapjoyads.com,AdBlock +- DOMAIN-SUFFIX,tap-t.rubiconproject.com,AdBlock +- DOMAIN-SUFFIX,targetedinfo.com,AdBlock +- DOMAIN-SUFFIX,targetedmedia.com.cn,AdBlock +- DOMAIN-SUFFIX,targetedtopic.com,AdBlock +- DOMAIN-SUFFIX,tatagou.com.cn,AdBlock +- DOMAIN-SUFFIX,tb.code.twyxi.com,AdBlock +- DOMAIN-SUFFIX,tb060x.corp.youdao.com,AdBlock +- DOMAIN-SUFFIX,tb104x.corp.youdao.com,AdBlock +- DOMAIN-SUFFIX,tbaocdn.com,AdBlock +- DOMAIN-SUFFIX,tbjfw.com,AdBlock +- DOMAIN-SUFFIX,tc.51la.net,AdBlock +- DOMAIN-SUFFIX,tc.ci123.com,AdBlock +- DOMAIN-SUFFIX,tc600.com,AdBlock +- DOMAIN-SUFFIX,tcad.wedolook.com,AdBlock +- DOMAIN-SUFFIX,tcjy66.cc,AdBlock +- DOMAIN-SUFFIX,tcss.qq.com,AdBlock +- DOMAIN-SUFFIX,tcxshop.com,AdBlock +- DOMAIN-SUFFIX,td.mpush.cn,AdBlock +- DOMAIN-SUFFIX,td.xue63.com,AdBlock +- DOMAIN-SUFFIX,tdayi.com,AdBlock +- DOMAIN-SUFFIX,t-e.flyme.cn,AdBlock +- DOMAIN-SUFFIX,teen.77rog.com,AdBlock +- DOMAIN-SUFFIX,telstra.imrworldwide.com,AdBlock +- DOMAIN-SUFFIX,temai.snssdk.com,AdBlock +- DOMAIN-SUFFIX,temai.taobao.com,AdBlock +- DOMAIN-SUFFIX,temp.163.com,AdBlock +- DOMAIN-SUFFIX,tencentmind.com,AdBlock +- DOMAIN-SUFFIX,tenddata.com,AdBlock +- DOMAIN-SUFFIX,test.api.xlmc.sandai.net,AdBlock +- DOMAIN-SUFFIX,test.eduancm.com,AdBlock +- DOMAIN-SUFFIX,test.surepush.cn,AdBlock +- DOMAIN-SUFFIX,textlink.simba.taobao.com,AdBlock +- DOMAIN-SUFFIX,tf.caohua.com,AdBlock +- DOMAIN-SUFFIX,tf.hdfdm.com,AdBlock +- DOMAIN-SUFFIX,tf.hftaili.com,AdBlock +- DOMAIN-SUFFIX,t-flow.flyme.cn,AdBlock +- DOMAIN-SUFFIX,tfssl.caohua.com,AdBlock +- DOMAIN-SUFFIX,tg.1155t.cn,AdBlock +- DOMAIN-SUFFIX,tg.52digua.com,AdBlock +- DOMAIN-SUFFIX,tg.jifen.2345.com,AdBlock +- DOMAIN-SUFFIX,tg.m.37.com,AdBlock +- DOMAIN-SUFFIX,tga.csbew.com,AdBlock +- DOMAIN-SUFFIX,tgb.csbew.com,AdBlock +- DOMAIN-SUFFIX,th21333.com,AdBlock +- DOMAIN-SUFFIX,th7.cn,AdBlock +- DOMAIN-SUFFIX,thejesperbay.com,AdBlock +- DOMAIN-SUFFIX,themis.yahoo.com,AdBlock +- DOMAIN-SUFFIX,thescenseproject.com,AdBlock +- DOMAIN-SUFFIX,thetestpage.39.net,AdBlock +- DOMAIN-SUFFIX,thirdparty.biliapi.com,AdBlock +- DOMAIN-SUFFIX,thoughtleadr.com,AdBlock +- DOMAIN-SUFFIX,thxnr.com,AdBlock +- DOMAIN-SUFFIX,thyvjboy.com,AdBlock +- DOMAIN-SUFFIX,thztv.net,AdBlock +- DOMAIN-SUFFIX,ti.tradetracker.net,AdBlock +- DOMAIN-SUFFIX,tiads.time.com,AdBlock +- DOMAIN-SUFFIX,tiangoutai.com,AdBlock +- DOMAIN-SUFFIX,tiangu99.com,AdBlock +- DOMAIN-SUFFIX,tianmidian.com,AdBlock +- DOMAIN-SUFFIX,tianqi777.com,AdBlock +- DOMAIN-SUFFIX,tianyanzs.com,AdBlock +- DOMAIN-SUFFIX,ticcdn.com,AdBlock +- DOMAIN-SUFFIX,timelog.moviebox.baofeng.com,AdBlock +- DOMAIN-SUFFIX,tiqcdn.com,AdBlock +- DOMAIN-SUFFIX,titan.babytree.com,AdBlock +- DOMAIN-SUFFIX,titan.guestworld.tripod.lycos.com,AdBlock +- DOMAIN-SUFFIX,titan01.babytree.com,AdBlock +- DOMAIN-SUFFIX,titi.qifajiang.cn,AdBlock +- DOMAIN-SUFFIX,tjf.lyhuayun.com,AdBlock +- DOMAIN-SUFFIX,tjhuajiantang.com,AdBlock +- DOMAIN-SUFFIX,tjlog.easou.com,AdBlock +- DOMAIN-SUFFIX,tjlog.ps.easou.com,AdBlock +- DOMAIN-SUFFIX,tjqonline.cn,AdBlock +- DOMAIN-SUFFIX,tjs.sjs.sinajs.cn,AdBlock +- DOMAIN-SUFFIX,tk.baidu.com,AdBlock +- DOMAIN-SUFFIX,tk.optaim.com,AdBlock +- DOMAIN-SUFFIX,tkd777.cn,AdBlock +- DOMAIN-SUFFIX,tkmdng.cn,AdBlock +- DOMAIN-SUFFIX,tkweb.baidu.com,AdBlock +- DOMAIN-SUFFIX,t-l.play.aiseet.atianqi.com,AdBlock +- DOMAIN-SUFFIX,tmcs.net,AdBlock +- DOMAIN-SUFFIX,tmisc.home.news.cn,AdBlock +- DOMAIN-SUFFIX,tns-counter.ru,AdBlock +- DOMAIN-SUFFIX,token.rubiconproject.com,AdBlock +- DOMAIN-SUFFIX,tongji-res1.meizu.com,AdBlock +- DOMAIN-SUFFIX,tongqing2015.com,AdBlock +- DOMAIN-SUFFIX,tool.btrabbit.la,AdBlock +- DOMAIN-SUFFIX,toolbar.baidu.com,AdBlock +- DOMAIN-SUFFIX,toolbar.msn.com,AdBlock +- DOMAIN-SUFFIX,toourbb.com,AdBlock +- DOMAIN-SUFFIX,top.h.qhimg.com,AdBlock +- DOMAIN-SUFFIX,top.h.qhmsg.com,AdBlock +- DOMAIN-SUFFIX,top267.com,AdBlock +- DOMAIN-SUFFIX,topitme.com,AdBlock +- DOMAIN-SUFFIX,total.xinmin.cn,AdBlock +- DOMAIN-SUFFIX,touclick.com,AdBlock +- DOMAIN-SUFFIX,toutiao.2haha.com,AdBlock +- DOMAIN-SUFFIX,toutiao.jxnews.com.cn,AdBlock +- DOMAIN-SUFFIX,tp.sgcn.com,AdBlock +- DOMAIN-SUFFIX,tpc.googlesyndication.com,AdBlock +- DOMAIN-SUFFIX,tpe163.com,AdBlock +- DOMAIN-SUFFIX,tpush.html5.qq.com,AdBlock +- DOMAIN-SUFFIX,tqd.ntpddq.com,AdBlock +- DOMAIN-SUFFIX,track-east.mobileadtrading.com,AdBlock +- DOMAIN-SUFFIX,trackersimulator.org,AdBlock +- DOMAIN-SUFFIX,tracking-server-prod-1.zenmxapps.com,AdBlock +- DOMAIN-SUFFIX,tradeadexchange.com,AdBlock +- DOMAIN-SUFFIX,tradeccl.com,AdBlock +- DOMAIN-SUFFIX,trafficfactory.biz,AdBlock +- DOMAIN-SUFFIX,trafficjam.cn,AdBlock +- DOMAIN-SUFFIX,trafficjunky.net,AdBlock +- DOMAIN-SUFFIX,trafficmp.com,AdBlock +- DOMAIN-SUFFIX,tralog.ganji.com,AdBlock +- DOMAIN-SUFFIX,tran.news.so.com,AdBlock +- DOMAIN-SUFFIX,tredman.com,AdBlock +- DOMAIN-SUFFIX,trends.mobile.sina.cn,AdBlock +- DOMAIN-SUFFIX,trial.alcohol-soft.com,AdBlock +- DOMAIN-SUFFIX,trwba.com,AdBlock +- DOMAIN-SUFFIX,trzina.com,AdBlock +- DOMAIN-SUFFIX,ts.hivecn.cn,AdBlock +- DOMAIN-SUFFIX,tsdlp.com,AdBlock +- DOMAIN-SUFFIX,tsjdgzm.m.3dllc.cc,AdBlock +- DOMAIN-SUFFIX,tsrc8.com,AdBlock +- DOMAIN-SUFFIX,tt.biquge.la,AdBlock +- DOMAIN-SUFFIX,tt.shxinjie.cn,AdBlock +- DOMAIN-SUFFIX,tt.twzui6.com,AdBlock +- DOMAIN-SUFFIX,tt123.eastday.com,AdBlock +- DOMAIN-SUFFIX,tt321.eastday.com,AdBlock +- DOMAIN-SUFFIX,ttcdn.cn,AdBlock +- DOMAIN-SUFFIX,ttlm.cc,AdBlock +- DOMAIN-SUFFIX,ttlowe.com,AdBlock +- DOMAIN-SUFFIX,ttm.htfmbt.com,AdBlock +- DOMAIN-SUFFIX,ttts.leztc.com,AdBlock +- DOMAIN-SUFFIX,ttts.miyue17.com,AdBlock +- DOMAIN-SUFFIX,tu.baixing.com,AdBlock +- DOMAIN-SUFFIX,tu.njflfd.com,AdBlock +- DOMAIN-SUFFIX,tu.szefe.com,AdBlock +- DOMAIN-SUFFIX,tuadong.com,AdBlock +- DOMAIN-SUFFIX,tuanxue360.net,AdBlock +- DOMAIN-SUFFIX,tui.gtimg.com,AdBlock +- DOMAIN-SUFFIX,tui1999.com,AdBlock +- DOMAIN-SUFFIX,tui98.cn,AdBlock +- DOMAIN-SUFFIX,tuia.cn,AdBlock +- DOMAIN-SUFFIX,tuidang.epochtimes.org,AdBlock +- DOMAIN-SUFFIX,tuidang.org,AdBlock +- DOMAIN-SUFFIX,tuigoo.com,AdBlock +- DOMAIN-SUFFIX,tuiguang.178.com,AdBlock +- DOMAIN-SUFFIX,tuiguang.meitu.com,AdBlock +- DOMAIN-SUFFIX,tuiguang.yicha.cn,AdBlock +- DOMAIN-SUFFIX,tuijian.baidu.com,AdBlock +- DOMAIN-SUFFIX,tuipenguin.com,AdBlock +- DOMAIN-SUFFIX,tuisong.baidu.com,AdBlock +- DOMAIN-SUFFIX,tuitiger.com,AdBlock +- DOMAIN-SUFFIX,tuituigui19999.com,AdBlock +- DOMAIN-SUFFIX,tujidao.com,AdBlock +- DOMAIN-SUFFIX,tukeai.com,AdBlock +- DOMAIN-SUFFIX,tukexiu.com,AdBlock +- DOMAIN-SUFFIX,tukj.net,AdBlock +- DOMAIN-SUFFIX,tumblrprobes.cedexis.com,AdBlock +- DOMAIN-SUFFIX,tumblrreports.cedexis.com,AdBlock +- DOMAIN-SUFFIX,tunion-api.m.taobao.com,AdBlock +- DOMAIN-SUFFIX,turn.com,AdBlock +- DOMAIN-SUFFIX,tv.code.jjyx.com,AdBlock +- DOMAIN-SUFFIX,tw.adon.vpon.com,AdBlock +- DOMAIN-SUFFIX,tw.adx.nextmedia.com,AdBlock +- DOMAIN-SUFFIX,tw.api.vpon.com,AdBlock +- DOMAIN-SUFFIX,tw.fgmtv.org,AdBlock +- DOMAIN-SUFFIX,tw.pub.vpon.com,AdBlock +- DOMAIN-SUFFIX,tw13b093.sandai.net,AdBlock +- DOMAIN-SUFFIX,twb98.com,AdBlock +- DOMAIN-SUFFIX,twcczhu.com,AdBlock +- DOMAIN-SUFFIX,twh5.com,AdBlock +- DOMAIN-SUFFIX,twinplan.com,AdBlock +- DOMAIN-SUFFIX,twitterzs.com,AdBlock +- DOMAIN-SUFFIX,twldmx.com,AdBlock +- DOMAIN-SUFFIX,twzui6.com,AdBlock +- DOMAIN-SUFFIX,tx.lwinl.com,AdBlock +- DOMAIN-SUFFIX,txt.go.sohu.com,AdBlock +- DOMAIN-SUFFIX,txtad.jijiplayer.com,AdBlock +- DOMAIN-SUFFIX,tylll.com,AdBlock +- DOMAIN-SUFFIX,tyu.quanliyouxi.cn,AdBlock +- DOMAIN-SUFFIX,tyx.xtzxmy.com,AdBlock +- DOMAIN-SUFFIX,tz.1688988.com,AdBlock +- DOMAIN-SUFFIX,tz.zjhoudao.com,AdBlock +- DOMAIN-SUFFIX,tzbtw.com,AdBlock +- DOMAIN-SUFFIX,tz-dsp.com,AdBlock +- DOMAIN-SUFFIX,u.63kc.com,AdBlock +- DOMAIN-SUFFIX,u.cnzol.com,AdBlock +- DOMAIN-SUFFIX,u.ddvip.com,AdBlock +- DOMAIN-SUFFIX,u.diannaodian.com,AdBlock +- DOMAIN-SUFFIX,u.huoying666.com,AdBlock +- DOMAIN-SUFFIX,u.jimdo.com,AdBlock +- DOMAIN-SUFFIX,u.qijipc.com,AdBlock +- DOMAIN-SUFFIX,u.raidmedia.com.cn,AdBlock +- DOMAIN-SUFFIX,u.uc123.com,AdBlock +- DOMAIN-SUFFIX,u.ucfly.com,AdBlock +- DOMAIN-SUFFIX,u.xcy8.com,AdBlock +- DOMAIN-SUFFIX,u.yiiwoo.com,AdBlock +- DOMAIN-SUFFIX,u.yizuya.com,AdBlock +- DOMAIN-SUFFIX,u0.s.minisplat.cn,AdBlock +- DOMAIN-SUFFIX,u034024.nr1234.com,AdBlock +- DOMAIN-SUFFIX,u1.img.mobile.sina.cn,AdBlock +- DOMAIN-SUFFIX,u1.s.minisplat.cn,AdBlock +- DOMAIN-SUFFIX,u1.shuaiku.com,AdBlock +- DOMAIN-SUFFIX,u2.s.minisplat.cn,AdBlock +- DOMAIN-SUFFIX,u291014.nr1234.com,AdBlock +- DOMAIN-SUFFIX,u349036.ff112222.com,AdBlock +- DOMAIN-SUFFIX,ua.badongo.com,AdBlock +- DOMAIN-SUFFIX,uapi.punchbox.org,AdBlock +- DOMAIN-SUFFIX,ubm.fangtoo.com,AdBlock +- DOMAIN-SUFFIX,uc.haoyunyuan.cc,AdBlock +- DOMAIN-SUFFIX,uc.xiansuper.com,AdBlock +- DOMAIN-SUFFIX,uc2.atobo.com.cn,AdBlock +- DOMAIN-SUFFIX,uc610.com,AdBlock +- DOMAIN-SUFFIX,uc9.ucweb.com,AdBlock +- DOMAIN-SUFFIX,ucaliyun.cn,AdBlock +- DOMAIN-SUFFIX,ucan.25pp.com,AdBlock +- DOMAIN-SUFFIX,ucqq.cnsptv.com.cn,AdBlock +- DOMAIN-SUFFIX,ucrzgcs.cn,AdBlock +- DOMAIN-SUFFIX,ucstat.baidu.com,AdBlock +- DOMAIN-SUFFIX,ucus.ucweb.com,AdBlock +- DOMAIN-SUFFIX,ucxxii.com,AdBlock +- DOMAIN-SUFFIX,uczzd.com,AdBlock +- DOMAIN-SUFFIX,uczzd.com.cn,AdBlock +- DOMAIN-SUFFIX,uczzd.net,AdBlock +- DOMAIN-SUFFIX,udata.mixmarket.biz,AdBlock +- DOMAIN-SUFFIX,udc.msn.com,AdBlock +- DOMAIN-SUFFIX,udm.scorecardresearch.com,AdBlock +- DOMAIN-SUFFIX,udrig.com,AdBlock +- DOMAIN-SUFFIX,udrwyjpwjfeg.com,AdBlock +- DOMAIN-SUFFIX,ue.ueadlian.com,AdBlock +- DOMAIN-SUFFIX,ue.yeyoucdn.com,AdBlock +- DOMAIN-SUFFIX,ueadlian.com,AdBlock +- DOMAIN-SUFFIX,uebawtz7.me,AdBlock +- DOMAIN-SUFFIX,ugc.moji001.com,AdBlock +- DOMAIN-SUFFIX,ugg.keefung-zs.com,AdBlock +- DOMAIN-SUFFIX,ugg66.com,AdBlock +- DOMAIN-SUFFIX,ugvip.com,AdBlock +- DOMAIN-SUFFIX,ui37.net,AdBlock +- DOMAIN-SUFFIX,uid.ksosoft.com,AdBlock +- DOMAIN-SUFFIX,uid.mdbchina.com,AdBlock +- DOMAIN-SUFFIX,uimg.27admin.com,AdBlock +- DOMAIN-SUFFIX,uimserv.net,AdBlock +- DOMAIN-SUFFIX,ujian.cc,AdBlock +- DOMAIN-SUFFIX,ujikdd041o.cn,AdBlock +- DOMAIN-SUFFIX,uk3oi.adgze.cn,AdBlock +- DOMAIN-SUFFIX,ukeiae.com,AdBlock +- DOMAIN-SUFFIX,ulic.baidu.com,AdBlock +- DOMAIN-SUFFIX,ulink.cc,AdBlock +- DOMAIN-SUFFIX,ulog.imap.baidu.com,AdBlock +- DOMAIN-SUFFIX,ultraiso.net,AdBlock +- DOMAIN-SUFFIX,um.simpli.fi,AdBlock +- DOMAIN-SUFFIX,um0592.com,AdBlock +- DOMAIN-SUFFIX,um2.eqads.com,AdBlock +- DOMAIN-SUFFIX,um29.com,AdBlock +- DOMAIN-SUFFIX,umid.orion.meizu.com,AdBlock +- DOMAIN-SUFFIX,umiwi.com,AdBlock +- DOMAIN-SUFFIX,umyai.com,AdBlock +- DOMAIN-SUFFIX,un.52rkl.cn,AdBlock +- DOMAIN-SUFFIX,un.soarfi.cn,AdBlock +- DOMAIN-SUFFIX,un.winasdaq.com,AdBlock +- DOMAIN-SUFFIX,un1.takefoto.cn,AdBlock +- DOMAIN-SUFFIX,unconf.mobad.ijinshan.com,AdBlock +- DOMAIN-SUFFIX,undm.qibulo.com,AdBlock +- DOMAIN-SUFFIX,unicast.ign.com,AdBlock +- DOMAIN-SUFFIX,unicast.msn.com,AdBlock +- DOMAIN-SUFFIX,unilog.wostore.cn,AdBlock +- DOMAIN-SUFFIX,unimhk.com,AdBlock +- DOMAIN-SUFFIX,union.baidu.com,AdBlock +- DOMAIN-SUFFIX,union.baidustatic.guannin.com,AdBlock +- DOMAIN-SUFFIX,union.china.com.cn,AdBlock +- DOMAIN-SUFFIX,union.dbba.cn,AdBlock +- DOMAIN-SUFFIX,union.maccms.com,AdBlock +- DOMAIN-SUFFIX,union.mop.com,AdBlock +- DOMAIN-SUFFIX,union.sogou.com,AdBlock +- DOMAIN-SUFFIX,union.star-media.cn,AdBlock +- DOMAIN-SUFFIX,union.youdao.com,AdBlock +- DOMAIN-SUFFIX,union1.xiaojianjian.net,AdBlock +- DOMAIN-SUFFIX,uniondm.cz88.net,AdBlock +- DOMAIN-SUFFIX,unionimage.baidu.com,AdBlock +- DOMAIN-SUFFIX,unionsy.com,AdBlock +- DOMAIN-SUFFIX,union-wifi.com,AdBlock +- DOMAIN-SUFFIX,unipaydl.wostore.cn,AdBlock +- DOMAIN-SUFFIX,unipayupg.wostore.cn,AdBlock +- DOMAIN-SUFFIX,unitacs.m.taobao.com,AdBlock +- DOMAIN-SUFFIX,unjs.jfcdns.com,AdBlock +- DOMAIN-SUFFIX,unlitui.com,AdBlock +- DOMAIN-SUFFIX,uns.soarfi.cn,AdBlock +- DOMAIN-SUFFIX,untitled.dwstatic.com,AdBlock +- DOMAIN-SUFFIX,uodoo.com,AdBlock +- DOMAIN-SUFFIX,uoyrsd.com,AdBlock +- DOMAIN-SUFFIX,up.cm.ksmobile.com,AdBlock +- DOMAIN-SUFFIX,up.hiao.com,AdBlock +- DOMAIN-SUFFIX,up4.ucweb.com,AdBlock +- DOMAIN-SUFFIX,upd.faronicslabs.com,AdBlock +- DOMAIN-SUFFIX,update.360safe.com,AdBlock +- DOMAIN-SUFFIX,update.avlyun.sec.miui.com,AdBlock +- DOMAIN-SUFFIX,update.bainv.net,AdBlock +- DOMAIN-SUFFIX,update.coolyun.com,AdBlock +- DOMAIN-SUFFIX,update.juw37xqo3x.com,AdBlock +- DOMAIN-SUFFIX,update.minipage.2345.com,AdBlock +- DOMAIN-SUFFIX,update.mobile.kugou.com,AdBlock +- DOMAIN-SUFFIX,update.sdk.jiguang.cn,AdBlock +- DOMAIN-SUFFIX,updatecenter.qq.com,AdBlock +- DOMAIN-SUFFIX,updatepage.kuwo.cn,AdBlock +- DOMAIN-SUFFIX,updates-s3.binaryage.com,AdBlock +- DOMAIN-SUFFIX,up-hl.3g.qq.com,AdBlock +- DOMAIN-SUFFIX,uplze.code.weddingeeos.com,AdBlock +- DOMAIN-SUFFIX,ups.ksmobile.net,AdBlock +- DOMAIN-SUFFIX,upush.res.meizu.com,AdBlock +- DOMAIN-SUFFIX,uqszvk.code.weddingeeos.com,AdBlock +- DOMAIN-SUFFIX,uqum.52shouyou.com.cn,AdBlock +- DOMAIN-SUFFIX,urbanairship.com,AdBlock +- DOMAIN-SUFFIX,urchin.5173.com,AdBlock +- DOMAIN-SUFFIX,urh.tylll.com,AdBlock +- DOMAIN-SUFFIX,urhu.cn,AdBlock +- DOMAIN-SUFFIX,uri6.com,AdBlock +- DOMAIN-SUFFIX,url.222bz.com,AdBlock +- DOMAIN-SUFFIX,url.tudown.com,AdBlock +- DOMAIN-SUFFIX,urls.api.twitter.com,AdBlock +- DOMAIN-SUFFIX,us.bannyat.com,AdBlock +- DOMAIN-SUFFIX,us.bs.serving-sys.com,AdBlock +- DOMAIN-SUFFIX,user.tiankongzudui.com,AdBlock +- DOMAIN-SUFFIX,usercollection.chinadaily.com.cn,AdBlock +- DOMAIN-SUFFIX,ushaqi.com,AdBlock +- DOMAIN-SUFFIX,usingde.com,AdBlock +- DOMAIN-SUFFIX,usr.mgid.com,AdBlock +- DOMAIN-SUFFIX,uss-pid.lenovomm.com,AdBlock +- DOMAIN-SUFFIX,usync.aws.rubiconproject.com,AdBlock +- DOMAIN-SUFFIX,ut2.shuqistat.com,AdBlock +- DOMAIN-SUFFIX,util.nphoto.net,AdBlock +- DOMAIN-SUFFIX,utility.baidu.com,AdBlock +- DOMAIN-SUFFIX,utility.rogersmedia.com,AdBlock +- DOMAIN-SUFFIX,utk.baidu.com,AdBlock +- DOMAIN-SUFFIX,utp.ucweb.com,AdBlock +- DOMAIN-SUFFIX,uu.feipukeplus.com,AdBlock +- DOMAIN-SUFFIX,uu.zeverdg.com,AdBlock +- DOMAIN-SUFFIX,uuidksinc.net,AdBlock +- DOMAIN-SUFFIX,uulucky.com,AdBlock +- DOMAIN-SUFFIX,uvclick.com,AdBlock +- DOMAIN-SUFFIX,uw9377.com,AdBlock +- DOMAIN-SUFFIX,uxip.meizu.com,AdBlock +- DOMAIN-SUFFIX,uyunad.com,AdBlock +- DOMAIN-SUFFIX,uzpmrbek.com,AdBlock +- DOMAIN-SUFFIX,v.dbncp.com,AdBlock +- DOMAIN-SUFFIX,v.e7002.com,AdBlock +- DOMAIN-SUFFIX,v.irs01.com,AdBlock +- DOMAIN-SUFFIX,v.oq68.com,AdBlock +- DOMAIN-SUFFIX,v.rmbn.net,AdBlock +- DOMAIN-SUFFIX,v.szpaopao.com,AdBlock +- DOMAIN-SUFFIX,v00087.com,AdBlock +- DOMAIN-SUFFIX,v02u9.cn,AdBlock +- DOMAIN-SUFFIX,v1.0594529.com,AdBlock +- DOMAIN-SUFFIX,v1.ujian.cc,AdBlock +- DOMAIN-SUFFIX,v12-r0566gbscjw.z.irs01.com,AdBlock +- DOMAIN-SUFFIX,v1-feed.idreamsky.com,AdBlock +- DOMAIN-SUFFIX,v2.fm.n.duokanbox.com,AdBlock +- DOMAIN-SUFFIX,v2.jiathis.com,AdBlock +- DOMAIN-SUFFIX,v3.jiathis.com,AdBlock +- DOMAIN-SUFFIX,v66v66.com,AdBlock +- DOMAIN-SUFFIX,v7.kawinhome.com,AdBlock +- DOMAIN-SUFFIX,v707070.com,AdBlock +- DOMAIN-SUFFIX,va.gxpan.cn,AdBlock +- DOMAIN-SUFFIX,vad1.jianshen8.com,AdBlock +- DOMAIN-SUFFIX,val.atm.cp31.ott.cibntv.net,AdBlock +- DOMAIN-SUFFIX,valf.atm.cp31.ott.cibntv.net,AdBlock +- DOMAIN-SUFFIX,vamaker.com,AdBlock +- DOMAIN-SUFFIX,vangmobi.com,AdBlock +- DOMAIN-SUFFIX,vas.funshion.com,AdBlock +- DOMAIN-SUFFIX,vatrack.hinet.net,AdBlock +- DOMAIN-SUFFIX,vcfs6ip5h6.bid,AdBlock +- DOMAIN-SUFFIX,vda.17173.com,AdBlock +- DOMAIN-SUFFIX,vdapprecv.app.cntvwb.cn,AdBlock +- DOMAIN-SUFFIX,vdazz.net,AdBlock +- DOMAIN-SUFFIX,ve.tsdlp.com,AdBlock +- DOMAIN-SUFFIX,vedeh.com,AdBlock +- DOMAIN-SUFFIX,vegaschina.cn,AdBlock +- DOMAIN-SUFFIX,vegent.cn,AdBlock +- DOMAIN-SUFFIX,vendor1.fitschigogerl.com,AdBlock +- DOMAIN-SUFFIX,ver.touclick.com,AdBlock +- DOMAIN-SUFFIX,verdict.abc.go.com,AdBlock +- DOMAIN-SUFFIX,vers80.com,AdBlock +- DOMAIN-SUFFIX,vg02h8z1ul.me,AdBlock +- DOMAIN-SUFFIX,vi0.mzy2014.com,AdBlock +- DOMAIN-SUFFIX,vi1.ku6img.net,AdBlock +- DOMAIN-SUFFIX,vi1.mzy2014.com,AdBlock +- DOMAIN-SUFFIX,vi1.souid.com,AdBlock +- DOMAIN-SUFFIX,vi2.ku6img.net,AdBlock +- DOMAIN-SUFFIX,vichc.com,AdBlock +- DOMAIN-SUFFIX,victorjx.com,AdBlock +- DOMAIN-SUFFIX,video.cooguo.com,AdBlock +- DOMAIN-SUFFIX,video.ureport.push.qq.com,AdBlock +- DOMAIN-SUFFIX,video.wap.mpush.qq.com,AdBlock +- DOMAIN-SUFFIX,video-ad-stats.googlesyndication.com,AdBlock +- DOMAIN-SUFFIX,videondun.com,AdBlock +- DOMAIN-SUFFIX,videopush.baidu.com,AdBlock +- DOMAIN-SUFFIX,viglink.com,AdBlock +- DOMAIN-SUFFIX,vimg.dwstatic.com,AdBlock +- DOMAIN-SUFFIX,vip.cainiaofx.com,AdBlock +- DOMAIN-SUFFIX,vip.hyz86.com,AdBlock +- DOMAIN-SUFFIX,vip.id528.com,AdBlock +- DOMAIN-SUFFIX,vip.jindu179.com,AdBlock +- DOMAIN-SUFFIX,vip.mall044.com,AdBlock +- DOMAIN-SUFFIX,vip.media8.cn,AdBlock +- DOMAIN-SUFFIX,vip.pinghuhome.com,AdBlock +- DOMAIN-SUFFIX,vip.qqxwf.com,AdBlock +- DOMAIN-SUFFIX,vip.zhuba8.com,AdBlock +- DOMAIN-SUFFIX,vipads.cn,AdBlock +- DOMAIN-SUFFIX,vista.tgbus.com,AdBlock +- DOMAIN-SUFFIX,vista.tgbusdata.cn,AdBlock +- DOMAIN-SUFFIX,visualscience.external.bbc.co.uk,AdBlock +- DOMAIN-SUFFIX,vj.x-ssp.com,AdBlock +- DOMAIN-SUFFIX,vj0.42422277.com,AdBlock +- DOMAIN-SUFFIX,vjcyehtqm9.me,AdBlock +- DOMAIN-SUFFIX,vl8c4g7tmo.me,AdBlock +- DOMAIN-SUFFIX,vlive.qqvideo.tc.qq.com,AdBlock +- DOMAIN-SUFFIX,vmzqwz.cn,AdBlock +- DOMAIN-SUFFIX,vn543.com,AdBlock +- DOMAIN-SUFFIX,vns800600.net,AdBlock +- DOMAIN-SUFFIX,vodlog.m1905.cn,AdBlock +- DOMAIN-SUFFIX,voiceads.cn,AdBlock +- DOMAIN-SUFFIX,voiceads.com,AdBlock +- DOMAIN-SUFFIX,voila.refr.adgtw.orangeads.fr,AdBlock +- DOMAIN-SUFFIX,vol.lflili.com,AdBlock +- DOMAIN-SUFFIX,vpon.com,AdBlock +- DOMAIN-SUFFIX,vps.inte.sogou.com,AdBlock +- DOMAIN-SUFFIX,vs.funshion.com,AdBlock +- DOMAIN-SUFFIX,vs19.gzcu.u3.ucweb.com,AdBlock +- DOMAIN-SUFFIX,vs2.gzcu.u3.ucweb.com,AdBlock +- DOMAIN-SUFFIX,vs7.gzcu.u3.ucweb.com,AdBlock +- DOMAIN-SUFFIX,vs8.gzct.u3.ucweb.com,AdBlock +- DOMAIN-SUFFIX,vs8.gzcu.u3.ucweb.com,AdBlock +- DOMAIN-SUFFIX,v-sence.gentags.net,AdBlock +- DOMAIN-SUFFIX,vsnoon.com,AdBlock +- DOMAIN-SUFFIX,vt.bjhdonline.com,AdBlock +- DOMAIN-SUFFIX,vtale.org,AdBlock +- DOMAIN-SUFFIX,vungle.cn,AdBlock +- DOMAIN-SUFFIX,vungle.com,AdBlock +- DOMAIN-SUFFIX,vupload.duowan.com,AdBlock +- DOMAIN-SUFFIX,vvlog.moviebox.baofeng.com,AdBlock +- DOMAIN-SUFFIX,vvv.ieduw.com,AdBlock +- DOMAIN-SUFFIX,vvvulqn7.com,AdBlock +- DOMAIN-SUFFIX,vwkhdi.cn,AdBlock +- DOMAIN-SUFFIX,vwws6.net,AdBlock +- DOMAIN-SUFFIX,vz-cdn.contentabc.com,AdBlock +- DOMAIN-SUFFIX,vz-cdn.trafficjunky.net,AdBlock +- DOMAIN-SUFFIX,w.bobocn.cn,AdBlock +- DOMAIN-SUFFIX,w.cube3d.cn,AdBlock +- DOMAIN-SUFFIX,w.gdown.baidu.com,AdBlock +- DOMAIN-SUFFIX,w.homes.yahoo.net,AdBlock +- DOMAIN-SUFFIX,w.jscsd.cn,AdBlock +- DOMAIN-SUFFIX,w.m.taobao.com,AdBlock +- DOMAIN-SUFFIX,w.punchbox.org,AdBlock +- DOMAIN-SUFFIX,w.sharethis.com,AdBlock +- DOMAIN-SUFFIX,w.waacorp.com,AdBlock +- DOMAIN-SUFFIX,w.werpig.com,AdBlock +- DOMAIN-SUFFIX,w.x.baidu.com,AdBlock +- DOMAIN-SUFFIX,w.xiaopiaoyou.com,AdBlock +- DOMAIN-SUFFIX,w.yamaidei.cn,AdBlock +- DOMAIN-SUFFIX,w.yinyuehu.cn,AdBlock +- DOMAIN-SUFFIX,w.ymapp.com,AdBlock +- DOMAIN-SUFFIX,w1.diaoyou.com,AdBlock +- DOMAIN-SUFFIX,w2528.com,AdBlock +- DOMAIN-SUFFIX,w3.yinyuehu.cn,AdBlock +- DOMAIN-SUFFIX,w3989.com,AdBlock +- DOMAIN-SUFFIX,w5sac788c1.360doc.cn,AdBlock +- DOMAIN-SUFFIX,w6061.move7.com,AdBlock +- DOMAIN-SUFFIX,w65p.com,AdBlock +- DOMAIN-SUFFIX,w8.com.cn,AdBlock +- DOMAIN-SUFFIX,w88.go.com,AdBlock +- DOMAIN-SUFFIX,wa.kuwo.cn,AdBlock +- DOMAIN-SUFFIX,wallet.advcash.com,AdBlock +- DOMAIN-SUFFIX,wan.2345.com,AdBlock +- DOMAIN-SUFFIX,wan.douyu.com,AdBlock +- DOMAIN-SUFFIX,wan.rising.cn,AdBlock +- DOMAIN-SUFFIX,wan.sogou.com,AdBlock +- DOMAIN-SUFFIX,wancai.com,AdBlock +- DOMAIN-SUFFIX,wanfeng1.com,AdBlock +- DOMAIN-SUFFIX,wangdaizao.com,AdBlock +- DOMAIN-SUFFIX,wangdq.com,AdBlock +- DOMAIN-SUFFIX,wangmeng.baidu.com,AdBlock +- DOMAIN-SUFFIX,wangmeng.sogou.com,AdBlock +- DOMAIN-SUFFIX,wangsufast.com,AdBlock +- DOMAIN-SUFFIX,wanproxy.127.net,AdBlock +- DOMAIN-SUFFIX,wantaico.com,AdBlock +- DOMAIN-SUFFIX,wantfour.com,AdBlock +- DOMAIN-SUFFIX,wap.114so.cn,AdBlock +- DOMAIN-SUFFIX,wap.138lm.com,AdBlock +- DOMAIN-SUFFIX,wap.bytdzsw.com,AdBlock +- DOMAIN-SUFFIX,wap.cmgame.com,AdBlock +- DOMAIN-SUFFIX,wap.moad.cn,AdBlock +- DOMAIN-SUFFIX,wap.mpush.qq.com,AdBlock +- DOMAIN-SUFFIX,wap.tanwan.com,AdBlock +- DOMAIN-SUFFIX,wap.txwdn.com,AdBlock +- DOMAIN-SUFFIX,wap.wooboo.com.cn,AdBlock +- DOMAIN-SUFFIX,wap001.bytravel.cn,AdBlock +- DOMAIN-SUFFIX,wap3.ucweb.com,AdBlock +- DOMAIN-SUFFIX,wapadv.com,AdBlock +- DOMAIN-SUFFIX,wappv.zol.com.cn,AdBlock +- DOMAIN-SUFFIX,waps.cn,AdBlock +- DOMAIN-SUFFIX,wapscdn.wapx.cn,AdBlock +- DOMAIN-SUFFIX,wapssl.ff113300.com,AdBlock +- DOMAIN-SUFFIX,wapwbclick.mobile.sina.cn,AdBlock +- DOMAIN-SUFFIX,wapx.cn,AdBlock +- DOMAIN-SUFFIX,wapx.com,AdBlock +- DOMAIN-SUFFIX,watson.live.com,AdBlock +- DOMAIN-SUFFIX,watson.microsoft.com,AdBlock +- DOMAIN-SUFFIX,wazero.online,AdBlock +- DOMAIN-SUFFIX,wb.gtimg.com,AdBlock +- DOMAIN-SUFFIX,wbapp.mobile.sina.cn,AdBlock +- DOMAIN-SUFFIX,wbclick.mobile.sina.cn,AdBlock +- DOMAIN-SUFFIX,wbpctips.mobile.sina.cn,AdBlock +- DOMAIN-SUFFIX,wbwl.houyi.baofeng.net,AdBlock +- DOMAIN-SUFFIX,wda.ydt.com.cn,AdBlock +- DOMAIN-SUFFIX,wd-edge.sharethis.com,AdBlock +- DOMAIN-SUFFIX,wdgsl.com,AdBlock +- DOMAIN-SUFFIX,wds.inte.sogoucdn.com,AdBlock +- DOMAIN-SUFFIX,wdzsb.com.cn,AdBlock +- DOMAIN-SUFFIX,we.tm,AdBlock +- DOMAIN-SUFFIX,weareqy.com,AdBlock +- DOMAIN-SUFFIX,web.900.la,AdBlock +- DOMAIN-SUFFIX,web.ali213.net,AdBlock +- DOMAIN-SUFFIX,web.data.pplive.com,AdBlock +- DOMAIN-SUFFIX,web.houyi.baofeng.net,AdBlock +- DOMAIN-SUFFIX,web.kuaisouwifi.com,AdBlock +- DOMAIN-SUFFIX,web.sogou.com,AdBlock +- DOMAIN-SUFFIX,webd.home.news.cn,AdBlock +- DOMAIN-SUFFIX,webdissector.com,AdBlock +- DOMAIN-SUFFIX,webkooo.com,AdBlock +- DOMAIN-SUFFIX,weblb-wg.gslb.spotify.com,AdBlock +- DOMAIN-SUFFIX,webmaster.extabit.com,AdBlock +- DOMAIN-SUFFIX,webmine.cz,AdBlock +- DOMAIN-SUFFIX,webstat.kuwo.cn,AdBlock +- DOMAIN-SUFFIX,webstat.ws.126.net,AdBlock +- DOMAIN-SUFFIX,webterren.com,AdBlock +- DOMAIN-SUFFIX,webtrends.yccdn.com,AdBlock +- DOMAIN-SUFFIX,weibomingzi.com,AdBlock +- DOMAIN-SUFFIX,weiguizhizuo.com,AdBlock +- DOMAIN-SUFFIX,weiqiqu.cn,AdBlock +- DOMAIN-SUFFIX,weishi.baidu.com,AdBlock +- DOMAIN-SUFFIX,weixiangzu.cn,AdBlock +- DOMAIN-SUFFIX,weixin.renrenying.com,AdBlock +- DOMAIN-SUFFIX,weixinvip.ren,AdBlock +- DOMAIN-SUFFIX,weld.iefsf.com,AdBlock +- DOMAIN-SUFFIX,weld.uunice.com,AdBlock +- DOMAIN-SUFFIX,weld830.uunice.com,AdBlock +- DOMAIN-SUFFIX,weldc1.021ye.com,AdBlock +- DOMAIN-SUFFIX,werpig.com,AdBlock +- DOMAIN-SUFFIX,weyyae.com,AdBlock +- DOMAIN-SUFFIX,wgie.0z5jn.cn,AdBlock +- DOMAIN-SUFFIX,wgnlz.com,AdBlock +- DOMAIN-SUFFIX,wgnmp.com,AdBlock +- DOMAIN-SUFFIX,wgo.mmstat.com,AdBlock +- DOMAIN-SUFFIX,whafwl.com,AdBlock +- DOMAIN-SUFFIX,whalecloud.com,AdBlock +- DOMAIN-SUFFIX,whcrdz.com,AdBlock +- DOMAIN-SUFFIX,whistleout.s3.amazonaws.com,AdBlock +- DOMAIN-SUFFIX,whn.star-media.cn,AdBlock +- DOMAIN-SUFFIX,whpxy.com,AdBlock +- DOMAIN-SUFFIX,whu.cwpush.com,AdBlock +- DOMAIN-SUFFIX,whytoss.com,AdBlock +- DOMAIN-SUFFIX,widget.criteo.com,AdBlock +- DOMAIN-SUFFIX,widget.crowdignite.com,AdBlock +- DOMAIN-SUFFIX,widget.directory.dailycommercial.com,AdBlock +- DOMAIN-SUFFIX,widget.kelkoo.com,AdBlock +- DOMAIN-SUFFIX,widget.raaze.com,AdBlock +- DOMAIN-SUFFIX,widget.searchschoolsnetwork.com,AdBlock +- DOMAIN-SUFFIX,widget.shopstyle.com.au,AdBlock +- DOMAIN-SUFFIX,widget.solarquotes.com.au,AdBlock +- DOMAIN-SUFFIX,widgets.comcontent.net,AdBlock +- DOMAIN-SUFFIX,widgets.realestate.com.au,AdBlock +- DOMAIN-SUFFIX,widnd.dajiadou6.com,AdBlock +- DOMAIN-SUFFIX,wifiapi01.51y5.net,AdBlock +- DOMAIN-SUFFIX,wifiapi02.51y5.net,AdBlock +- DOMAIN-SUFFIX,wifijia.net,AdBlock +- DOMAIN-SUFFIX,wifishow.ggsafe.com,AdBlock +- DOMAIN-SUFFIX,wikigifth.com,AdBlock +- DOMAIN-SUFFIX,winads.cn,AdBlock +- DOMAIN-SUFFIX,winasdaq.com,AdBlock +- DOMAIN-SUFFIX,winbaicai.com,AdBlock +- DOMAIN-SUFFIX,windcdna.com,AdBlock +- DOMAIN-SUFFIX,winlinebet.ru,AdBlock +- DOMAIN-SUFFIX,winvestern.com.cn,AdBlock +- DOMAIN-SUFFIX,wip3.adobe.com,AdBlock +- DOMAIN-SUFFIX,wisepush.video.baidu.com,AdBlock +- DOMAIN-SUFFIX,wiyun.com,AdBlock +- DOMAIN-SUFFIX,wjguc.com,AdBlock +- DOMAIN-SUFFIX,wka8.com,AdBlock +- DOMAIN-SUFFIX,wkanc.com,AdBlock +- DOMAIN-SUFFIX,wl.51taifu.com,AdBlock +- DOMAIN-SUFFIX,wl.eastlady.cn,AdBlock +- DOMAIN-SUFFIX,wl.houyi.baofeng.net,AdBlock +- DOMAIN-SUFFIX,wlkpa.cn,AdBlock +- DOMAIN-SUFFIX,wlneteller.adsrv.eacdn.com,AdBlock +- DOMAIN-SUFFIX,wlpinnaclesports.eacdn.com,AdBlock +- DOMAIN-SUFFIX,wm.20150.net,AdBlock +- DOMAIN-SUFFIX,wm.69shi.cn,AdBlock +- DOMAIN-SUFFIX,wm.baidu.com,AdBlock +- DOMAIN-SUFFIX,wm.lrswl.com,AdBlock +- DOMAIN-SUFFIX,wm.mipcdn.com,AdBlock +- DOMAIN-SUFFIX,wmcdn.qtmojo.cn,AdBlock +- DOMAIN-SUFFIX,wo.iuni.com.cn,AdBlock +- DOMAIN-SUFFIX,wo685.com,AdBlock +- DOMAIN-SUFFIX,woaizhongguo.cdn111222.com,AdBlock +- DOMAIN-SUFFIX,wodhid.com,AdBlock +- DOMAIN-SUFFIX,wole.us,AdBlock +- DOMAIN-SUFFIX,womenbaby.com,AdBlock +- DOMAIN-SUFFIX,womenwan.com,AdBlock +- DOMAIN-SUFFIX,wooboo.com.cn,AdBlock +- DOMAIN-SUFFIX,woocall.sina.com.cn,AdBlock +- DOMAIN-SUFFIX,woodpecker.uc.cn,AdBlock +- DOMAIN-SUFFIX,worldh5.gamehz.cn,AdBlock +- DOMAIN-SUFFIX,wowips.com,AdBlock +- DOMAIN-SUFFIX,wpc.32df9.rhocdn.net,AdBlock +- DOMAIN-SUFFIX,wpwdf.com,AdBlock +- DOMAIN-SUFFIX,wqmobile.com,AdBlock +- DOMAIN-SUFFIX,wqqsa.puzihua.com,AdBlock +- DOMAIN-SUFFIX,wqsph.net,AdBlock +- DOMAIN-SUFFIX,wr.da.netease.com,AdBlock +- DOMAIN-SUFFIX,wrvdmh.cn,AdBlock +- DOMAIN-SUFFIX,ws.ksmobile.net,AdBlock +- DOMAIN-SUFFIX,ws.progrss.yahoo.com,AdBlock +- DOMAIN-SUFFIX,ws.sj.qq.com,AdBlock +- DOMAIN-SUFFIX,ws.tapjoyads.com,AdBlock +- DOMAIN-SUFFIX,ws.voiceads.cn,AdBlock +- DOMAIN-SUFFIX,ws1.datouniao.com,AdBlock +- DOMAIN-SUFFIX,ws2.cootekservice.com,AdBlock +- DOMAIN-SUFFIX,ws2.datouniao.com,AdBlock +- DOMAIN-SUFFIX,ws341.com,AdBlock +- DOMAIN-SUFFIX,ws7j.com,AdBlock +- DOMAIN-SUFFIX,wshufa.com,AdBlock +- DOMAIN-SUFFIX,wsoe.kwiago.com,AdBlock +- DOMAIN-SUFFIX,wsp.marketgid.com,AdBlock +- DOMAIN-SUFFIX,wstztt.com,AdBlock +- DOMAIN-SUFFIX,wtcpm.com,AdBlock +- DOMAIN-SUFFIX,wth.lenovomm.com,AdBlock +- DOMAIN-SUFFIX,wtpn.twenga.co.uk,AdBlock +- DOMAIN-SUFFIX,wtpn.twenga.de,AdBlock +- DOMAIN-SUFFIX,wtrace.cmgame.com,AdBlock +- DOMAIN-SUFFIX,wtradv.market.xiaomi.com,AdBlock +- DOMAIN-SUFFIX,wu65.com,AdBlock +- DOMAIN-SUFFIX,wudang05.com,AdBlock +- DOMAIN-SUFFIX,wuliao.epro.sogou.com,AdBlock +- DOMAIN-SUFFIX,wuliao.ganji.cn,AdBlock +- DOMAIN-SUFFIX,wuliao.juqingba.cn,AdBlock +- DOMAIN-SUFFIX,wumii.cn,AdBlock +- DOMAIN-SUFFIX,wumii.com,AdBlock +- DOMAIN-SUFFIX,wuqdebjfhjas.bid,AdBlock +- DOMAIN-SUFFIX,wuwho.cn,AdBlock +- DOMAIN-SUFFIX,ww.xiaopiaoyou.com,AdBlock +- DOMAIN-SUFFIX,ww10.onetad.com,AdBlock +- DOMAIN-SUFFIX,ww101.onetad.com,AdBlock +- DOMAIN-SUFFIX,ww11.onetad.com,AdBlock +- DOMAIN-SUFFIX,ww12.onetad.com,AdBlock +- DOMAIN-SUFFIX,ww13.onetad.com,AdBlock +- DOMAIN-SUFFIX,ww202.keyyou.net,AdBlock +- DOMAIN-SUFFIX,ww202.onetad.com,AdBlock +- DOMAIN-SUFFIX,ww34.onetad.com,AdBlock +- DOMAIN-SUFFIX,ww346.onetad.com,AdBlock +- DOMAIN-SUFFIX,ww360.onetad.com,AdBlock +- DOMAIN-SUFFIX,ww363.onetad.com,AdBlock +- DOMAIN-SUFFIX,ww366.onetad.com,AdBlock +- DOMAIN-SUFFIX,ww78.onetad.com,AdBlock +- DOMAIN-SUFFIX,ww8.onetad.com,AdBlock +- DOMAIN-SUFFIX,ww9.onetad.com,AdBlock +- DOMAIN-SUFFIX,wwis-dubc1-vip60.adobe.com,AdBlock +- DOMAIN-SUFFIX,wwv.onetad.com,AdBlock +- DOMAIN-SUFFIX,www2.xinmin.cn,AdBlock +- DOMAIN-SUFFIX,www-777563.com,AdBlock +- DOMAIN-SUFFIX,www8.xitek.com,AdBlock +- DOMAIN-SUFFIX,www9.effectivemeasure.net,AdBlock +- DOMAIN-SUFFIX,www9.enet.com.cn,AdBlock +- DOMAIN-SUFFIX,www91.intel.com,AdBlock +- DOMAIN-SUFFIX,wwwokzyzy.com,AdBlock +- DOMAIN-SUFFIX,wwww.495495.com,AdBlock +- DOMAIN-SUFFIX,wwww.551144.com,AdBlock +- DOMAIN-SUFFIX,wwww.640640.com,AdBlock +- DOMAIN-SUFFIX,wwww.649649.com,AdBlock +- DOMAIN-SUFFIX,wx.houyi.baofeng.net,AdBlock +- DOMAIN-SUFFIX,wx.paigu.com,AdBlock +- DOMAIN-SUFFIX,wx.xwjqr.com,AdBlock +- DOMAIN-SUFFIX,wx16999.com,AdBlock +- DOMAIN-SUFFIX,wxaw.tiantongmaoyi.com,AdBlock +- DOMAIN-SUFFIX,wxb.wxbdfm.com,AdBlock +- DOMAIN-SUFFIX,wxmmh.net,AdBlock +- DOMAIN-SUFFIX,wxsnsdy.tc.qq.com,AdBlock +- DOMAIN-SUFFIX,wxsnsdy.video.qq.com,AdBlock +- DOMAIN-SUFFIX,wxtz.houmags.com,AdBlock +- DOMAIN-SUFFIX,wxwm1.ikuailian.com,AdBlock +- DOMAIN-SUFFIX,wxwm2.ikuailian.com,AdBlock +- DOMAIN-SUFFIX,wy.ce22d.cn,AdBlock +- DOMAIN-SUFFIX,wyhzzy.com,AdBlock +- DOMAIN-SUFFIX,wysa.2wxb5.cn,AdBlock +- DOMAIN-SUFFIX,wyt.wwetjy.com,AdBlock +- DOMAIN-SUFFIX,wyttech.cn,AdBlock +- DOMAIN-SUFFIX,wzaigo.com,AdBlock +- DOMAIN-SUFFIX,wzj.ywrjgzs.com,AdBlock +- DOMAIN-SUFFIX,wzjijia.com,AdBlock +- DOMAIN-SUFFIX,x.120ask.com,AdBlock +- DOMAIN-SUFFIX,x.9dagui.com,AdBlock +- DOMAIN-SUFFIX,x.bidswitch.net,AdBlock +- DOMAIN-SUFFIX,x.bikaer.com,AdBlock +- DOMAIN-SUFFIX,x.castanet.net,AdBlock +- DOMAIN-SUFFIX,x.cnxad.com,AdBlock +- DOMAIN-SUFFIX,x.eroticity.net,AdBlock +- DOMAIN-SUFFIX,x.heyzap.com,AdBlock +- DOMAIN-SUFFIX,x.infzm.com,AdBlock +- DOMAIN-SUFFIX,x.ligatus.com,AdBlock +- DOMAIN-SUFFIX,x.vamaker.com,AdBlock +- DOMAIN-SUFFIX,x.vipergirls.to,AdBlock +- DOMAIN-SUFFIX,x.zhuyuanp.top,AdBlock +- DOMAIN-SUFFIX,x01.aidata.io,AdBlock +- DOMAIN-SUFFIX,x1.go.sohu.com,AdBlock +- DOMAIN-SUFFIX,x9377a.com,AdBlock +- DOMAIN-SUFFIX,xa9t.com,AdBlock +- DOMAIN-SUFFIX,xabaitai.com,AdBlock +- DOMAIN-SUFFIX,xabmjr.com,AdBlock +- DOMAIN-SUFFIX,xacqp.com,AdBlock +- DOMAIN-SUFFIX,xau.sxmutan.com,AdBlock +- DOMAIN-SUFFIX,xavingtsun.com,AdBlock +- DOMAIN-SUFFIX,xbp.code.weddingeeos.com,AdBlock +- DOMAIN-SUFFIX,xbtw.com,AdBlock +- DOMAIN-SUFFIX,xbzzzx.com,AdBlock +- DOMAIN-SUFFIX,xc.08an.com,AdBlock +- DOMAIN-SUFFIX,xc.macd.cn,AdBlock +- DOMAIN-SUFFIX,xc.mydrivers.com,AdBlock +- DOMAIN-SUFFIX,xcclzs.com,AdBlock +- DOMAIN-SUFFIX,xcdf.cn,AdBlock +- DOMAIN-SUFFIX,xchgx.com,AdBlock +- DOMAIN-SUFFIX,xcjy876.com,AdBlock +- DOMAIN-SUFFIX,xco.qwxcs.com,AdBlock +- DOMAIN-SUFFIX,xcy8.com,AdBlock +- DOMAIN-SUFFIX,xcyjzs.net,AdBlock +- DOMAIN-SUFFIX,xcyrc.com,AdBlock +- DOMAIN-SUFFIX,xd.code.tanwanyx.com,AdBlock +- DOMAIN-SUFFIX,xdadevelopers.browsi.mobi,AdBlock +- DOMAIN-SUFFIX,xdbwc.com,AdBlock +- DOMAIN-SUFFIX,xdcqcyp.com,AdBlock +- DOMAIN-SUFFIX,xdcs-collector.ximalaya.com,AdBlock +- DOMAIN-SUFFIX,xdyjt.com,AdBlock +- DOMAIN-SUFFIX,xe2c.com,AdBlock +- DOMAIN-SUFFIX,xf.yellowto.com,AdBlock +- DOMAIN-SUFFIX,xfo.monesyy.com,AdBlock +- DOMAIN-SUFFIX,xfywn.com,AdBlock +- DOMAIN-SUFFIX,xgcsr.com,AdBlock +- DOMAIN-SUFFIX,xgmc6lu8fs.me,AdBlock +- DOMAIN-SUFFIX,xhbqczl.com,AdBlock +- DOMAIN-SUFFIX,xhmrv.com,AdBlock +- DOMAIN-SUFFIX,xhsxgmt.cn,AdBlock +- DOMAIN-SUFFIX,xhsxgnt.cn,AdBlock +- DOMAIN-SUFFIX,xhtd.99hg.wang,AdBlock +- DOMAIN-SUFFIX,xhxnkyy.com,AdBlock +- DOMAIN-SUFFIX,xhydrs.cn,AdBlock +- DOMAIN-SUFFIX,xi.liuxiaoer.com,AdBlock +- DOMAIN-SUFFIX,xia.huishenghuiying.com,AdBlock +- DOMAIN-SUFFIX,xia.jihehuaban.com,AdBlock +- DOMAIN-SUFFIX,xiacai.com,AdBlock +- DOMAIN-SUFFIX,xiacaidd.com,AdBlock +- DOMAIN-SUFFIX,xianliao.me,AdBlock +- DOMAIN-SUFFIX,xiaobiaoucai.cn,AdBlock +- DOMAIN-SUFFIX,xiaohei.com,AdBlock +- DOMAIN-SUFFIX,xiaohuau.xyz,AdBlock +- DOMAIN-SUFFIX,xiaohui2.cn,AdBlock +- DOMAIN-SUFFIX,xiaomiir.yaokantv.com,AdBlock +- DOMAIN-SUFFIX,XiaoQiang,AdBlock +- DOMAIN-SUFFIX,xiaoshuo.kp53.cn,AdBlock +- DOMAIN-SUFFIX,xiaoshuo.zhandao.net,AdBlock +- DOMAIN-SUFFIX,xiaoyang.mobi,AdBlock +- DOMAIN-SUFFIX,xiaoyuanzuqiu.cn,AdBlock +- DOMAIN-SUFFIX,xiaoyutiao.com,AdBlock +- DOMAIN-SUFFIX,xiaozhen.com,AdBlock +- DOMAIN-SUFFIX,xiaozhishi852.com,AdBlock +- DOMAIN-SUFFIX,xiaxuanfu.com,AdBlock +- DOMAIN-SUFFIX,xiazai.cdren.com,AdBlock +- DOMAIN-SUFFIX,xiazai.downok.com,AdBlock +- DOMAIN-SUFFIX,xibao100.com,AdBlock +- DOMAIN-SUFFIX,xibei70.com,AdBlock +- DOMAIN-SUFFIX,xifatime.com,AdBlock +- DOMAIN-SUFFIX,xihashuale.com,AdBlock +- DOMAIN-SUFFIX,xihuashuale.com,AdBlock +- DOMAIN-SUFFIX,xilele.com,AdBlock +- DOMAIN-SUFFIX,xiliweisha.cn,AdBlock +- DOMAIN-SUFFIX,xin.ygqczh.com,AdBlock +- DOMAIN-SUFFIX,xinasiaj.com,AdBlock +- DOMAIN-SUFFIX,xinghao89.com,AdBlock +- DOMAIN-SUFFIX,xingjuhe.com,AdBlock +- DOMAIN-SUFFIX,xiniuz.com,AdBlock +- DOMAIN-SUFFIX,xinju.cc,AdBlock +- DOMAIN-SUFFIX,xinray.com,AdBlock +- DOMAIN-SUFFIX,xinsheng.net,AdBlock +- DOMAIN-SUFFIX,xiongdong.com,AdBlock +- DOMAIN-SUFFIX,xiuxiu.android.dl.meitu.com,AdBlock +- DOMAIN-SUFFIX,xiuxiu.mobile.meitudata.com,AdBlock +- DOMAIN-SUFFIX,xj40666.vip,AdBlock +- DOMAIN-SUFFIX,xji.qwxcs.com,AdBlock +- DOMAIN-SUFFIX,xjidian.com,AdBlock +- DOMAIN-SUFFIX,xjq.jxmqkj.com,AdBlock +- DOMAIN-SUFFIX,xk2012.com,AdBlock +- DOMAIN-SUFFIX,xkwfao.com,AdBlock +- DOMAIN-SUFFIX,xlmc.sandai.net,AdBlock +- DOMAIN-SUFFIX,xls.go.sohu.com,AdBlock +- DOMAIN-SUFFIX,xlwnx.com,AdBlock +- DOMAIN-SUFFIX,xlylqx.com,AdBlock +- DOMAIN-SUFFIX,xm9178.com,AdBlock +- DOMAIN-SUFFIX,xmcmn.com,AdBlock +- DOMAIN-SUFFIX,xmcxz.com,AdBlock +- DOMAIN-SUFFIX,xmindchina.net,AdBlock +- DOMAIN-SUFFIX,xmnmeu.cn,AdBlock +- DOMAIN-SUFFIX,xmrts.com,AdBlock +- DOMAIN-SUFFIX,xmshqh.com,AdBlock +- DOMAIN-SUFFIX,xmsqz.com,AdBlock +- DOMAIN-SUFFIX,xnjpg.com,AdBlock +- DOMAIN-SUFFIX,xoredi.com,AdBlock +- DOMAIN-SUFFIX,xp3366.com,AdBlock +- DOMAIN-SUFFIX,xpcy.m.gxwztv.com,AdBlock +- DOMAIN-SUFFIX,xpe.cxaerp.com,AdBlock +- DOMAIN-SUFFIX,xpj1.net,AdBlock +- DOMAIN-SUFFIX,xpj2.net,AdBlock +- DOMAIN-SUFFIX,xpj3.net,AdBlock +- DOMAIN-SUFFIX,xpj4.net,AdBlock +- DOMAIN-SUFFIX,xpj8088.com,AdBlock +- DOMAIN-SUFFIX,xpjkf888.com,AdBlock +- DOMAIN-SUFFIX,xpjylc9977.com,AdBlock +- DOMAIN-SUFFIX,xpqfc.com,AdBlock +- DOMAIN-SUFFIX,xq12.com,AdBlock +- DOMAIN-SUFFIX,xq199.com,AdBlock +- DOMAIN-SUFFIX,xrain.net,AdBlock +- DOMAIN-SUFFIX,xray.jebe.renren.com,AdBlock +- DOMAIN-SUFFIX,xs.1drj.com,AdBlock +- DOMAIN-SUFFIX,xs.he9630.com,AdBlock +- DOMAIN-SUFFIX,xs.houyi.baofeng.net,AdBlock +- DOMAIN-SUFFIX,xs.swagger1.com,AdBlock +- DOMAIN-SUFFIX,xshellcn.com,AdBlock +- DOMAIN-SUFFIX,xstar.cc,AdBlock +- DOMAIN-SUFFIX,xszqapp.com,AdBlock +- DOMAIN-SUFFIX,xtcdbb.cn,AdBlock +- DOMAIN-SUFFIX,xtgreat.com,AdBlock +- DOMAIN-SUFFIX,xtruh.uranus.sogou.com,AdBlock +- DOMAIN-SUFFIX,xtwjx.cn,AdBlock +- DOMAIN-SUFFIX,xtxa.net,AdBlock +- DOMAIN-SUFFIX,xtzxmy.com,AdBlock +- DOMAIN-SUFFIX,xuanmeiguoji.com,AdBlock +- DOMAIN-SUFFIX,xue.zbyw.cn,AdBlock +- DOMAIN-SUFFIX,xul478.com,AdBlock +- DOMAIN-SUFFIX,xulizui6.com,AdBlock +- DOMAIN-SUFFIX,xx.m.gxwztv.com,AdBlock +- DOMAIN-SUFFIX,xxad.cc,AdBlock +- DOMAIN-SUFFIX,xxeden.com,AdBlock +- DOMAIN-SUFFIX,xxguan.cn,AdBlock +- DOMAIN-SUFFIX,xxhrd.com,AdBlock +- DOMAIN-SUFFIX,xxkhh.com,AdBlock +- DOMAIN-SUFFIX,xxlargepop.com,AdBlock +- DOMAIN-SUFFIX,xxp.gytygc.com,AdBlock +- DOMAIN-SUFFIX,xxwkjl.com,AdBlock +- DOMAIN-SUFFIX,xxxa.aikeapp.com,AdBlock +- DOMAIN-SUFFIX,xxyzwtsylw.com,AdBlock +- DOMAIN-SUFFIX,xy.com,AdBlock +- DOMAIN-SUFFIX,xy.shijialianzuishuai.com,AdBlock +- DOMAIN-SUFFIX,xycnz.com,AdBlock +- DOMAIN-SUFFIX,xyd.sxmdxy.com,AdBlock +- DOMAIN-SUFFIX,xyimg.net,AdBlock +- DOMAIN-SUFFIX,xyly2016.com,AdBlock +- DOMAIN-SUFFIX,xyqptm.com,AdBlock +- DOMAIN-SUFFIX,xyqxr.com,AdBlock +- DOMAIN-SUFFIX,xyrhd.com,AdBlock +- DOMAIN-SUFFIX,xyrkl.com,AdBlock +- DOMAIN-SUFFIX,xyssp.com,AdBlock +- DOMAIN-SUFFIX,xytom.com,AdBlock +- DOMAIN-SUFFIX,xyxy01.com,AdBlock +- DOMAIN-SUFFIX,xyy.code.weddingeeos.com,AdBlock +- DOMAIN-SUFFIX,xz.ercfh.com,AdBlock +- DOMAIN-SUFFIX,xz-development.oss-cn-beijing.aliyuncs.com,AdBlock +- DOMAIN-SUFFIX,xzq.greenxf.net,AdBlock +- DOMAIN-SUFFIX,xztms.com,AdBlock +- DOMAIN-SUFFIX,xzyituo.com,AdBlock +- DOMAIN-SUFFIX,xzzyi.com,AdBlock +- DOMAIN-SUFFIX,y.3957957.com,AdBlock +- DOMAIN-SUFFIX,y.damifan.cn,AdBlock +- DOMAIN-SUFFIX,y.gwylm.com,AdBlock +- DOMAIN-SUFFIX,y.hk9600.com,AdBlock +- DOMAIN-SUFFIX,y.hzht666.com,AdBlock +- DOMAIN-SUFFIX,y.shuoshuocm.com,AdBlock +- DOMAIN-SUFFIX,y.xinghao89.com,AdBlock +- DOMAIN-SUFFIX,y.zxwdw.com,AdBlock +- DOMAIN-SUFFIX,y0.cn,AdBlock +- DOMAIN-SUFFIX,yadro.ru,AdBlock +- DOMAIN-SUFFIX,yads.c.yimg.jp,AdBlock +- DOMAIN-SUFFIX,yads.yahoo.co.jp,AdBlock +- DOMAIN-SUFFIX,yageben.com,AdBlock +- DOMAIN-SUFFIX,yam.adsbro.com,AdBlock +- DOMAIN-SUFFIX,yandui.com,AdBlock +- DOMAIN-SUFFIX,yangdasen.cn,AdBlock +- DOMAIN-SUFFIX,yanglaopt.net,AdBlock +- DOMAIN-SUFFIX,yao.zzsdjq.com,AdBlock +- DOMAIN-SUFFIX,yaohq.com,AdBlock +- DOMAIN-SUFFIX,yatemy.cn,AdBlock +- DOMAIN-SUFFIX,yb.torchbrowser.com,AdBlock +- DOMAIN-SUFFIX,ybtianxi.com,AdBlock +- DOMAIN-SUFFIX,yccdn.com,AdBlock +- DOMAIN-SUFFIX,ychml.com,AdBlock +- DOMAIN-SUFFIX,ychun03.com,AdBlock +- DOMAIN-SUFFIX,yd126.com,AdBlock +- DOMAIN-SUFFIX,ydjs.zol.com.cn,AdBlock +- DOMAIN-SUFFIX,ydlnt.com,AdBlock +- DOMAIN-SUFFIX,ydpushserver.youdao.com,AdBlock +- DOMAIN-SUFFIX,ydqzkj.com,AdBlock +- DOMAIN-SUFFIX,yea.uploadimagex.com,AdBlock +- DOMAIN-SUFFIX,yeabble.com,AdBlock +- DOMAIN-SUFFIX,yeas.yahoo.co.jp,AdBlock +- DOMAIN-SUFFIX,yee.js.cn,AdBlock +- DOMAIN-SUFFIX,yellowto.com,AdBlock +- DOMAIN-SUFFIX,yengo.com,AdBlock +- DOMAIN-SUFFIX,yesbeby.whies.info,AdBlock +- DOMAIN-SUFFIX,yess.imneinei.com,AdBlock +- DOMAIN-SUFFIX,yezilm.com,AdBlock +- DOMAIN-SUFFIX,yf898.com,AdBlock +- DOMAIN-SUFFIX,yfcode.m.gxwztv.com,AdBlock +- DOMAIN-SUFFIX,yfxpcode.m.gxwztv.com,AdBlock +- DOMAIN-SUFFIX,yfycy.com,AdBlock +- DOMAIN-SUFFIX,yhtcd.com,AdBlock +- DOMAIN-SUFFIX,yhzm.cc,AdBlock +- DOMAIN-SUFFIX,yicha.cn,AdBlock +- DOMAIN-SUFFIX,yidulive.net,AdBlock +- DOMAIN-SUFFIX,yieldmanager.com,AdBlock +- DOMAIN-SUFFIX,yigao.com,AdBlock +- DOMAIN-SUFFIX,yigyx.com,AdBlock +- DOMAIN-SUFFIX,yihuifu.cn,AdBlock +- DOMAIN-SUFFIX,yiiwoo.com,AdBlock +- DOMAIN-SUFFIX,yijia2009.com,AdBlock +- DOMAIN-SUFFIX,yijifen.com,AdBlock +- DOMAIN-SUFFIX,yiluup.com,AdBlock +- DOMAIN-SUFFIX,yin1.zgpingshu.com,AdBlock +- DOMAIN-SUFFIX,yingxiao.baidu.com,AdBlock +- DOMAIN-SUFFIX,yinhaijuan.com,AdBlock +- DOMAIN-SUFFIX,yinmong.com,AdBlock +- DOMAIN-SUFFIX,yinooo.com,AdBlock +- DOMAIN-SUFFIX,yinyuehu.cn,AdBlock +- DOMAIN-SUFFIX,yiqifa.com,AdBlock +- DOMAIN-SUFFIX,yiranxian.cn,AdBlock +- DOMAIN-SUFFIX,yitaopt.com,AdBlock +- DOMAIN-SUFFIX,yiwk.com,AdBlock +- DOMAIN-SUFFIX,yiwuds.com,AdBlock +- DOMAIN-SUFFIX,yixui.com,AdBlock +- DOMAIN-SUFFIX,yizhenya.com,AdBlock +- DOMAIN-SUFFIX,yjqiqi.com,AdBlock +- DOMAIN-SUFFIX,yk0712.com,AdBlock +- DOMAIN-SUFFIX,ykbei.com,AdBlock +- DOMAIN-SUFFIX,ykjmy.com,AdBlock +- DOMAIN-SUFFIX,yktj.yzz.cn,AdBlock +- DOMAIN-SUFFIX,ykxwn.com,AdBlock +- DOMAIN-SUFFIX,yl850555.com,AdBlock +- DOMAIN-SUFFIX,ylads.yaolan.com,AdBlock +- DOMAIN-SUFFIX,ylog.hiido.com,AdBlock +- DOMAIN-SUFFIX,ylunion.com,AdBlock +- DOMAIN-SUFFIX,ylwy168.com,AdBlock +- DOMAIN-SUFFIX,ymapp.com,AdBlock +- DOMAIN-SUFFIX,ymcdn.cn,AdBlock +- DOMAIN-SUFFIX,ymcqb.com,AdBlock +- DOMAIN-SUFFIX,ymrzr.com,AdBlock +- DOMAIN-SUFFIX,yn.001fzc.com,AdBlock +- DOMAIN-SUFFIX,ynbojie.com,AdBlock +- DOMAIN-SUFFIX,yndianju.com,AdBlock +- DOMAIN-SUFFIX,ynmbz.com,AdBlock +- DOMAIN-SUFFIX,yongkang6.com,AdBlock +- DOMAIN-SUFFIX,yongv.com,AdBlock +- DOMAIN-SUFFIX,yoo.yiiyoo.net,AdBlock +- DOMAIN-SUFFIX,yooli.com,AdBlock +- DOMAIN-SUFFIX,you1ad.com,AdBlock +- DOMAIN-SUFFIX,youfumei.com,AdBlock +- DOMAIN-SUFFIX,youjia2016.com,AdBlock +- DOMAIN-SUFFIX,youka.la,AdBlock +- DOMAIN-SUFFIX,youle.tom.com,AdBlock +- DOMAIN-SUFFIX,youle55.com,AdBlock +- DOMAIN-SUFFIX,youmi.net,AdBlock +- DOMAIN-SUFFIX,youmsm.com,AdBlock +- DOMAIN-SUFFIX,yousee.com,AdBlock +- DOMAIN-SUFFIX,youxi.kugou.com,AdBlock +- DOMAIN-SUFFIX,youxiaoad.com,AdBlock +- DOMAIN-SUFFIX,youxicool.net,AdBlock +- DOMAIN-SUFFIX,youzehui.com,AdBlock +- DOMAIN-SUFFIX,yoyi.com.cn,AdBlock +- DOMAIN-SUFFIX,yoyi.tv,AdBlock +- DOMAIN-SUFFIX,ypmeiwen.com,AdBlock +- DOMAIN-SUFFIX,ypmob.com,AdBlock +- DOMAIN-SUFFIX,yqjxzw.com,AdBlock +- DOMAIN-SUFFIX,yqw88.com,AdBlock +- DOMAIN-SUFFIX,yrt7dgkf.exashare.com,AdBlock +- DOMAIN-SUFFIX,yrxmr.com,AdBlock +- DOMAIN-SUFFIX,ysej.code.weddingeeos.com,AdBlock +- DOMAIN-SUFFIX,ysjwj.com,AdBlock +- DOMAIN-SUFFIX,ysm.hauchi.com.tw,AdBlock +- DOMAIN-SUFFIX,ysm.yahoo.com,AdBlock +- DOMAIN-SUFFIX,yt.mmstat.com,AdBlock +- DOMAIN-SUFFIX,yt-adp.nosdn.127.net,AdBlock +- DOMAIN-SUFFIX,ytapi1.nagezan.net,AdBlock +- DOMAIN-SUFFIX,ytdksb.com,AdBlock +- DOMAIN-SUFFIX,ytguowang.com,AdBlock +- DOMAIN-SUFFIX,ytmx.2r3485.cn,AdBlock +- DOMAIN-SUFFIX,yts.ytsyyey.com,AdBlock +- DOMAIN-SUFFIX,ytsyyey.com,AdBlock +- DOMAIN-SUFFIX,yuanchengxiezuo.com,AdBlock +- DOMAIN-SUFFIX,yuanming.net,AdBlock +- DOMAIN-SUFFIX,yueyelive.com,AdBlock +- DOMAIN-SUFFIX,yug8.com,AdBlock +- DOMAIN-SUFFIX,yukhj.com,AdBlock +- DOMAIN-SUFFIX,yule8.net,AdBlock +- DOMAIN-SUFFIX,yulzs.com,AdBlock +- DOMAIN-SUFFIX,yumcs.xiaohuau.xyz,AdBlock +- DOMAIN-SUFFIX,yun.lvehaisen.com,AdBlock +- DOMAIN-SUFFIX,yun.rili.cn,AdBlock +- DOMAIN-SUFFIX,yun.sifuhe.cn,AdBlock +- DOMAIN-SUFFIX,yun.tuia.cn,AdBlock +- DOMAIN-SUFFIX,yun.tuisnake.com,AdBlock +- DOMAIN-SUFFIX,yun.yuyiya.com,AdBlock +- DOMAIN-SUFFIX,yun1.yahoo001.com,AdBlock +- DOMAIN-SUFFIX,yunanfuwuqi.com,AdBlock +- DOMAIN-SUFFIX,yunbofangbt.com,AdBlock +- DOMAIN-SUFFIX,yundingjiayuan.com,AdBlock +- DOMAIN-SUFFIX,yunjiasu.com,AdBlock +- DOMAIN-SUFFIX,yunshipei.com,AdBlock +- DOMAIN-SUFFIX,yunxuu.com,AdBlock +- DOMAIN-SUFFIX,yuyue008.cn,AdBlock +- DOMAIN-SUFFIX,ywjxsp168.cn,AdBlock +- DOMAIN-SUFFIX,yx.lenovomm.com,AdBlock +- DOMAIN-SUFFIX,yxhxs.com,AdBlock +- DOMAIN-SUFFIX,yxjad.com,AdBlock +- DOMAIN-SUFFIX,yxs.tymsyx.com,AdBlock +- DOMAIN-SUFFIX,yxszy.com,AdBlock +- DOMAIN-SUFFIX,yxxwyz.com,AdBlock +- DOMAIN-SUFFIX,yy58ju.com,AdBlock +- DOMAIN-SUFFIX,yyb.pc6.com,AdBlock +- DOMAIN-SUFFIX,yyffeicd.m.qxs.la,AdBlock +- DOMAIN-SUFFIX,yyjxgm.net,AdBlock +- DOMAIN-SUFFIX,yyp17.com,AdBlock +- DOMAIN-SUFFIX,yyt.irs01.com,AdBlock +- DOMAIN-SUFFIX,yzaosite.com,AdBlock +- DOMAIN-SUFFIX,yzh.jyjhkz.com,AdBlock +- DOMAIN-SUFFIX,yzh360.com,AdBlock +- DOMAIN-SUFFIX,yzygo.com,AdBlock +- DOMAIN-SUFFIX,yzytb.com,AdBlock +- DOMAIN-SUFFIX,z.clickvip.shop,AdBlock +- DOMAIN-SUFFIX,z.moatads.com,AdBlock +- DOMAIN-SUFFIX,z.nowscore.com,AdBlock +- DOMAIN-SUFFIX,z.sora.yoyi.com.cn,AdBlock +- DOMAIN-SUFFIX,z1.zedo.com,AdBlock +- DOMAIN-SUFFIX,z1hihu.xmcimg.com,AdBlock +- DOMAIN-SUFFIX,z2.lnymd.com,AdBlock +- DOMAIN-SUFFIX,zads.care2.com,AdBlock +- DOMAIN-SUFFIX,zae.gzzena.com,AdBlock +- DOMAIN-SUFFIX,zamar.cn,AdBlock +- DOMAIN-SUFFIX,zampdsp.com,AdBlock +- DOMAIN-SUFFIX,zantainet.com,AdBlock +- DOMAIN-SUFFIX,zapads.zapak.com,AdBlock +- DOMAIN-SUFFIX,zb.nxing.cn,AdBlock +- DOMAIN-SUFFIX,zbrushcn.com,AdBlock +- DOMAIN-SUFFIX,zbz.m.qxs.la,AdBlock +- DOMAIN-SUFFIX,zcdsp.com,AdBlock +- DOMAIN-SUFFIX,zcrtd.com,AdBlock +- DOMAIN-SUFFIX,zdjby.cn,AdBlock +- DOMAIN-SUFFIX,zdw.w8.com.cn,AdBlock +- DOMAIN-SUFFIX,ze5.com,AdBlock +- DOMAIN-SUFFIX,zedo.com,AdBlock +- DOMAIN-SUFFIX,zeus.qj.net,AdBlock +- DOMAIN-SUFFIX,zgc66.com,AdBlock +- DOMAIN-SUFFIX,zgdfz6h7po.me,AdBlock +- DOMAIN-SUFFIX,zgfszs.com,AdBlock +- DOMAIN-SUFFIX,zgjkv.com,AdBlock +- DOMAIN-SUFFIX,zgksb.com,AdBlock +- DOMAIN-SUFFIX,zgty365.com,AdBlock +- DOMAIN-SUFFIX,zgunion.cn,AdBlock +- DOMAIN-SUFFIX,zgyemy.com,AdBlock +- DOMAIN-SUFFIX,zhanzhang.net,AdBlock +- DOMAIN-SUFFIX,zhao258.com,AdBlock +- DOMAIN-SUFFIX,zhaoshang8.com,AdBlock +- DOMAIN-SUFFIX,zhaozecheng.cn,AdBlock +- DOMAIN-SUFFIX,zh-cn.shenyun.com,AdBlock +- DOMAIN-SUFFIX,zh-cn.shenyun.org,AdBlock +- DOMAIN-SUFFIX,zheng.cs12d.com,AdBlock +- DOMAIN-SUFFIX,zhengjian.org,AdBlock +- DOMAIN-SUFFIX,zhenxinet.com,AdBlock +- DOMAIN-SUFFIX,zhichi08.com,AdBlock +- DOMAIN-SUFFIX,zhidian3g.cn,AdBlock +- DOMAIN-SUFFIX,zhifenjie.com,AdBlock +- DOMAIN-SUFFIX,zhihei.com,AdBlock +- DOMAIN-SUFFIX,zhihu.xmcimg.com,AdBlock +- DOMAIN-SUFFIX,zhiong.net,AdBlock +- DOMAIN-SUFFIX,zhiyuanteam.com,AdBlock +- DOMAIN-SUFFIX,zhiziyun.com,AdBlock +- DOMAIN-SUFFIX,zhongchouyan.com,AdBlock +- DOMAIN-SUFFIX,zhongzicili.cc,AdBlock +- DOMAIN-SUFFIX,zhtjdl.com,AdBlock +- DOMAIN-SUFFIX,zhuanfakong.com,AdBlock +- DOMAIN-SUFFIX,zhuba8.com,AdBlock +- DOMAIN-SUFFIX,zhudiaosz.com,AdBlock +- DOMAIN-SUFFIX,zhuichaguoji.org,AdBlock +- DOMAIN-SUFFIX,zhushou.2345.com,AdBlock +- DOMAIN-SUFFIX,zhuuv.maoyumao.net,AdBlock +- DOMAIN-SUFFIX,zhwnlapi.etouch.cn,AdBlock +- DOMAIN-SUFFIX,zhybzp.cn,AdBlock +- DOMAIN-SUFFIX,zhzzx.com,AdBlock +- DOMAIN-SUFFIX,zisunion.com,AdBlock +- DOMAIN-SUFFIX,zizcy.com,AdBlock +- DOMAIN-SUFFIX,zjbdt.com,AdBlock +- DOMAIN-SUFFIX,zjhim.com,AdBlock +- DOMAIN-SUFFIX,zjjgtz.com,AdBlock +- DOMAIN-SUFFIX,zjm.zzmmkj.com,AdBlock +- DOMAIN-SUFFIX,zkrdy.com,AdBlock +- DOMAIN-SUFFIX,zlongad.com,AdBlock +- DOMAIN-SUFFIX,zlsw.nnjxqd.com,AdBlock +- DOMAIN-SUFFIX,zmj.guanqinjie.cn,AdBlock +- DOMAIN-SUFFIX,znsv.baidu.com,AdBlock +- DOMAIN-SUFFIX,zo66.com,AdBlock +- DOMAIN-SUFFIX,zp22938576.com,AdBlock +- DOMAIN-SUFFIX,zpe.klre.18183.com,AdBlock +- DOMAIN-SUFFIX,zq84.com,AdBlock +- DOMAIN-SUFFIX,zqworks.com,AdBlock +- DOMAIN-SUFFIX,zqzxz.com,AdBlock +- DOMAIN-SUFFIX,zreder.com,AdBlock +- DOMAIN-SUFFIX,zrpfk.com,AdBlock +- DOMAIN-SUFFIX,zs0613.mengchengbao.com,AdBlock +- DOMAIN-SUFFIX,zs1111.youzue.com,AdBlock +- DOMAIN-SUFFIX,zsdexun.com.cn,AdBlock +- DOMAIN-SUFFIX,zshacker.com,AdBlock +- DOMAIN-SUFFIX,zst.jzntxs.com,AdBlock +- DOMAIN-SUFFIX,zsxpx.com,AdBlock +- DOMAIN-SUFFIX,zszwcp.cn,AdBlock +- DOMAIN-SUFFIX,zt2088.com,AdBlock +- DOMAIN-SUFFIX,ztidu.com,AdBlock +- DOMAIN-SUFFIX,ztxbd.com,AdBlock +- DOMAIN-SUFFIX,zuche321.com,AdBlock +- DOMAIN-SUFFIX,zuiceshi.net,AdBlock +- DOMAIN-SUFFIX,zuimeitianqi.inveno.com,AdBlock +- DOMAIN-SUFFIX,zunmi.cn,AdBlock +- DOMAIN-SUFFIX,zws.avvo.com,AdBlock +- DOMAIN-SUFFIX,zx.baosmx.com,AdBlock +- DOMAIN-SUFFIX,zxcs.ggwan.com,AdBlock +- DOMAIN-SUFFIX,zxcs.linghit.com,AdBlock +- DOMAIN-SUFFIX,zxh.bzshzx.com,AdBlock +- DOMAIN-SUFFIX,zxjjzx.com,AdBlock +- DOMAIN-SUFFIX,zxr.fzxrjx.com,AdBlock +- DOMAIN-SUFFIX,zxziyuan.com,AdBlock +- DOMAIN-SUFFIX,zybpj.com,AdBlock +- DOMAIN-SUFFIX,zyf.fzdfwy.com,AdBlock +- DOMAIN-SUFFIX,zymo.mps.weibo.com,AdBlock +- DOMAIN-SUFFIX,zymro.com,AdBlock +- DOMAIN-SUFFIX,zytwq.net,AdBlock +- DOMAIN-SUFFIX,zyz.91friend.com,AdBlock +- DOMAIN-SUFFIX,zyz1.91friend.com,AdBlock +- DOMAIN-SUFFIX,zz.bdstatic.com,AdBlock +- DOMAIN-SUFFIX,zz123.com,AdBlock +- DOMAIN-SUFFIX,zzbaowen.com,AdBlock +- DOMAIN-SUFFIX,zzcw.office-mall.net,AdBlock +- DOMAIN-SUFFIX,zzd6.com,AdBlock +- DOMAIN-SUFFIX,zzjs2.firefang.cn,AdBlock +- DOMAIN-SUFFIX,zzpush.58.com,AdBlock +- DOMAIN-SUFFIX,zzrcz.com,AdBlock +- DOMAIN-SUFFIX,zzsx8.com,AdBlock +- DOMAIN-SUFFIX,zzy.mipujia.com,AdBlock +- DOMAIN-SUFFIX,zzy1.mipujia.com,AdBlock +- DOMAIN-SUFFIX,zzy1.quyaoya.com,AdBlock +- DOMAIN-SUFFIX,zzz7.52896368.com,AdBlock +- DOMAIN-SUFFIX,zzzzz4.52896368.com,AdBlock + +- IP-CIDR,1.3.0.10/32,AdBlock +- IP-CIDR,10.72.25.0/24,AdBlock +- IP-CIDR,101.201.29.182/32,AdBlock +- IP-CIDR,101.251.211.235/32,AdBlock +- IP-CIDR,103.249.254.113/32,AdBlock +- IP-CIDR,104.195.62.12/32,AdBlock +- IP-CIDR,104.197.140.120/32,AdBlock +- IP-CIDR,104.198.198.188/32,AdBlock +- IP-CIDR,106.187.95.251/32,AdBlock +- IP-CIDR,106.75.65.90/32,AdBlock +- IP-CIDR,106.75.65.92/32,AdBlock +- IP-CIDR,107.21.113.76/32,AdBlock +- IP-CIDR,108.171.248.234/32,AdBlock +- IP-CIDR,111.175.220.160/29,AdBlock +- IP-CIDR,111.175.220.164/32,AdBlock +- IP-CIDR,111.206.22.0/24,AdBlock +- IP-CIDR,111.30.135.167/32,AdBlock +- IP-CIDR,111.63.135.0/24,AdBlock +- IP-CIDR,111.73.45.147/32,AdBlock +- IP-CIDR,112.124.115.215/32,AdBlock +- IP-CIDR,112.74.95.46/32,AdBlock +- IP-CIDR,113.207.57.24/32,AdBlock +- IP-CIDR,113.57.230.88/32,AdBlock +- IP-CIDR,114.247.28.96/32,AdBlock +- IP-CIDR,114.55.123.44/32,AdBlock +- IP-CIDR,114.95.102.77/32,AdBlock +- IP-CIDR,115.182.16.79/32,AdBlock +- IP-CIDR,115.29.141.121/32,AdBlock +- IP-CIDR,115.29.247.48/32,AdBlock +- IP-CIDR,116.206.22.7/32,AdBlock +- IP-CIDR,116.55.227.242/32,AdBlock +- IP-CIDR,117.144.242.32/32,AdBlock +- IP-CIDR,117.25.133.209/32,AdBlock +- IP-CIDR,118.144.88.126/32,AdBlock +- IP-CIDR,118.144.88.215/28,AdBlock +- IP-CIDR,118.144.88.215/32,AdBlock +- IP-CIDR,119.188.13.0/24,AdBlock +- IP-CIDR,119.4.249.166/32,AdBlock +- IP-CIDR,120.132.57.41/32,AdBlock +- IP-CIDR,120.132.63.203/32,AdBlock +- IP-CIDR,120.197.89.239/32,AdBlock +- IP-CIDR,120.198.116.0/24,AdBlock +- IP-CIDR,120.26.151.246/32,AdBlock +- IP-CIDR,120.27.34.156/32,AdBlock +- IP-CIDR,120.55.199.139/32,AdBlock +- IP-CIDR,120.76.189.132/32,AdBlock +- IP-CIDR,120.80.57.123/32,AdBlock +- IP-CIDR,121.15.207.243/32,AdBlock +- IP-CIDR,121.199.73.185/32,AdBlock +- IP-CIDR,121.201.108.2/32,AdBlock +- IP-CIDR,121.201.11.95/32,AdBlock +- IP-CIDR,121.251.255.0/24,AdBlock +- IP-CIDR,121.43.75.169/32,AdBlock +- IP-CIDR,122.225.103.120/32,AdBlock +- IP-CIDR,122.226.223.163/32,AdBlock +- IP-CIDR,122.227.254.195/32,AdBlock +- IP-CIDR,122.228.236.165/32,AdBlock +- IP-CIDR,123.125.111.0/24,AdBlock +- IP-CIDR,123.139.154.201/24,AdBlock +- IP-CIDR,123.56.152.96/32,AdBlock +- IP-CIDR,123.57.162.39/32,AdBlock +- IP-CIDR,123.57.94.184/32,AdBlock +- IP-CIDR,123.59.152.170/32,AdBlock +- IP-CIDR,123.59.78.229/32,AdBlock +- IP-CIDR,124.14.21.147/32,AdBlock +- IP-CIDR,124.14.21.151/32,AdBlock +- IP-CIDR,124.160.194.11/32,AdBlock +- IP-CIDR,124.232.160.178/32,AdBlock +- IP-CIDR,125.46.61.28/32,AdBlock +- IP-CIDR,125.89.69.5/32,AdBlock +- IP-CIDR,139.159.32.82/32,AdBlock +- IP-CIDR,139.196.239.52/32,AdBlock +- IP-CIDR,139.224.26.92/32,AdBlock +- IP-CIDR,139.224.74.148/32,AdBlock +- IP-CIDR,146.148.85.61/32,AdBlock +- IP-CIDR,162.212.181.32/32,AdBlock +- IP-CIDR,173.208.177.227/32,AdBlock +- IP-CIDR,175.6.223.15/32,AdBlock +- IP-CIDR,180.166.52.24/32,AdBlock +- IP-CIDR,180.76.155.58/32,AdBlock +- IP-CIDR,180.76.162.60/32,AdBlock +- IP-CIDR,180.76.171.28/32,AdBlock +- IP-CIDR,180.76.172.149/32,AdBlock +- IP-CIDR,180.76.181.213/32,AdBlock +- IP-CIDR,182.92.81.104/32,AdBlock +- IP-CIDR,183.131.79.130/32,AdBlock +- IP-CIDR,183.131.79.30/32,AdBlock +- IP-CIDR,183.59.53.187/29,AdBlock +- IP-CIDR,183.59.53.237/32,AdBlock +- IP-CIDR,183.6.188.226/29,AdBlock +- IP-CIDR,198.40.52.11/32,AdBlock +- IP-CIDR,202.104.1.27/32,AdBlock +- IP-CIDR,202.105.165.202/32,AdBlock +- IP-CIDR,205.209.138.102/32,AdBlock +- IP-CIDR,211.103.159.32/32,AdBlock +- IP-CIDR,211.137.132.89/32,AdBlock +- IP-CIDR,211.139.178.49/32,AdBlock +- IP-CIDR,211.149.225.23/32,AdBlock +- IP-CIDR,211.167.105.131/32,AdBlock +- IP-CIDR,211.98.71.195/29,AdBlock +- IP-CIDR,218.25.246.118/32,AdBlock +- IP-CIDR,218.93.127.37/32,AdBlock +- IP-CIDR,219.234.83.60/32,AdBlock +- IP-CIDR,220.115.251.25/32,AdBlock +- IP-CIDR,220.196.52.141/32,AdBlock +- IP-CIDR,221.179.140.0/24,AdBlock +- IP-CIDR,221.179.183.0/24,AdBlock +- IP-CIDR,221.179.191.0/24,AdBlock +- IP-CIDR,221.179.46.190/25,AdBlock +- IP-CIDR,221.204.213.222/32,AdBlock +- IP-CIDR,221.228.17.152/32,AdBlock +- IP-CIDR,221.228.214.101/32,AdBlock +- IP-CIDR,221.231.6.79/32,AdBlock +- IP-CIDR,222.186.61.91/32,AdBlock +- IP-CIDR,222.186.61.95/32,AdBlock +- IP-CIDR,222.186.61.96/32,AdBlock +- IP-CIDR,222.186.61.97/32,AdBlock +- IP-CIDR,222.187.226.96/32,AdBlock +- IP-CIDR,222.73.156.235/32,AdBlock +- IP-CIDR,223.6.255.99/32,AdBlock +- IP-CIDR,23.235.156.167/32,AdBlock +- IP-CIDR,23.42.186.24/32,AdBlock +- IP-CIDR,23.66.147.48/32,AdBlock +- IP-CIDR,27.255.67.120/32,AdBlock +- IP-CIDR,42.51.146.207/32,AdBlock +- IP-CIDR,45.34.240.72/32,AdBlock +- IP-CIDR,46.165.197.153/32,AdBlock +- IP-CIDR,46.165.197.231/32,AdBlock +- IP-CIDR,47.89.59.182/32,AdBlock +- IP-CIDR,47.90.50.177/32,AdBlock +- IP-CIDR,47.93.103.196/32,AdBlock +- IP-CIDR,47.94.89.32/32,AdBlock +- IP-CIDR,47.96.162.122/32,AdBlock +- IP-CIDR,58.215.179.159/32,AdBlock +- IP-CIDR,58.221.28.166/32,AdBlock +- IP-CIDR,60.19.29.21/28,AdBlock +- IP-CIDR,60.190.139.164/32,AdBlock +- IP-CIDR,60.191.124.196/32,AdBlock +- IP-CIDR,60.210.17.12/24,AdBlock +- IP-CIDR,61.129.70.132/32,AdBlock +- IP-CIDR,61.132.216.232/32,AdBlock +- IP-CIDR,61.132.221.146/32,AdBlock +- IP-CIDR,61.132.255.212/32,AdBlock +- IP-CIDR,61.132.255.222/25,AdBlock +- IP-CIDR,61.147.184.18/32,AdBlock +- IP-CIDR,61.152.223.15/32,AdBlock +- IP-CIDR,61.160.200.223/32,AdBlock +- IP-CIDR,61.160.200.242/32,AdBlock +- IP-CIDR,61.160.200.252/32,AdBlock +- IP-CIDR,61.174.50.167/25,AdBlock +- IP-CIDR,61.191.12.74/32,AdBlock +- IP-CIDR,61.191.206.4/32,AdBlock +- IP-CIDR,67.229.224.28/32,AdBlock +- IP-CIDR,69.28.57.245/32,AdBlock +- IP-CIDR,74.117.182.77/32,AdBlock +- IP-CIDR,78.140.131.214/32,AdBlock + + + +# > Bilibili +- DOMAIN-KEYWORD,bilibili,AsianTV +- DOMAIN-SUFFIX,acg.tv,AsianTV +- DOMAIN-SUFFIX,acgvideo.com,AsianTV +- DOMAIN-SUFFIX,b23.tv,AsianTV +- DOMAIN-SUFFIX,biliapi.com,AsianTV +- DOMAIN-SUFFIX,biliapi.net,AsianTV +- DOMAIN-SUFFIX,bilibili.com,AsianTV +- DOMAIN-SUFFIX,biligame.com,AsianTV +- DOMAIN-SUFFIX,biligame.net,AsianTV +- DOMAIN-SUFFIX,bilivideo.com,AsianTV +- DOMAIN-SUFFIX,hdslb.com,AsianTV +- DOMAIN-SUFFIX,im9.com,AsianTV + +# > IQIYI +- DOMAIN-KEYWORD,qiyi,AsianTV +- DOMAIN-SUFFIX,qy.net,AsianTV +- IP-CIDR,101.227.0.0/16,AsianTV +- IP-CIDR,101.224.0.0/13,AsianTV +- IP-CIDR,119.176.0.0/12,AsianTV + +# > letv +- DOMAIN-SUFFIX,api.mob.app.letv.com,AsianTV + +# > Tencent Video +- DOMAIN-SUFFIX,vv.video.qq.com,AsianTV + +# > Youku +- IP-CIDR,106.11.0.0/16,AsianTV + + + +# > ABC +- DOMAIN-SUFFIX,edgedatg.com,GlobalTV +- DOMAIN-SUFFIX,go.com,GlobalTV + +# > Abema TV +- DOMAIN-SUFFIX,abema.io,GlobalTV +- DOMAIN-SUFFIX,akamaized.net,GlobalTV +- DOMAIN-SUFFIX,ameba.jp,GlobalTV +- DOMAIN-SUFFIX,hayabusa.io,GlobalTV + +# > Amazon Prime Video +- DOMAIN-SUFFIX,aiv-cdn.net,GlobalTV +- DOMAIN-SUFFIX,amazonaws.com,GlobalTV +- DOMAIN-SUFFIX,amazonvideo.com,GlobalTV +- DOMAIN-SUFFIX,llnwd.net,GlobalTV + +# > Apple TV +- DOMAIN,np-edge.itunes.apple.com,GlobalTV +- DOMAIN,play-edge.itunes.apple.com,GlobalTV +- DOMAIN-SUFFIX,tv.apple.com,GlobalTV + +# > Bahamut +- DOMAIN-SUFFIX,bahamut.com.tw,GlobalTV +- DOMAIN-SUFFIX,gamer.com.tw,GlobalTV +- DOMAIN-SUFFIX,hinet.net,GlobalTV + +# > BBC +- DOMAIN-KEYWORD,bbcfmt,GlobalTV +- DOMAIN-KEYWORD,co.uk,GlobalTV +- DOMAIN-KEYWORD,uk-live,GlobalTV +- DOMAIN-SUFFIX,bbc.co,GlobalTV +- DOMAIN-SUFFIX,bbc.co.uk,GlobalTV +- DOMAIN-SUFFIX,bbc.com,GlobalTV +- DOMAIN-SUFFIX,bbci.co,GlobalTV +- DOMAIN-SUFFIX,bbci.co.uk,GlobalTV + +# > CHOCO TV +- DOMAIN-SUFFIX,chocotv.com.tw,GlobalTV + +# > Disney Plus +- DOMAIN,cdn.registerdisney.go.com,GlobalTV +- DOMAIN-SUFFIX,disneyplus.com,GlobalTV +- DOMAIN-SUFFIX,disney-plus.net,GlobalTV +- DOMAIN-SUFFIX,dssott.com,GlobalTV +- DOMAIN-SUFFIX,bamgrid.com,GlobalTV +- DOMAIN-SUFFIX,execute-api.us-east-1.amazonaws.com,GlobalTV + +# > Now E +- DOMAIN-KEYWORD,nowe,GlobalTV +- DOMAIN,bcbolthboa-a.akamaihd.net,GlobalTV +- DOMAIN-SUFFIX,nowe.com,GlobalTV +- DOMAIN-SUFFIX,youboranqs01.com,GlobalTV + +# > Epicgames +- DOMAIN-KEYWORD,epicgames,GlobalTV +- DOMAIN-SUFFIX,helpshift.com,GlobalTV + +# > Fox+ +- DOMAIN-KEYWORD,foxplus,GlobalTV +- DOMAIN-SUFFIX,config.fox.com,GlobalTV +- DOMAIN-SUFFIX,emome.net,GlobalTV +- DOMAIN-SUFFIX,fox.com,GlobalTV +- DOMAIN-SUFFIX,foxdcg.com,GlobalTV +- DOMAIN-SUFFIX,foxnow.com,GlobalTV +- DOMAIN-SUFFIX,foxplus.com,GlobalTV +- DOMAIN-SUFFIX,foxplay.com,GlobalTV +- DOMAIN-SUFFIX,ipinfo.io,GlobalTV +- DOMAIN-SUFFIX,mstage.io,GlobalTV +- DOMAIN-SUFFIX,now.com,GlobalTV +- DOMAIN-SUFFIX,theplatform.com,GlobalTV +- DOMAIN-SUFFIX,urlload.net,GlobalTV + +# > HBO && HBO Go +- DOMAIN-SUFFIX,execute-api.ap-southeast-1.amazonaws.com,GlobalTV +- DOMAIN-SUFFIX,hbo.com,GlobalTV +- DOMAIN-SUFFIX,hboasia.com,GlobalTV +- DOMAIN-SUFFIX,hbogo.com,GlobalTV +- DOMAIN-SUFFIX,hbogoasia.com,GlobalTV +- DOMAIN-SUFFIX,hbogoasia.hk,GlobalTV + +# > Hulu +- DOMAIN-SUFFIX,happyon.jp,GlobalTV +- DOMAIN-SUFFIX,hulu.com,GlobalTV +- DOMAIN-SUFFIX,huluim.com,GlobalTV +- DOMAIN-SUFFIX,hulustream.com,GlobalTV + +# > Imkan +- DOMAIN-SUFFIX,imkan.tv,GlobalTV + +# > JOOX +- DOMAIN-SUFFIX,joox.com,GlobalTV + +# > MytvSUPER +- DOMAIN-KEYWORD,nowtv100,GlobalTV +- DOMAIN-KEYWORD,rthklive,GlobalTV +- DOMAIN-SUFFIX,mytvsuper.com,GlobalTV +- DOMAIN-SUFFIX,tvb.com,GlobalTV + +# > Netflix +- DOMAIN-SUFFIX,netflix.com,GlobalTV +- DOMAIN-SUFFIX,netflix.net,GlobalTV +- DOMAIN-SUFFIX,nflxext.com,GlobalTV +- DOMAIN-SUFFIX,nflximg.com,GlobalTV +- DOMAIN-SUFFIX,nflximg.net,GlobalTV +- DOMAIN-SUFFIX,nflxso.net,GlobalTV +- DOMAIN-SUFFIX,nflxvideo.net,GlobalTV + +# > Pandora +- DOMAIN-SUFFIX,pandora.com,GlobalTV + +# > Sky GO +- DOMAIN-SUFFIX,sky.com,GlobalTV +- DOMAIN-SUFFIX,skygo.co.nz,GlobalTV + +# > Spotify +- DOMAIN-KEYWORD,spotify,GlobalTV +- DOMAIN-SUFFIX,scdn.co,GlobalTV +- DOMAIN-SUFFIX,spoti.fi,GlobalTV + +# > viuTV +- DOMAIN-SUFFIX,cloudfront.net,GlobalTV +- DOMAIN-SUFFIX,viu.com,GlobalTV +- DOMAIN-SUFFIX,viu.tv,GlobalTV +- DOMAIN-SUFFIX,viu.now.com,GlobalTV + +# > Youtube +- DOMAIN-KEYWORD,youtube,GlobalTV +- DOMAIN-SUFFIX,googlevideo.com,GlobalTV +- DOMAIN-SUFFIX,gvt2.com,GlobalTV +- DOMAIN-SUFFIX,youtu.be,GlobalTV + + +# > Telegram +- DOMAIN-SUFFIX,t.me,Telegram +- DOMAIN-SUFFIX,tdesktop.com,Telegram +- DOMAIN-SUFFIX,telegra.ph,Telegram +- DOMAIN-SUFFIX,telegram.me,Telegram +- DOMAIN-SUFFIX,telegram.org,Telegram +- IP-CIDR,91.108.4.0/22,Telegram +- IP-CIDR,91.108.56.0/22,Telegram +- IP-CIDR,91.108.56.0/23,Telegram +- IP-CIDR,109.239.140.0/24,Telegram +- IP-CIDR,149.154.160.0/22,Telegram +- IP-CIDR,149.154.164.0/22,Telegram +- IP-CIDR,149.154.168.0/22,Telegram +- IP-CIDR,149.154.172.0/22,Telegram +- IP-CIDR6,2001:67c:4e8::/48,Telegram +- IP-CIDR6,2001:b28:f23d::/48,Telegram +- IP-CIDR6,2001:b28:f23f::/48,Telegram + + + +# > Fast +- DOMAIN-SUFFIX,fast.com,Speedtest + +# > Speedtest +- DOMAIN-KEYWORD,speedtest,Speedtest +- DOMAIN-SUFFIX,ooklaserver.net,Speedtest + + + +# > NeteaseMusic +- DOMAIN-SUFFIX,music.126.net,Netease Music +- DOMAIN-SUFFIX,music.163.com,Netease Music +- IP-CIDR,39.105.63.80/32,Netease Music +- IP-CIDR,45.254.48.1/32,Netease Music +- IP-CIDR,47.100.127.239/32,Netease Music +- IP-CIDR,59.111.160.195/32,Netease Music +- IP-CIDR,59.111.160.197/32,Netease Music +- IP-CIDR,59.111.181.35/32,Netease Music +- IP-CIDR,59.111.181.38/32,Netease Music +- IP-CIDR,59.111.181.60/32,Netease Music +- IP-CIDR,101.71.154.241/32,Netease Music +- IP-CIDR,103.126.92.132/32,Netease Music +- IP-CIDR,103.126.92.133/32,Netease Music +- IP-CIDR,112.13.119.17/32,Netease Music +- IP-CIDR,112.13.122.1/32,Netease Music +- IP-CIDR,115.236.118.33/32,Netease Music +- IP-CIDR,115.236.121.1/32,Netease Music +- IP-CIDR,118.24.63.156/32,Netease Music +- IP-CIDR,193.112.159.225/32,Netease Music +- IP-CIDR,223.252.199.66/32,Netease Music +- IP-CIDR,223.252.199.67/32,Netease Music + + + +# > Line +- DOMAIN-SUFFIX,lin.ee,Proxy +- DOMAIN-SUFFIX,line.me,Proxy +- DOMAIN-SUFFIX,line.naver.jp,Proxy +- DOMAIN-SUFFIX,line-apps.com,Proxy +- DOMAIN-SUFFIX,line-cdn.net,Proxy +- DOMAIN-SUFFIX,line-scdn.net,Proxy +- DOMAIN-SUFFIX,nhncorp.jp,Proxy + +# > Microsoft +- DOMAIN-KEYWORD,microsoft,Proxy +- DOMAIN-SUFFIX,hotmail.com,Proxy +- DOMAIN-SUFFIX,live.com,Proxy +- DOMAIN-SUFFIX,live.net,Proxy +- DOMAIN-SUFFIX,msn.com,Proxy +- DOMAIN-SUFFIX,office.com,Proxy +- DOMAIN-SUFFIX,office.net,Proxy +- DOMAIN-SUFFIX,outlook.com,Proxy + +# > Spark +- DOMAIN-SUFFIX,api.amplitude.com,Proxy +- DOMAIN-SUFFIX,app.smartmailcloud.com,Proxy +- DOMAIN-SUFFIX,gate.hockeyapp.net,Proxy +- DOMAIN-SUFFIX,smartmailcloud.com,Proxy + +# > Steam +- DOMAIN-SUFFIX,fanatical.com,Proxy +- DOMAIN-SUFFIX,humblebundle.com,Proxy +- DOMAIN-SUFFIX,steamcommunity.com,Proxy +- DOMAIN-SUFFIX,steampowered.com,Proxy +- DOMAIN-SUFFIX,steamstatic.com,Proxy + +# > Top blocked sites +- DOMAIN-SUFFIX,2o7.net,Proxy +- DOMAIN-SUFFIX,4everProxy.com,Proxy +- DOMAIN-SUFFIX,4shared.com,Proxy +- DOMAIN-SUFFIX,4sqi.net,Proxy +- DOMAIN-SUFFIX,9to5mac.com,Proxy +- DOMAIN-SUFFIX,abpchina.org,Proxy +- DOMAIN-SUFFIX,accountkit.com,Proxy +- DOMAIN-SUFFIX,adblockplus.org,Proxy +- DOMAIN-SUFFIX,adobe.com,Proxy +- DOMAIN-SUFFIX,adobedtm.com,Proxy +- DOMAIN-SUFFIX,aerisapi.com,Proxy +- DOMAIN-SUFFIX,akamaihd.net,Proxy +- DOMAIN-SUFFIX,airtable.com,Proxy +- DOMAIN-SUFFIX,alfredapp.com,Proxy +- DOMAIN-SUFFIX,allconnected.co,Proxy +- DOMAIN-SUFFIX,amazon.com,Proxy +- DOMAIN-SUFFIX,amazonaws.com,Proxy +- DOMAIN-SUFFIX,ampproject.com,Proxy +- DOMAIN-SUFFIX,ampproject.net,Proxy +- DOMAIN-SUFFIX,ampproject.org,Proxy +- DOMAIN-SUFFIX,anaconda.com,Proxy +- DOMAIN-SUFFIX,ancsconf.org,Proxy +- DOMAIN-SUFFIX,android.com,Proxy +- DOMAIN-SUFFIX,androidify.com,Proxy +- DOMAIN-SUFFIX,android-x86.org,Proxy +- DOMAIN-SUFFIX,angularjs.org,Proxy +- DOMAIN-SUFFIX,anthonycalzadilla.com,Proxy +- DOMAIN-SUFFIX,aol.com,Proxy +- DOMAIN-SUFFIX,aolcdn.com,Proxy +- DOMAIN-SUFFIX,api.mixpanel.com,Proxy +- DOMAIN-SUFFIX,api.tiktokv.com,Proxy +- DOMAIN-SUFFIX,api.urbandictionary.com,Proxy +- DOMAIN-SUFFIX,apigee.com,Proxy +- DOMAIN-SUFFIX,apk-dl.com,Proxy +- DOMAIN-SUFFIX,apkpure.com,Proxy +- DOMAIN-SUFFIX,appdownloader.net,Proxy +- DOMAIN-SUFFIX,Apple-dns.net,Proxy +- DOMAIN-SUFFIX,app-measurement.com,Proxy +- DOMAIN-SUFFIX,appshopper.com,Proxy +- DOMAIN-SUFFIX,arcgis.com,Proxy +- DOMAIN-SUFFIX,archive.is,Proxy +- DOMAIN-SUFFIX,archive.org,Proxy +- DOMAIN-SUFFIX,archives.gov,Proxy +- DOMAIN-SUFFIX,armorgames.com,Proxy +- DOMAIN-SUFFIX,aspnetcdn.com,Proxy +- DOMAIN-SUFFIX,async.be,Proxy +- DOMAIN-SUFFIX,att.com,Proxy +- DOMAIN-SUFFIX,avgle.com,Proxy +- DOMAIN-SUFFIX,awsstatic.com,Proxy +- DOMAIN-SUFFIX,azure.com,Proxy +- DOMAIN-SUFFIX,azureedge.net,Proxy +- DOMAIN-SUFFIX,azurewebsites.net,Proxy +- DOMAIN-SUFFIX,badoo.com,Proxy +- DOMAIN-SUFFIX,bandisoft.com,Proxy +- DOMAIN-SUFFIX,bbtoystore.com,Proxy +- DOMAIN-SUFFIX,betvictor.com,Proxy +- DOMAIN-SUFFIX,bigsound.org,Proxy +- DOMAIN-SUFFIX,bing.com,Proxy +- DOMAIN-SUFFIX,bing.net,Proxy +- DOMAIN-SUFFIX,bintray.com,Proxy +- DOMAIN-SUFFIX,bit.com,Proxy +- DOMAIN-SUFFIX,bit.do,Proxy +- DOMAIN-SUFFIX,bit.ly,Proxy +- DOMAIN-SUFFIX,bitbucket.org,Proxy +- DOMAIN-SUFFIX,bitcointalk.org,Proxy +- DOMAIN-SUFFIX,bitshare.com,Proxy +- DOMAIN-SUFFIX,bkrtx.com,Proxy +- DOMAIN-SUFFIX,blog.com,Proxy +- DOMAIN-SUFFIX,blogcdn.com,Proxy +- DOMAIN-SUFFIX,blogger.com,Proxy +- DOMAIN-SUFFIX,bloglovin.com,Proxy +- DOMAIN-SUFFIX,blogsmithmedia.com,Proxy +- DOMAIN-SUFFIX,blogspot.hk,Proxy +- DOMAIN-SUFFIX,bloomberg.cn,Proxy +- DOMAIN-SUFFIX,bloomberg.com,Proxy +- DOMAIN-SUFFIX,books.com.tw,Proxy +- DOMAIN-SUFFIX,boomtrain.com,Proxy +- DOMAIN-SUFFIX,botanwang.com,Proxy +- DOMAIN-SUFFIX,box.com,Proxy +- DOMAIN-SUFFIX,box.net,Proxy +- DOMAIN-SUFFIX,boxun.com,Proxy +- DOMAIN-SUFFIX,cachefly.net,Proxy +- DOMAIN-SUFFIX,cbc.ca,Proxy +- DOMAIN-SUFFIX,cdn.segment.com,Proxy +- DOMAIN-SUFFIX,cdnst.net,Proxy +- DOMAIN-SUFFIX,celestrak.com,Proxy +- DOMAIN-SUFFIX,census.gov,Proxy +- DOMAIN-SUFFIX,certificate-transparency.org,Proxy +- DOMAIN-SUFFIX,chinadigitaltimes.net,Proxy +- DOMAIN-SUFFIX,chinatimes.com,Proxy +- DOMAIN-SUFFIX,chrome.com,Proxy +- DOMAIN-SUFFIX,chromecast.com,Proxy +- DOMAIN-SUFFIX,chromercise.com,Proxy +- DOMAIN-SUFFIX,chromestatus.com,Proxy +- DOMAIN-SUFFIX,chromium.org,Proxy +- DOMAIN-SUFFIX,cl.ly,Proxy +- DOMAIN-SUFFIX,cloudflare.com,Proxy +- DOMAIN-SUFFIX,cloudfront.net,Proxy +- DOMAIN-SUFFIX,cloudgarage.jp,Proxy +- DOMAIN-SUFFIX,cloudmagic.com,Proxy +- DOMAIN-SUFFIX,cmail19.com,Proxy +- DOMAIN-SUFFIX,cnet.com,Proxy +- DOMAIN-SUFFIX,cnn.com,Proxy +- DOMAIN-SUFFIX,cocoapods.org,Proxy +- DOMAIN-SUFFIX,comodoca.com,Proxy +- DOMAIN-SUFFIX,content.office.net,Proxy +- DOMAIN-SUFFIX,culturedcode.com,Proxy +- DOMAIN-SUFFIX,cygames.jp,Proxy +- DOMAIN-SUFFIX,d.pr,Proxy +- DOMAIN-SUFFIX,danilo.to,Proxy +- DOMAIN-SUFFIX,daolan.net,Proxy +- DOMAIN-SUFFIX,data-vocabulary.org,Proxy +- DOMAIN-SUFFIX,dayone.me,Proxy +- DOMAIN-SUFFIX,db.tt,Proxy +- DOMAIN-SUFFIX,dcmilitary.com,Proxy +- DOMAIN-SUFFIX,deja.com,Proxy +- DOMAIN-SUFFIX,demdex.net,Proxy +- DOMAIN-SUFFIX,deskconnect.com,Proxy +- DOMAIN-SUFFIX,digisfera.com,Proxy +- DOMAIN-SUFFIX,digitaltrends.com,Proxy +- DOMAIN-SUFFIX,disconnect.me,Proxy +- DOMAIN-SUFFIX,disq.us,Proxy +- DOMAIN-SUFFIX,disqus.com,Proxy +- DOMAIN-SUFFIX,disquscdn.com,Proxy +- DOMAIN-SUFFIX,dmm.co.jp,Proxy +- DOMAIN-SUFFIX,dnsimple.com,Proxy +- DOMAIN-SUFFIX,docker.com,Proxy +- DOMAIN-SUFFIX,doub.io,Proxy +- DOMAIN-SUFFIX,dowjones.com,Proxy +- DOMAIN-SUFFIX,dribbble.com,Proxy +- DOMAIN-SUFFIX,droplr.com,Proxy +- DOMAIN-SUFFIX,duckduckgo.com,Proxy +- DOMAIN-SUFFIX,dueapp.com,Proxy +- DOMAIN-SUFFIX,dw.com,Proxy +- DOMAIN-SUFFIX,easybib.com,Proxy +- DOMAIN-SUFFIX,economist.com,Proxy +- DOMAIN-SUFFIX,edgecastcdn.net,Proxy +- DOMAIN-SUFFIX,edgekey.net,Proxy +- DOMAIN-SUFFIX,edgesuite.net,Proxy +- DOMAIN-SUFFIX,engadget.com,Proxy +- DOMAIN-SUFFIX,entrust.net,Proxy +- DOMAIN-SUFFIX,eurekavpt.com,Proxy +- DOMAIN-SUFFIX,evernote.com,Proxy +- DOMAIN-SUFFIX,extmatrix.com,Proxy +- DOMAIN-SUFFIX,eyny.com,Proxy +- DOMAIN-SUFFIX,fabric.io,Proxy +- DOMAIN-SUFFIX,fastly.net,Proxy +- DOMAIN-SUFFIX,fastmail.com,Proxy +- DOMAIN-SUFFIX,fc2.com,Proxy +- DOMAIN-SUFFIX,feedburner.com,Proxy +- DOMAIN-SUFFIX,feedly.com,Proxy +- DOMAIN-SUFFIX,feedsportal.com,Proxy +- DOMAIN-SUFFIX,fiftythree.com,Proxy +- DOMAIN-SUFFIX,firebaseio.com,Proxy +- DOMAIN-SUFFIX,flexibits.com,Proxy +- DOMAIN-SUFFIX,flickr.com,Proxy +- DOMAIN-SUFFIX,flipboard.com,Proxy +- DOMAIN-SUFFIX,flipkart.com,Proxy +- DOMAIN-SUFFIX,flitto.com,Proxy +- DOMAIN-SUFFIX,flurry.com,Proxy +- DOMAIN-SUFFIX,freeopenProxy.com,Proxy +- DOMAIN-SUFFIX,fubo.tv,Proxy +- DOMAIN-SUFFIX,fullstory.com,Proxy +- DOMAIN-SUFFIX,fzlm.net,Proxy +- DOMAIN-SUFFIX,g.co,Proxy +- DOMAIN-SUFFIX,gabia.net,Proxy +- DOMAIN-SUFFIX,garena.com,Proxy +- DOMAIN-SUFFIX,gameloft.com,Proxy +- DOMAIN-SUFFIX,geni.us,Proxy +- DOMAIN-SUFFIX,get.how,Proxy +- DOMAIN-SUFFIX,getcloudapp.com,Proxy +- DOMAIN-SUFFIX,getfoxyProxy.org,Proxy +- DOMAIN-SUFFIX,getlantern.org,Proxy +- DOMAIN-SUFFIX,getmdl.io,Proxy +- DOMAIN-SUFFIX,getpricetag.com,Proxy +- DOMAIN-SUFFIX,gfw.press,Proxy +- DOMAIN-SUFFIX,gfx.ms,Proxy +- DOMAIN-SUFFIX,ggpht.com,Proxy +- DOMAIN-SUFFIX,ghostnoteapp.com,Proxy +- DOMAIN-SUFFIX,git.io,Proxy +- DOMAIN-SUFFIX,gitbook.com,Proxy +- DOMAIN-SUFFIX,globalsign.com,Proxy +- DOMAIN-SUFFIX,gmocloud.com,Proxy +- DOMAIN-SUFFIX,gmodules.com,Proxy +- DOMAIN-SUFFIX,go.com,Proxy +- DOMAIN-SUFFIX,go.jp,Proxy +- DOMAIN-SUFFIX,godaddy.com,Proxy +- DOMAIN-SUFFIX,golang.org,Proxy +- DOMAIN-SUFFIX,gongm.in,Proxy +- DOMAIN-SUFFIX,goo.gl,Proxy +- DOMAIN-SUFFIX,goodreaders.com,Proxy +- DOMAIN-SUFFIX,goodreads.com,Proxy +- DOMAIN-SUFFIX,gravatar.com,Proxy +- DOMAIN-SUFFIX,gstatic.cn,Proxy +- DOMAIN-SUFFIX,gstatic.com,Proxy +- DOMAIN-SUFFIX,gunsamerica.com,Proxy +- DOMAIN-SUFFIX,gvt0.com,Proxy +- DOMAIN-SUFFIX,gvt1.com,Proxy +- DOMAIN-SUFFIX,helpshift.com,Proxy +- DOMAIN-SUFFIX,hinet.net,Proxy +- DOMAIN-SUFFIX,hockeyapp.net,Proxy +- DOMAIN-SUFFIX,homedepot.com,Proxy +- DOMAIN-SUFFIX,hootsuite.com,Proxy +- DOMAIN-SUFFIX,howtoforge.com,Proxy +- DOMAIN-SUFFIX,iam.soy,Proxy +- DOMAIN-SUFFIX,icoco.com,Proxy +- DOMAIN-SUFFIX,icons8.com,Proxy +- DOMAIN-SUFFIX,ift.tt,Proxy +- DOMAIN-SUFFIX,ifttt.com,Proxy +- DOMAIN-SUFFIX,imageshack.us,Proxy +- DOMAIN-SUFFIX,img.ly,Proxy +- DOMAIN-SUFFIX,imgur.com,Proxy +- DOMAIN-SUFFIX,imore.com,Proxy +- DOMAIN-SUFFIX,ingress.com,Proxy +- DOMAIN-SUFFIX,insder.co,Proxy +- DOMAIN-SUFFIX,instapaper.com,Proxy +- DOMAIN-SUFFIX,instructables.com,Proxy +- DOMAIN-SUFFIX,io.io,Proxy +- DOMAIN-SUFFIX,ip.sb,Proxy +- DOMAIN-SUFFIX,ipaddress.com,Proxy +- DOMAIN-SUFFIX,ipn.li,Proxy +- DOMAIN-SUFFIX,is.gd,Proxy +- DOMAIN-SUFFIX,ishowsapp.com,Proxy +- DOMAIN-SUFFIX,issuu.com,Proxy +- DOMAIN-SUFFIX,itgonglun.com,Proxy +- DOMAIN-SUFFIX,itun.es,Proxy +- DOMAIN-SUFFIX,ixquick.com,Proxy +- DOMAIN-SUFFIX,j.mp,Proxy +- DOMAIN-SUFFIX,javbus.com,Proxy +- DOMAIN-SUFFIX,js.revsci.net,Proxy +- DOMAIN-SUFFIX,jshint.com,Proxy +- DOMAIN-SUFFIX,jtvnw.net,Proxy +- DOMAIN-SUFFIX,justgetflux.com,Proxy +- DOMAIN-SUFFIX,kakao.co.kr,Proxy +- DOMAIN-SUFFIX,kakao.com,Proxy +- DOMAIN-SUFFIX,kakaocdn.net,Proxy +- DOMAIN-SUFFIX,kat.cr,Proxy +- DOMAIN-SUFFIX,kenengba.com,Proxy +- DOMAIN-SUFFIX,kik.com,Proxy +- DOMAIN-SUFFIX,klip.me,Proxy +- DOMAIN-SUFFIX,leancloud.com,Proxy +- DOMAIN-SUFFIX,leetcode.com,Proxy +- DOMAIN-SUFFIX,lhie1.com,Proxy +- DOMAIN-SUFFIX,libsyn.com,Proxy +- DOMAIN-SUFFIX,licdn.com,Proxy +- DOMAIN-SUFFIX,lightboxcdn.com,Proxy +- DOMAIN-SUFFIX,like.com,Proxy +- DOMAIN-SUFFIX,linkedin.com,Proxy +- DOMAIN-SUFFIX,linode.com,Proxy +- DOMAIN-SUFFIX,lithium.com,Proxy +- DOMAIN-SUFFIX,littlehj.com,Proxy +- DOMAIN-SUFFIX,livefilestore.com,Proxy +- DOMAIN-SUFFIX,llnwd.net,Proxy +- DOMAIN-SUFFIX,localnetwork.uop,Proxy +- DOMAIN-SUFFIX,logmein.com,Proxy +- DOMAIN-SUFFIX,macid.co,Proxy +- DOMAIN-SUFFIX,macromedia.com,Proxy +- DOMAIN-SUFFIX,macrumors.com,Proxy +- DOMAIN-SUFFIX,manhuaren.com,Proxy +- DOMAIN-SUFFIX,marketwatch.com,Proxy +- DOMAIN-SUFFIX,mashable.com,Proxy +- DOMAIN-SUFFIX,mathjax.org,Proxy +- DOMAIN-SUFFIX,maven.org,Proxy +- DOMAIN-SUFFIX,medium.com,Proxy +- DOMAIN-SUFFIX,mega.co.nz,Proxy +- DOMAIN-SUFFIX,mega.nz,Proxy +- DOMAIN-SUFFIX,megaupload.com,Proxy +- DOMAIN-SUFFIX,microsofttranslator.com,Proxy +- DOMAIN-SUFFIX,mindnode.com,Proxy +- DOMAIN-SUFFIX,mlssoccer.com,Proxy +- DOMAIN-SUFFIX,mobile01.com,Proxy +- DOMAIN-SUFFIX,modmyi.com,Proxy +- DOMAIN-SUFFIX,moves-export.com,Proxy +- DOMAIN-SUFFIX,mp3buscador.com,Proxy +- DOMAIN-SUFFIX,msedge.net,Proxy +- DOMAIN-SUFFIX,mycnnews.com,Proxy +- DOMAIN-SUFFIX,myfontastic.com,Proxy +- DOMAIN-SUFFIX,name.com,Proxy +- DOMAIN-SUFFIX,nasa.gov,Proxy +- DOMAIN-SUFFIX,ndr.de,Proxy +- DOMAIN-SUFFIX,netdna-cdn.com,Proxy +- DOMAIN-SUFFIX,newipnow.com,Proxy +- DOMAIN-SUFFIX,nextmedia.com,Proxy +- DOMAIN-SUFFIX,nih.gov,Proxy +- DOMAIN-SUFFIX,nintendo.com,Proxy +- DOMAIN-SUFFIX,nintendo.net,Proxy +- DOMAIN-SUFFIX,notion.so,Proxy +- DOMAIN-SUFFIX,novafile.com,Proxy +- DOMAIN-SUFFIX,nrk.no,Proxy +- DOMAIN-SUFFIX,nsstatic.net,Proxy +- DOMAIN-SUFFIX,nssurge.com,Proxy +- DOMAIN-SUFFIX,nyt.com,Proxy +- DOMAIN-SUFFIX,nytimes.com,Proxy +- DOMAIN-SUFFIX,nytimg.com,Proxy +- DOMAIN-SUFFIX,nytstyle.com,Proxy +- DOMAIN-SUFFIX,office365.com,Proxy +- DOMAIN-SUFFIX,omnigroup.com,Proxy +- DOMAIN-SUFFIX,onedrive.com,Proxy +- DOMAIN-SUFFIX,onenote.com,Proxy +- DOMAIN-SUFFIX,ooyala.com,Proxy +- DOMAIN-SUFFIX,openvpn.net,Proxy +- DOMAIN-SUFFIX,openwrt.org,Proxy +- DOMAIN-SUFFIX,optimizely.com,Proxy +- DOMAIN-SUFFIX,orkut.com,Proxy +- DOMAIN-SUFFIX,osha.gov,Proxy +- DOMAIN-SUFFIX,osxdaily.com,Proxy +- DOMAIN-SUFFIX,overcast.fm,Proxy +- DOMAIN-SUFFIX,ow.ly,Proxy +- DOMAIN-SUFFIX,paddle.com,Proxy +- DOMAIN-SUFFIX,paddleapi.com,Proxy +- DOMAIN-SUFFIX,panoramio.com,Proxy +- DOMAIN-SUFFIX,parallels.com,Proxy +- DOMAIN-SUFFIX,parse.com,Proxy +- DOMAIN-SUFFIX,pdfexpert.com,Proxy +- DOMAIN-SUFFIX,periscope.tv,Proxy +- DOMAIN-SUFFIX,piaotian.net,Proxy +- DOMAIN-SUFFIX,picacomic.com,Proxy +- DOMAIN-SUFFIX,picasaweb.com,Proxy +- DOMAIN-SUFFIX,pinboard.in,Proxy +- DOMAIN-SUFFIX,ping.pe,Proxy +- DOMAIN-SUFFIX,pinterest.com,Proxy +- DOMAIN-SUFFIX,pixelmator.com,Proxy +- DOMAIN-SUFFIX,pixiv.net,Proxy +- DOMAIN-SUFFIX,pixnet.net,Proxy +- DOMAIN-SUFFIX,playpcesor.com,Proxy +- DOMAIN-SUFFIX,pokemon.com,Proxy +- DOMAIN-SUFFIX,polymer-project.org,Proxy +- DOMAIN-SUFFIX,popo.tw,Proxy +- DOMAIN-SUFFIX,potato.im,Proxy +- DOMAIN-SUFFIX,redd.it,Proxy +- DOMAIN-SUFFIX,prfct.co,Proxy +- DOMAIN-SUFFIX,proxfree.com,Proxy +- DOMAIN-SUFFIX,psiphon3.com,Proxy +- DOMAIN-SUFFIX,ptt.cc,Proxy +- DOMAIN-SUFFIX,pubu.com.tw,Proxy +- DOMAIN-SUFFIX,puffinbrowser.com,Proxy +- DOMAIN-SUFFIX,pushbullet.com,Proxy +- DOMAIN-SUFFIX,pushwoosh.com,Proxy +- DOMAIN-SUFFIX,pximg.net,Proxy +- DOMAIN-SUFFIX,quora.com,Proxy +- DOMAIN-SUFFIX,quoracdn.net,Proxy +- DOMAIN-SUFFIX,readingtimes.com.tw,Proxy +- DOMAIN-SUFFIX,readmoo.com,Proxy +- DOMAIN-SUFFIX,recaptcha.net,Proxy +- DOMAIN-SUFFIX,reddit.com,Proxy +- DOMAIN-SUFFIX,redditmedia.com,Proxy +- DOMAIN-SUFFIX,reuters.com,Proxy +- DOMAIN-SUFFIX,rfi.fr,Proxy +- DOMAIN-SUFFIX,rileyguide.com,Proxy +- DOMAIN-SUFFIX,rime.im,Proxy +- DOMAIN-SUFFIX,rsf.org,Proxy +- DOMAIN-SUFFIX,sciencedaily.com,Proxy +- DOMAIN-SUFFIX,sciencemag.org,Proxy +- DOMAIN-SUFFIX,scribd.com,Proxy +- DOMAIN-SUFFIX,search.com,Proxy +- DOMAIN-SUFFIX,servebom.com,Proxy +- DOMAIN-SUFFIX,sexinsex.net,Proxy +- DOMAIN-SUFFIX,sfx.ms,Proxy +- DOMAIN-SUFFIX,shadowsocks.org,Proxy +- DOMAIN-SUFFIX,shadowverse.jp,Proxy +- DOMAIN-SUFFIX,sharethis.com,Proxy +- DOMAIN-SUFFIX,shazam.com,Proxy +- DOMAIN-SUFFIX,shutterstock.com,Proxy +- DOMAIN-SUFFIX,sidelinesnews.com,Proxy +- DOMAIN-SUFFIX,simp.ly,Proxy +- DOMAIN-SUFFIX,simplenote.com,Proxy +- DOMAIN-SUFFIX,sketchappsources.com,Proxy +- DOMAIN-SUFFIX,skype.com,Proxy +- DOMAIN-SUFFIX,slack.com,Proxy +- DOMAIN-SUFFIX,slack-edge.com,Proxy +- DOMAIN-SUFFIX,slack-msgs.com,Proxy +- DOMAIN-SUFFIX,slideshare.net,Proxy +- DOMAIN-SUFFIX,smartdnsproxy.com,Proxy +- DOMAIN-SUFFIX,smh.com.au,Proxy +- DOMAIN-SUFFIX,snapchat.com,Proxy +- DOMAIN-SUFFIX,sndcdn.com,Proxy +- DOMAIN-SUFFIX,sockslist.net,Proxy +- DOMAIN-SUFFIX,soundcloud.com,Proxy +- DOMAIN-SUFFIX,sourceforge.net,Proxy +- DOMAIN-SUFFIX,sowers.org.hk,Proxy +- DOMAIN-SUFFIX,speedsmart.net,Proxy +- DOMAIN-SUFFIX,spike.com,Proxy +- DOMAIN-SUFFIX,squarespace.com,Proxy +- DOMAIN-SUFFIX,ssa.gov,Proxy +- DOMAIN-SUFFIX,sstatic.net,Proxy +- DOMAIN-SUFFIX,st.luluku.pw,Proxy +- DOMAIN-SUFFIX,stackoverflow.com,Proxy +- DOMAIN-SUFFIX,starp2p.com,Proxy +- DOMAIN-SUFFIX,startpage.com,Proxy +- DOMAIN-SUFFIX,state.gov,Proxy +- DOMAIN-SUFFIX,staticflickr.com,Proxy +- DOMAIN-SUFFIX,storify.com,Proxy +- DOMAIN-SUFFIX,stumbleupon.com,Proxy +- DOMAIN-SUFFIX,sugarsync.com,Proxy +- DOMAIN-SUFFIX,supermariorun.com,Proxy +- DOMAIN-SUFFIX,surfeasy.com.au,Proxy +- DOMAIN-SUFFIX,surge.run,Proxy +- DOMAIN-SUFFIX,surrenderat20.net,Proxy +- DOMAIN-SUFFIX,sydneytoday.com,Proxy +- DOMAIN-SUFFIX,symauth.com,Proxy +- DOMAIN-SUFFIX,symcb.com,Proxy +- DOMAIN-SUFFIX,symcd.com,Proxy +- DOMAIN-SUFFIX,t66y.com,Proxy +- DOMAIN-SUFFIX,tablesgenerator.com,Proxy +- DOMAIN-SUFFIX,tabtter.jp,Proxy +- DOMAIN-SUFFIX,talk853.com,Proxy +- DOMAIN-SUFFIX,talkboxapp.com,Proxy +- DOMAIN-SUFFIX,talkonly.net,Proxy +- DOMAIN-SUFFIX,tapbots.com,Proxy +- DOMAIN-SUFFIX,tapbots.net,Proxy +- DOMAIN-SUFFIX,techcrunch.com,Proxy +- DOMAIN-SUFFIX,technorati.com,Proxy +- DOMAIN-SUFFIX,techsmith.com,Proxy +- DOMAIN-SUFFIX,teddysun.com,Proxy +- DOMAIN-SUFFIX,textnow.me,Proxy +- DOMAIN-SUFFIX,thebobs.com,Proxy +- DOMAIN-SUFFIX,theinitium.com,Proxy +- DOMAIN-SUFFIX,thepiratebay.org,Proxy +- DOMAIN-SUFFIX,theverge.com,Proxy +- DOMAIN-SUFFIX,thewgo.org,Proxy +- DOMAIN-SUFFIX,tiltbrush.com,Proxy +- DOMAIN-SUFFIX,time.com,Proxy +- DOMAIN-SUFFIX,timeinc.net,Proxy +- DOMAIN-SUFFIX,tinder.com,Proxy +- DOMAIN-SUFFIX,tiny.cc,Proxy +- DOMAIN-SUFFIX,tinychat.com,Proxy +- DOMAIN-SUFFIX,tinypic.com,Proxy +- DOMAIN-SUFFIX,tmblr.co,Proxy +- DOMAIN-SUFFIX,todoist.com,Proxy +- DOMAIN-SUFFIX,togetter.com,Proxy +- DOMAIN-SUFFIX,tokyocn.com,Proxy +- DOMAIN-SUFFIX,tomshardware.com,Proxy +- DOMAIN-SUFFIX,torcn.com,Proxy +- DOMAIN-SUFFIX,torrentprivacy.com,Proxy +- DOMAIN-SUFFIX,torrentproject.se,Proxy +- DOMAIN-SUFFIX,torrentz.eu,Proxy +- DOMAIN-SUFFIX,traffichaus.com,Proxy +- DOMAIN-SUFFIX,trakt.tv,Proxy +- DOMAIN-SUFFIX,transparency.org,Proxy +- DOMAIN-SUFFIX,trello.com,Proxy +- DOMAIN-SUFFIX,trendsmap.com,Proxy +- DOMAIN-SUFFIX,trulyergonomic.com,Proxy +- DOMAIN-SUFFIX,trustasiassl.com,Proxy +- DOMAIN-SUFFIX,tt-rss.org,Proxy +- DOMAIN-SUFFIX,ttvnw.net,Proxy +- DOMAIN-SUFFIX,tumblr.co,Proxy +- DOMAIN-SUFFIX,tumblr.com,Proxy +- DOMAIN-SUFFIX,turbobit.net,Proxy +- DOMAIN-SUFFIX,tv.com,Proxy +- DOMAIN-SUFFIX,tweetdeck.com,Proxy +- DOMAIN-SUFFIX,tweetmarker.net,Proxy +- DOMAIN-SUFFIX,twimg.co,Proxy +- DOMAIN-SUFFIX,twitch.tv,Proxy +- DOMAIN-SUFFIX,twitthat.com,Proxy +- DOMAIN-SUFFIX,twtkr.com,Proxy +- DOMAIN-SUFFIX,twttr.com,Proxy +- DOMAIN-SUFFIX,txmblr.com,Proxy +- DOMAIN-SUFFIX,typcn.com,Proxy +- DOMAIN-SUFFIX,typekit.net,Proxy +- DOMAIN-SUFFIX,typography.com,Proxy +- DOMAIN-SUFFIX,ubertags.com,Proxy +- DOMAIN-SUFFIX,ublock.org,Proxy +- DOMAIN-SUFFIX,ubnt.com,Proxy +- DOMAIN-SUFFIX,uchicago.edu,Proxy +- DOMAIN-SUFFIX,udn.com,Proxy +- DOMAIN-SUFFIX,ugo.com,Proxy +- DOMAIN-SUFFIX,uhdwallpapers.org,Proxy +- DOMAIN-SUFFIX,ulyssesapp.com,Proxy +- DOMAIN-SUFFIX,unblockdmm.com,Proxy +- DOMAIN-SUFFIX,unblocksites.co,Proxy +- DOMAIN-SUFFIX,unpo.org,Proxy +- DOMAIN-SUFFIX,unsplash.com,Proxy +- DOMAIN-SUFFIX,untraceable.us,Proxy +- DOMAIN-SUFFIX,uploaded.net,Proxy +- DOMAIN-SUFFIX,uProxy.org,Proxy +- DOMAIN-SUFFIX,upwork.com,Proxy +- DOMAIN-SUFFIX,urchin.com,Proxy +- DOMAIN-SUFFIX,urlparser.com,Proxy +- DOMAIN-SUFFIX,us.to,Proxy +- DOMAIN-SUFFIX,usertrust.com,Proxy +- DOMAIN-SUFFIX,usgs.gov,Proxy +- DOMAIN-SUFFIX,usma.edu,Proxy +- DOMAIN-SUFFIX,uspto.gov,Proxy +- DOMAIN-SUFFIX,ustream.tv,Proxy +- DOMAIN-SUFFIX,v.gd,Proxy +- DOMAIN-SUFFIX,v2ex.co,Proxy +- DOMAIN-SUFFIX,v2ray.com,Proxy +- DOMAIN-SUFFIX,van001.com,Proxy +- DOMAIN-SUFFIX,vanpeople.com,Proxy +- DOMAIN-SUFFIX,vansky.com,Proxy +- DOMAIN-SUFFIX,vbstatic.co,Proxy +- DOMAIN-SUFFIX,venchina.com,Proxy +- DOMAIN-SUFFIX,venturebeat.com,Proxy +- DOMAIN-SUFFIX,veoh.com,Proxy +- DOMAIN-SUFFIX,verizonwireless.com,Proxy +- DOMAIN-SUFFIX,viber.com,Proxy +- DOMAIN-SUFFIX,vid.me,Proxy +- DOMAIN-SUFFIX,videomega.tv,Proxy +- DOMAIN-SUFFIX,vidinfo.org,Proxy +- DOMAIN-SUFFIX,vimeo.com,Proxy +- DOMAIN-SUFFIX,vimeocdn.com,Proxy +- DOMAIN-SUFFIX,vimperator.org,Proxy +- DOMAIN-SUFFIX,vine.co,Proxy +- DOMAIN-SUFFIX,visibletweets.com,Proxy +- DOMAIN-SUFFIX,viu.com,Proxy +- DOMAIN-SUFFIX,vivaldi.com,Proxy +- DOMAIN-SUFFIX,voachinese.com,Proxy +- DOMAIN-SUFFIX,vocativ.com,Proxy +- DOMAIN-SUFFIX,vox-cdn.com,Proxy +- DOMAIN-SUFFIX,vpnaccount.org,Proxy +- DOMAIN-SUFFIX,vpnbook.com,Proxy +- DOMAIN-SUFFIX,vpngate.net,Proxy +- DOMAIN-SUFFIX,vsco.co,Proxy +- DOMAIN-SUFFIX,vultr.com,Proxy +- DOMAIN-SUFFIX,vzw.com,Proxy +- DOMAIN-SUFFIX,w.org,Proxy +- DOMAIN-SUFFIX,w3schools.com,Proxy +- DOMAIN-SUFFIX,wattpad.com,Proxy +- DOMAIN-SUFFIX,web2project.net,Proxy +- DOMAIN-SUFFIX,webfreer.com,Proxy +- DOMAIN-SUFFIX,weblagu.com,Proxy +- DOMAIN-SUFFIX,websnapr.com,Proxy +- DOMAIN-SUFFIX,webtype.com,Proxy +- DOMAIN-SUFFIX,webwarper.net,Proxy +- DOMAIN-SUFFIX,wenxuecity.com,Proxy +- DOMAIN-SUFFIX,westca.com,Proxy +- DOMAIN-SUFFIX,westpoint.edu,Proxy +- DOMAIN-SUFFIX,whatbrowser.org,Proxy +- DOMAIN-SUFFIX,wikileaks.info,Proxy +- DOMAIN-SUFFIX,wikileaks.org,Proxy +- DOMAIN-SUFFIX,wikileaks-forum.com,Proxy +- DOMAIN-SUFFIX,wikimedia.org,Proxy +- DOMAIN-SUFFIX,wikipedia.com,Proxy +- DOMAIN-SUFFIX,wikipedia.org,Proxy +- DOMAIN-SUFFIX,windows.com,Proxy +- DOMAIN-SUFFIX,windows.net,Proxy +- DOMAIN-SUFFIX,wn.com,Proxy +- DOMAIN-SUFFIX,wordpress.com,Proxy +- DOMAIN-SUFFIX,workflow.is,Proxy +- DOMAIN-SUFFIX,worldcat.org,Proxy +- DOMAIN-SUFFIX,wow.com,Proxy +- DOMAIN-SUFFIX,wp.com,Proxy +- DOMAIN-SUFFIX,wsj.com,Proxy +- DOMAIN-SUFFIX,wsj.net,Proxy +- DOMAIN-SUFFIX,wwitv.com,Proxy +- DOMAIN-SUFFIX,xanga.com,Proxy +- DOMAIN-SUFFIX,xclient.info,Proxy +- DOMAIN-SUFFIX,xda-developers.com,Proxy +- DOMAIN-SUFFIX,xeeno.com,Proxy +- DOMAIN-SUFFIX,xiti.com,Proxy +- DOMAIN-SUFFIX,xuite.net,Proxy +- DOMAIN-SUFFIX,xvideos.com,Proxy +- DOMAIN-SUFFIX,yahoo.com,Proxy +- DOMAIN-SUFFIX,yahooapis.com,Proxy +- DOMAIN-SUFFIX,yasni.co.uk,Proxy +- DOMAIN-SUFFIX,yastatic.net,Proxy +- DOMAIN-SUFFIX,yeeyi.com,Proxy +- DOMAIN-SUFFIX,yesasia.com,Proxy +- DOMAIN-SUFFIX,yes-news.com,Proxy +- DOMAIN-SUFFIX,yidio.com,Proxy +- DOMAIN-SUFFIX,yimg.com,Proxy +- DOMAIN-SUFFIX,ying.com,Proxy +- DOMAIN-SUFFIX,yorkbbs.ca,Proxy +- DOMAIN-SUFFIX,youmaker.com,Proxy +- DOMAIN-SUFFIX,yourlisten.com,Proxy +- DOMAIN-SUFFIX,youtu.be,Proxy +- DOMAIN-SUFFIX,yoyo.org,Proxy +- DOMAIN-SUFFIX,ytimg.com,Proxy +- DOMAIN-SUFFIX,zacebook.com,Proxy +- DOMAIN-SUFFIX,zalmos.com,Proxy +- DOMAIN-SUFFIX,zaobao.com.sg,Proxy +- DOMAIN-SUFFIX,zeutch.com,Proxy +- DOMAIN-SUFFIX,zynamics.com,Proxy + +# > Force some domains which are fucked by GFW while resolving DNS,or do not respect the system Proxy +- DOMAIN-KEYWORD,Appledaily,Proxy +- DOMAIN-KEYWORD,beetalk,Proxy +- DOMAIN-KEYWORD,blogspot,Proxy +- DOMAIN-KEYWORD,dropbox,Proxy +- DOMAIN-KEYWORD,facebook,Proxy +- DOMAIN-KEYWORD,github,Proxy +- DOMAIN-KEYWORD,instagram,Proxy +- DOMAIN-KEYWORD,porn,Proxy +- DOMAIN-KEYWORD,twitter,Proxy +- DOMAIN-KEYWORD,whatsapp,Proxy +- DOMAIN-KEYWORD,google,Proxy +- DOMAIN-SUFFIX,1e100.net,Proxy +- DOMAIN-SUFFIX,2mdn.net,Proxy +- DOMAIN-SUFFIX,abc.xyz,Proxy +- DOMAIN-SUFFIX,akamai.net,Proxy +- DOMAIN-SUFFIX,appspot.com,Proxy +- DOMAIN-SUFFIX,autodraw.com,Proxy +- DOMAIN-SUFFIX,bandwagonhost.com,Proxy +- DOMAIN-SUFFIX,blogblog.com,Proxy +- DOMAIN-SUFFIX,chromeexperiments.com,Proxy +- DOMAIN-SUFFIX,creativelab5.com,Proxy +- DOMAIN-SUFFIX,crittercism.com,Proxy +- DOMAIN-SUFFIX,culturalspot.org,Proxy +- DOMAIN-SUFFIX,dartlang.org,Proxy +- DOMAIN-SUFFIX,fb.com,Proxy +- DOMAIN-SUFFIX,fb.me,Proxy +- DOMAIN-SUFFIX,fbcdn.net,Proxy +- DOMAIN-SUFFIX,fbsbx.com,Proxy +- DOMAIN-SUFFIX,gcr.io,Proxy +- DOMAIN-SUFFIX,gmail.com,Proxy +- DOMAIN-SUFFIX,gosetsuden.jp,Proxy +- DOMAIN-SUFFIX,gvt1.com,Proxy +- DOMAIN-SUFFIX,gwtproject.org,Proxy +- DOMAIN-SUFFIX,heroku.com,Proxy +- DOMAIN-SUFFIX,html5rocks.com,Proxy +- DOMAIN-SUFFIX,keyhole.com,Proxy +- DOMAIN-SUFFIX,kobo.com,Proxy +- DOMAIN-SUFFIX,kobobooks.com,Proxy +- DOMAIN-SUFFIX,madewithcode.com,Proxy +- DOMAIN-SUFFIX,material.io,Proxy +- DOMAIN-SUFFIX,messenger.com,Proxy +- DOMAIN-SUFFIX,netmarble.com,Proxy +- DOMAIN-SUFFIX,nianticlabs.com,Proxy +- DOMAIN-SUFFIX,pinimg.com,Proxy +- DOMAIN-SUFFIX,pubnub.com,Proxy +- DOMAIN-SUFFIX,scdn.co,Proxy +- DOMAIN-SUFFIX,t.co,Proxy +- DOMAIN-SUFFIX,tensorflow.org,Proxy +- DOMAIN-SUFFIX,toggleable.com,Proxy +- DOMAIN-SUFFIX,torproject.org,Proxy +- DOMAIN-SUFFIX,twimg.com,Proxy +- DOMAIN-SUFFIX,twitpic.com,Proxy +- DOMAIN-SUFFIX,unfiltered.news,Proxy +- DOMAIN-SUFFIX,waveprotocol.org,Proxy +- DOMAIN-SUFFIX,webmproject.org,Proxy +- DOMAIN-SUFFIX,webrtc.org,Proxy + +# > V2EX +- DOMAIN-SUFFIX,v2ex.com,Proxy + + +- DOMAIN-KEYWORD,dlercloud,Proxy + + +# > Amazon +- IP-CIDR,13.32.0.0/16,Proxy +- IP-CIDR,13.33.0.0/16,Proxy +- IP-CIDR,13.35.0.0/17,Proxy +- IP-CIDR,18.184.0.0/15,Proxy +- IP-CIDR,18.194.0.0/15,Proxy +- IP-CIDR,18.208.0.0/13,Proxy +- IP-CIDR,18.232.0.0/14,Proxy +- IP-CIDR,52.200.0.0/13,Proxy +- IP-CIDR,52.58.0.0/15,Proxy +- IP-CIDR,52.74.0.0/16,Proxy +- IP-CIDR,52.77.0.0/16,Proxy +- IP-CIDR,52.84.0.0/15,Proxy +- IP-CIDR,54.156.0.0/14,Proxy +- IP-CIDR,54.226.0.0/15,Proxy +- IP-CIDR,54.230.156.0/22,Proxy +- IP-CIDR,54.93.0.0/16,Proxy + +# > Facebook +- IP-CIDR,103.4.96.0/22,Proxy +- IP-CIDR,129.134.0.0/17,Proxy +- IP-CIDR,157.240.0.0/17,Proxy +- IP-CIDR,173.252.64.0/19,Proxy +- IP-CIDR,173.252.96.0/19,Proxy +- IP-CIDR,179.60.192.0/22,Proxy +- IP-CIDR,185.60.216.0/22,Proxy +- IP-CIDR,204.15.20.0/22,Proxy +- IP-CIDR,31.13.24.0/21,Proxy +- IP-CIDR,31.13.64.0/18,Proxy +- IP-CIDR,45.64.40.0/22,Proxy +- IP-CIDR,66.220.144.0/20,Proxy +- IP-CIDR,69.171.224.0/19,Proxy +- IP-CIDR,69.63.176.0/20,Proxy +- IP-CIDR,74.119.76.0/22,Proxy + +# > Google +- IP-CIDR,173.194.0.0/16,Proxy +- IP-CIDR,74.125.0.0/16,Proxy + +# > Kakao Talk +- IP-CIDR,1.201.0.0/24,Proxy +- IP-CIDR,103.246.56.0/22,Proxy +- IP-CIDR,103.27.148.0/22,Proxy +- IP-CIDR,110.76.140.0/22,Proxy +- IP-CIDR,113.61.104.0/22,Proxy +- IP-CIDR,27.0.236.0/22,Proxy + +# > LINE +- IP-CIDR,103.2.28.0/22,Proxy +- IP-CIDR,119.235.224.0/21,Proxy +- IP-CIDR,119.235.232.0/23,Proxy +- IP-CIDR,119.235.235.0/24,Proxy +- IP-CIDR,119.235.236.0/23,Proxy +- IP-CIDR,125.6.146.0/24,Proxy +- IP-CIDR,125.6.149.0/24,Proxy +- IP-CIDR,125.6.190.0/24,Proxy +- IP-CIDR,125.209.208.0/20,Proxy +- IP-CIDR,203.104.103.0/24,Proxy +- IP-CIDR,203.104.128.0/20,Proxy +- IP-CIDR,203.174.66.64/26,Proxy +- IP-CIDR,203.174.77.0/24,Proxy + +# > Potato Chat +- IP-CIDR,13.251.24.157/24,Proxy +- IP-CIDR,13.251.41.203/24,Proxy +- IP-CIDR,17.252.156.147/24,Proxy +- IP-CIDR,17.252.157.26/24,Proxy + +# > SoftLayer +- IP-CIDR,74.86.0.0/16,Proxy +- IP-CIDR,75.126.0.0/16,Proxy +- IP-CIDR,174.37.0.0/16,Proxy +- IP-CIDR,208.43.0.0/16,Proxy + + + +# > Beplay +- DOMAIN-KEYWORD,beplay,Domestic + +# > Blizzard +- DOMAIN-SUFFIX,battle.net,Domestic +- DOMAIN-SUFFIX,battlenet.com,Domestic +- DOMAIN-SUFFIX,blizzard.com,Domestic + +# > Prior +- DOMAIN,client.amplifi.com,Domestic +- DOMAIN,ip.bjango.com,Domestic +- DOMAIN-SUFFIX,alphassl.com,Domestic +- DOMAIN-SUFFIX,edu.cn,Domestic + +# > Sony +- DOMAIN-SUFFIX,playstation.com,Domestic +- DOMAIN-SUFFIX,playstation.net,Domestic +- DOMAIN-SUFFIX,playstationnetwork.com,Domestic +- DOMAIN-SUFFIX,sony.com,Domestic +- DOMAIN-SUFFIX,sonyentertainmentnetwork.com,Domestic + +# > Steam +- DOMAIN-SUFFIX,steamcontent.com,Domestic + +# > TeamViewer +- IP-CIDR,185.188.32.0/24,Domestic +- IP-CIDR,185.188.33.0/24,Domestic +- IP-CIDR,185.188.34.0/24,Domestic +- IP-CIDR,185.188.35.0/24,Domestic +- IP-CIDR6,2a0b:b580::/48,Domestic +- IP-CIDR6,2a0b:b581::/48,Domestic +- IP-CIDR6,2a0b:b582::/48,Domestic +- IP-CIDR6,2a0b:b583::/48,Domestic + +# Domestic +- DOMAIN-SUFFIX,12306.cn,Domestic +- DOMAIN-SUFFIX,12306.com,Domestic +- DOMAIN-SUFFIX,126.net,Domestic +- DOMAIN-SUFFIX,163.com,Domestic +- DOMAIN-SUFFIX,360.cn,Domestic +- DOMAIN-SUFFIX,360.com,Domestic +- DOMAIN-SUFFIX,360buy.com,Domestic +- DOMAIN-SUFFIX,360buyimg.com,Domestic +- DOMAIN-SUFFIX,36kr.com,Domestic +- DOMAIN-SUFFIX,51ym.me,Domestic +- DOMAIN-SUFFIX,58.com,Domestic +- DOMAIN-SUFFIX,8686c.com,Domestic +- DOMAIN-SUFFIX,abercrombie.com,Domestic +- DOMAIN-SUFFIX,acfun.tv,Domestic +- DOMAIN-SUFFIX,adobesc.com,Domestic +- DOMAIN-SUFFIX,air-matters.com,Domestic +- DOMAIN-SUFFIX,air-matters.io,Domestic +- DOMAIN-SUFFIX,aixifan.com,Domestic +- DOMAIN-SUFFIX,akadns.net,Domestic +- DOMAIN-SUFFIX,alicdn.com,Domestic +- DOMAIN-SUFFIX,alipay.com,Domestic +- DOMAIN-SUFFIX,alipayobjects.com,Domestic +- DOMAIN-SUFFIX,aliyun.com,Domestic +- DOMAIN-SUFFIX,amap.com,Domestic +- DOMAIN-SUFFIX,apache.org,Domestic +- DOMAIN-SUFFIX,api.crisp.chat,Domestic +- DOMAIN-SUFFIX,api.termius.com,Domestic +- DOMAIN-SUFFIX,appshike.com,Domestic +- DOMAIN-SUFFIX,appstore.com,Domestic +- DOMAIN-SUFFIX,autonavi.com,Domestic +- DOMAIN-SUFFIX,aweme.snssdk.com,Domestic +- DOMAIN-SUFFIX,bababian.com,Domestic +- DOMAIN-SUFFIX,baidu.com,Domestic +- DOMAIN-SUFFIX,battle.net,Domestic +- DOMAIN-SUFFIX,bdimg.com,Domestic +- DOMAIN-SUFFIX,bdstatic.com,Domestic +- DOMAIN-SUFFIX,beatsbydre.com,Domestic +- DOMAIN-SUFFIX,bet365.com,Domestic +- DOMAIN-SUFFIX,broadcasthe.net,Domestic +- DOMAIN-SUFFIX,caiyunapp.com,Domestic +- DOMAIN-SUFFIX,ccgslb.com,Domestic +- DOMAIN-SUFFIX,ccgslb.net,Domestic +- DOMAIN-SUFFIX,chinacache.net,Domestic +- DOMAIN-SUFFIX,chunbo.com,Domestic +- DOMAIN-SUFFIX,chunboimg.com,Domestic +- DOMAIN-SUFFIX,clashroyaleapp.com,Domestic +- DOMAIN-SUFFIX,clouddn.com,Domestic +- DOMAIN-SUFFIX,cloudsigma.com,Domestic +- DOMAIN-SUFFIX,cloudxns.net,Domestic +- DOMAIN-SUFFIX,cmct.tv,Domestic +- DOMAIN-SUFFIX,cmfu.com,Domestic +- DOMAIN-SUFFIX,cnbeta.com,Domestic +- DOMAIN-SUFFIX,cnbetacdn.com,Domestic +- DOMAIN-SUFFIX,chdbits.co,Domestic +- DOMAIN-SUFFIX,cnlang.org,Domestic +- DOMAIN-SUFFIX,culturedcode.com,Domestic +- DOMAIN-SUFFIX,dct-cloud.com,Domestic +- DOMAIN-SUFFIX,didialift.com,Domestic +- DOMAIN-SUFFIX,digicert.com,Domestic +- DOMAIN-SUFFIX,douban.com,Domestic +- DOMAIN-SUFFIX,doubanio.com,Domestic +- DOMAIN-SUFFIX,douyu.com,Domestic +- DOMAIN-SUFFIX,douyu.tv,Domestic +- DOMAIN-SUFFIX,douyutv.com,Domestic +- DOMAIN-SUFFIX,duokan.com,Domestic +- DOMAIN-SUFFIX,duoshuo.com,Domestic +- DOMAIN-SUFFIX,dytt8.net,Domestic +- DOMAIN-SUFFIX,easou.com,Domestic +- DOMAIN-SUFFIX,ecitic.com,Domestic +- DOMAIN-SUFFIX,ecitic.net,Domestic +- DOMAIN-SUFFIX,eclipse.org,Domestic +- DOMAIN-SUFFIX,eudic.net,Domestic +- DOMAIN-SUFFIX,ewqcxz.com,Domestic +- DOMAIN-SUFFIX,feng.com,Domestic +- DOMAIN-SUFFIX,fir.im,Domestic +- DOMAIN-SUFFIX,firefox.com,Domestic +- DOMAIN-SUFFIX,frdic.com,Domestic +- DOMAIN-SUFFIX,fresh-ideas.cc,Domestic +- DOMAIN-SUFFIX,geetest.com,Domestic +- DOMAIN-SUFFIX,godic.net,Domestic +- DOMAIN-SUFFIX,goodread.com,Domestic +- DOMAIN-SUFFIX,google.cn,Domestic +- DOMAIN-SUFFIX,gtimg.com,Domestic +- DOMAIN-SUFFIX,haibian.com,Domestic +- DOMAIN-SUFFIX,hao123.com,Domestic +- DOMAIN-SUFFIX,haosou.com,Domestic +- DOMAIN-SUFFIX,hdchina.org,Domestic +- DOMAIN-SUFFIX,hdcmct.org,Domestic +- DOMAIN-SUFFIX,hkserversolution.com,Domestic +- DOMAIN-SUFFIX,hollisterco.com,Domestic +- DOMAIN-SUFFIX,hongxiu.com,Domestic +- DOMAIN-SUFFIX,hxcdn.net,Domestic +- DOMAIN-SUFFIX,icedropper.com,Domestic +- DOMAIN-SUFFIX,iciba.com,Domestic +- DOMAIN-SUFFIX,ifeng.com,Domestic +- DOMAIN-SUFFIX,ifengimg.com,Domestic +- DOMAIN-SUFFIX,images.unsplash.com,Domestic +- DOMAIN-SUFFIX,images-amazon.com,Domestic +- DOMAIN-SUFFIX,img4me.com,Domestic +- DOMAIN-SUFFIX,ipify.org,Domestic +- DOMAIN-SUFFIX,ipip.net,Domestic +- DOMAIN-SUFFIX,ithome.com,Domestic +- DOMAIN-SUFFIX,ixdzs.com,Domestic +- DOMAIN-SUFFIX,jd.com,Domestic +- DOMAIN-SUFFIX,jd.hk,Domestic +- DOMAIN-SUFFIX,jianshu.com,Domestic +- DOMAIN-SUFFIX,jianshu.io,Domestic +- DOMAIN-SUFFIX,jianshuapi.com,Domestic +- DOMAIN-SUFFIX,jiathis.com,Domestic +- DOMAIN-SUFFIX,jomodns.com,Domestic +- DOMAIN-SUFFIX,jsboxbbs.com,Domestic +- DOMAIN-SUFFIX,knewone.com,Domestic +- DOMAIN-SUFFIX,kuaidi100.com,Domestic +- DOMAIN-SUFFIX,kugou.com,Domestic +- DOMAIN-SUFFIX,lecloud.com,Domestic +- DOMAIN-SUFFIX,lemicp.com,Domestic +- DOMAIN-SUFFIX,letv.com,Domestic +- DOMAIN-SUFFIX,letvcloud.com,Domestic +- DOMAIN-SUFFIX,lizhi.io,Domestic +- DOMAIN-SUFFIX,localizecdn.com,Domestic +- DOMAIN-SUFFIX,lucifr.com,Domestic +- DOMAIN-SUFFIX,luoo.net,Domestic +- DOMAIN-SUFFIX,lxdns.com,Domestic +- DOMAIN-SUFFIX,mai.tn,Domestic +- DOMAIN-SUFFIX,meizu.com,Domestic +- DOMAIN-SUFFIX,mi.com,Domestic +- DOMAIN-SUFFIX,miaopai.com,Domestic +- DOMAIN-SUFFIX,miui.com,Domestic +- DOMAIN-SUFFIX,miwifi.com,Domestic +- DOMAIN-SUFFIX,mob.com,Domestic +- DOMAIN-SUFFIX,moji.com,Domestic +- DOMAIN-SUFFIX,moke.com,Domestic +- DOMAIN-SUFFIX,mtalk.google.com,Domestic +- DOMAIN-SUFFIX,mxhichina.com,Domestic +- DOMAIN-SUFFIX,myqcloud.com,Domestic +- DOMAIN-SUFFIX,myunlu.com,Domestic +- DOMAIN-SUFFIX,ngabbs.com,Domestic +- DOMAIN-SUFFIX,netease.com,Domestic +- DOMAIN-SUFFIX,nfoservers.com,Domestic +- DOMAIN-SUFFIX,nssurge.com,Domestic +- DOMAIN-SUFFIX,nuomi.com,Domestic +- DOMAIN-SUFFIX,ourbits.club,Domestic +- DOMAIN-SUFFIX,ourdvs.com,Domestic +- DOMAIN-SUFFIX,passthepopcorn.me,Domestic +- DOMAIN-SUFFIX,paypal.com,Domestic +- DOMAIN-SUFFIX,paypalobjects.com,Domestic +- DOMAIN-SUFFIX,pgyer.com,Domestic +- DOMAIN-SUFFIX,pniao.com,Domestic +- DOMAIN-SUFFIX,privatehd.to,Domestic +- DOMAIN-SUFFIX,pstatp.com,Domestic +- DOMAIN-SUFFIX,qbox.me,Domestic +- DOMAIN-SUFFIX,qcloud.com,Domestic +- DOMAIN-SUFFIX,qdaily.com,Domestic +- DOMAIN-SUFFIX,qdmm.com,Domestic +- DOMAIN-SUFFIX,qhimg.com,Domestic +- DOMAIN-SUFFIX,qidian.com,Domestic +- DOMAIN-SUFFIX,qihucdn.com,Domestic +- DOMAIN-SUFFIX,qin.io,Domestic +- DOMAIN-SUFFIX,qingmang.me,Domestic +- DOMAIN-SUFFIX,qingmang.mobi,Domestic +- DOMAIN-SUFFIX,qiniucdn.com,Domestic +- DOMAIN-SUFFIX,qiniudn.com,Domestic +- DOMAIN-SUFFIX,qq.com,Domestic +- DOMAIN-SUFFIX,qqurl.com,Domestic +- DOMAIN-SUFFIX,rarbg.to,Domestic +- DOMAIN-SUFFIX,redacted.ch,Domestic +- DOMAIN-SUFFIX,rrmj.tv,Domestic +- DOMAIN-SUFFIX,ruguoapp.com,Domestic +- DOMAIN-SUFFIX,sandai.net,Domestic +- DOMAIN-SUFFIX,sf-express.com,Domestic +- DOMAIN-SUFFIX,sinaapp.com,Domestic +- DOMAIN-SUFFIX,sinaimg.cn,Domestic +- DOMAIN-SUFFIX,sinaimg.com,Domestic +- DOMAIN-SUFFIX,sm.ms,Domestic +- DOMAIN-SUFFIX,smzdm.com,Domestic +- DOMAIN-SUFFIX,snssdk.com,Domestic +- DOMAIN-SUFFIX,snwx.com,Domestic +- DOMAIN-SUFFIX,so.com,Domestic +- DOMAIN-SUFFIX,sogou.com,Domestic +- DOMAIN-SUFFIX,sogoucdn.com,Domestic +- DOMAIN-SUFFIX,sohu.com,Domestic +- DOMAIN-SUFFIX,soku.com,Domestic +- DOMAIN-SUFFIX,soso.com,Domestic +- DOMAIN-SUFFIX,sspai.com,Domestic +- DOMAIN-SUFFIX,startssl.com,Domestic +- DOMAIN-SUFFIX,store.steampowered.com,Domestic +- DOMAIN-SUFFIX,suning.com,Domestic +- DOMAIN-SUFFIX,symcd.com,Domestic +- DOMAIN-SUFFIX,taobao.com,Domestic +- DOMAIN-SUFFIX,tawk.link,Domestic +- DOMAIN-SUFFIX,tawk.to,Domestic +- DOMAIN-SUFFIX,teamviewer.com,Domestic +- DOMAIN-SUFFIX,tenpay.com,Domestic +- DOMAIN-SUFFIX,tietuku.com,Domestic +- DOMAIN-SUFFIX,tmall.com,Domestic +- DOMAIN-SUFFIX,tmzvps.com,Domestic +- DOMAIN-SUFFIX,trello.com,Domestic +- DOMAIN-SUFFIX,trellocdn.com,Domestic +- DOMAIN-SUFFIX,totheglory.im,Domestic +- DOMAIN-SUFFIX,tp.m-team.cc,Domestic +- DOMAIN-SUFFIX,ttmeiju.com,Domestic +- DOMAIN-SUFFIX,tudou.com,Domestic +- DOMAIN-SUFFIX,udache.com,Domestic +- DOMAIN-SUFFIX,umengcloud.com,Domestic +- DOMAIN-SUFFIX,upaiyun.com,Domestic +- DOMAIN-SUFFIX,upyun.com,Domestic +- DOMAIN-SUFFIX,uxengine.net,Domestic +- DOMAIN-SUFFIX,wandoujia.com,Domestic +- DOMAIN-SUFFIX,weather.bjango.com,Domestic +- DOMAIN-SUFFIX,weather.com,Domestic +- DOMAIN-SUFFIX,webqxs.com,Domestic +- DOMAIN-SUFFIX,weibo.cn,Domestic +- DOMAIN-SUFFIX,weibo.com,Domestic +- DOMAIN-SUFFIX,weico.cc,Domestic +- DOMAIN-SUFFIX,weiphone.com,Domestic +- DOMAIN-SUFFIX,weiphone.net,Domestic +- DOMAIN-SUFFIX,wenku8.net,Domestic +- DOMAIN-SUFFIX,werewolf.53site.com,Domestic +- DOMAIN-SUFFIX,windowsupdate.com,Domestic +- DOMAIN-SUFFIX,wkcdn.com,Domestic +- DOMAIN-SUFFIX,workflowy.com,Domestic +- DOMAIN-SUFFIX,xdrig.com,Domestic +- DOMAIN-SUFFIX,xhostfire.com,Domestic +- DOMAIN-SUFFIX,xiami.com,Domestic +- DOMAIN-SUFFIX,xiami.net,Domestic +- DOMAIN-SUFFIX,xiaojukeji.com,Domestic +- DOMAIN-SUFFIX,xiaomi.com,Domestic +- DOMAIN-SUFFIX,xiaomi.net,Domestic +- DOMAIN-SUFFIX,xiaomicp.com,Domestic +- DOMAIN-SUFFIX,ximalaya.com,Domestic +- DOMAIN-SUFFIX,xitek.com,Domestic +- DOMAIN-SUFFIX,xmcdn.com,Domestic +- DOMAIN-SUFFIX,xslb.net,Domestic +- DOMAIN-SUFFIX,xteko.com,Domestic +- DOMAIN-SUFFIX,xunlei.com,Domestic +- DOMAIN-SUFFIX,yach.me,Domestic +- DOMAIN-SUFFIX,yeepay.com,Domestic +- DOMAIN-SUFFIX,yhd.com,Domestic +- DOMAIN-SUFFIX,yinxiang.com,Domestic +- DOMAIN-SUFFIX,yixia.com,Domestic +- DOMAIN-SUFFIX,ykimg.com,Domestic +- DOMAIN-SUFFIX,youdao.com,Domestic +- DOMAIN-SUFFIX,youku.com,Domestic +- DOMAIN-SUFFIX,yunjiasu-cdn.net,Domestic +- DOMAIN-SUFFIX,zealer.com,Domestic +- DOMAIN-SUFFIX,zgslb.net,Domestic +- DOMAIN-SUFFIX,zhihu.com,Domestic +- DOMAIN-SUFFIX,zhimg.com,Domestic +- DOMAIN-SUFFIX,zimuzu.tv,Domestic +- DOMAIN-SUFFIX,zmz002.com,Domestic + +- IP-CIDR,1.255.62.0/24,Domestic + + + +# > Apple +- DOMAIN,Apple.comscoreresearch.com,Apple +- DOMAIN-SUFFIX,Apple.cn,Apple +- DOMAIN-SUFFIX,Apple.com,Apple +- DOMAIN-SUFFIX,Apple.news,Apple +- DOMAIN-SUFFIX,icloud.com,Apple +- DOMAIN-SUFFIX,icloud-content.com,Apple +- DOMAIN-SUFFIX,itunes.com,Apple +- DOMAIN-SUFFIX,me.com,Apple +- DOMAIN-SUFFIX,mzstatic.com,Apple + + + +- DOMAIN,dler.cloud,DIRECT + +# > Private Tracker +- DOMAIN-SUFFIX,awesome-hd.me,DIRECT +- DOMAIN-SUFFIX,broadcasthe.net,DIRECT +- DOMAIN-SUFFIX,chdbits.co,DIRECT +- DOMAIN-SUFFIX,classix-unlimited.co.uk,DIRECT +- DOMAIN-SUFFIX,empornium.me,DIRECT +- DOMAIN-SUFFIX,gazellegames.net,DIRECT +- DOMAIN-SUFFIX,hdchina.org,DIRECT +- DOMAIN-SUFFIX,hdsky.me,DIRECT +- DOMAIN-SUFFIX,icetorrent.org,DIRECT +- DOMAIN-SUFFIX,jpopsuki.eu,DIRECT +- DOMAIN-SUFFIX,keepfrds.com,DIRECT +- DOMAIN-SUFFIX,madsrevolution.net,DIRECT +- DOMAIN-SUFFIX,m-team.cc,DIRECT +- DOMAIN-SUFFIX,nanyangpt.com,DIRECT +- DOMAIN-SUFFIX,ncore.cc,DIRECT +- DOMAIN-SUFFIX,open.cd,DIRECT +- DOMAIN-SUFFIX,ourbits.club,DIRECT +- DOMAIN-SUFFIX,passthepopcorn.me,DIRECT +- DOMAIN-SUFFIX,privatehd.to,DIRECT +- DOMAIN-SUFFIX,redacted.ch,DIRECT +- DOMAIN-SUFFIX,springsunday.net,DIRECT +- DOMAIN-SUFFIX,tjupt.org,DIRECT +- DOMAIN-SUFFIX,totheglory.im,DIRECT + +# > Accelerate direct sites +- DOMAIN-KEYWORD,announce,DIRECT +- DOMAIN-KEYWORD,torrent,DIRECT +- DOMAIN-KEYWORD,tracker,DIRECT +- DOMAIN-SUFFIX,smtp,DIRECT + + +- IP-CIDR,1.1.1.1/24,DIRECT + +- DOMAIN-SUFFIX,smtp,DIRECT +- DOMAIN-SUFFIX,local,DIRECT +- IP-CIDR,10.0.0.0/8,DIRECT +- IP-CIDR,100.64.0.0/10,DIRECT +- IP-CIDR,127.0.0.0/8,DIRECT +- IP-CIDR,172.16.0.0/12,DIRECT +- IP-CIDR,192.168.0.0/16,DIRECT + +- GEOIP,CN,Domestic +- MATCH,Others \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/etc/openclash/openclash_version b/package/ctcgfw/luci-app-openclash/files/etc/openclash/openclash_version new file mode 100644 index 0000000000..f36499d105 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/etc/openclash/openclash_version @@ -0,0 +1,2 @@ +v0.36.2-beta +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXMAAAAqCAMAAAB2kksrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjg5NDIzMUEwM0I3NTExRUFCQjZGRDQ0QjZERTkyNjYxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjg5NDIzMUExM0I3NTExRUFCQjZGRDQ0QjZERTkyNjYxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ODk0MjMxOUUzQjc1MTFFQUJCNkZENDRCNkRFOTI2NjEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6ODk0MjMxOUYzQjc1MTFFQUJCNkZENDRCNkRFOTI2NjEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz471t8EAAADAFBMVEVtbW09PT2Gv9+EvN1Jns6TvdXB1eCEhIS6urokhLs6lspYpdI1dZuizOWx0eNFmsoGVYLR5vIHX5EJeLiCgoKenp53t9va2tqlpaXR4uxTiqplnr54eHjf39/n5+c/Pz/GxsahoaEkapLOzs5jlLFpaWkKaqEJca2RkZFxcXG/v79GRkasrKy1tbWTxeEHXI4KdrSDs84JZZlmrdbKysoGbamy1eoYYo1iYmIWaJcJYZQEXI4FYJQEU4CStchLS0tDQ0Pg4OAEWYkXgb6Li4tkq9OjwNGyytkFcK2ixdl2dnbAwMCcnJwrjsZGi7Lw9fcGdLLCwsJBQUFCQkImcZxFkbyDqsG2trZFgKKXl5eyzdzQ3+gFaaIJWIWEtNDS0tLQ0NA2kcZlZWUnicGNjY2jyN4ahMEGZJochsNHnM0FcrBzobsHZ50HVoQHbKWDrcVyn7iBudmjzuavr69gYGCDq8IZdaqUlJTB2ed0dHQEYpiJweIwk8sUXol0sdVGg6Y1h7UFZZsHV4YIcrARgsMCc7QBcrNRUVFUVFRVVVVSUlILfL1WVlYKe7wFdrcHeLkDdLUDdbUOgMADdLQEdrYOf8AEdbYSg8NXV1cSg8QShMQThMUAcrIOf78Gd7gNfr8Nfr4Mfb4Mfb0IebkJeroJe7sJers6OjqqqqrU1NTV1dWrq6tISEipqak7OzuAgIB+fn7w9/tJSUnC3u6BgYGCqcDq6upMTEzz8/ODvNz19fX09PTh7/fv9Pd/f3/B3e0HcKuFvt6ErMLg6u+JiYnA1N/B3e7o6OjB3u4IaJ+hv9AFZ5/g6vDg7vaEvd10s9jW1tbC3+/D3+8LerkGdbQFZ6CDu9wLdK9Gm8sIWYcZg8AFa6YEVYPv9voKebiDr8gLb6hVos8nbZQJcKsEV4eErcVUk7eyz+DP5PGSudBGiK4GW4tkmbfB2+qixNdTU1MPgMEQgcJZWVlaWlpfX19bW1tcXFxNTU1eXl5PT09QUFBYWFhdXV1OTk7///////948PWPAAABAHRSTlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AU/cHJQAADDZJREFUeNrsVwlUVNcZfoOEUUQRdALRkVFBRR8Yo4K44IBiMLEmSNwRrXpi3EgNxhiNpsG0FRkIbbrRJaYJQbbBMCCLLHHft+ybZE+XmDTTWhsQw0f/e997M+8NYDhN6zkzx+8c7v23+/33fffNew+hvb1u0/CrnoA/uAG2P2Frbxfa47de9Qz83i2wPaBdqBvV4iH4nXtgu03Y5CmSt/zWTfCEMOpbT8FP3ATbhW9vaX6z4UGa/9NdIHzjMbil+c3HP9wFwr89Brc0v/l41l0g/Mtj8Gt3Qaea6yMiIsL/D6exUq9f6XAEvb47a4x6YzfZn+sSvrd73e7rGnx2TW8vLy9v18CcjkUd1z7nBa/n/msIV1wRs7AOHPGLY658T+gj9Bq/Dosd9mxM6A7Fq3i1m82e7wJrXueX8/oaTXSOFEVDb6UsnftenRUF+LpwemnrNPD28n7+huigubEaCCo1GEKplf77ah6BCLWbPRrxjqMFwv+3mv+pC7yGOwbdN+gOvKaJegMpR47cfT/gzX1fG5B45EjiYZciH15kW6PlPIzDXbW7YY5DuK5FTDxqBR2D2VA74Pr3BGmu8UcBSsPFqM3qDoWoE7vZ7IXOMR7nJqampk68H+PVYe+7P01l4XNIZ+5qGxJZWeqITor87sftWlLS9YWucKMch9BBpdoYXVyF2SzqdNnDu6utcYDmeAYMEDrX3BqCobJZgoVtcrGxc8YYF80FbZMYpULBi50jGusDP37n48AjiFaH30lNDRwxYtx7R/Aac9Phk5o6jgIjXIoms6JpUpETpOuLL87x9lWFvBWP5xxBTY0EV83rYDDt4la2mRkl2M+9/SiRx8XxQOn1UpTGlNJjiGVL2QugrpTXATHcLYnhjgQH+y4DqmUB6Y7PI+Fms3x1wnUN+fWh1TzMKEshESfw0OwYuVLgCxeqt26R0RsNstWA3haLDZc/JPuNH8NmUeGdcWPZ9MYXeJCm1cCnk9+wuEIuGvtnVGoTpGvvBv42kPzV6VA85aItFt8GbtgOu7AKeRrsB/KyFCczMy+PNJcTJXyML2E0pXmlmMBF2J9HT6O6nsE96zCb1ZFSqAsNojcwOSXVqC4hOPmvAEZuDEWImJdnrEP1puAhwGIN+UKgZ3DwYNpLHjUqZfWLgSHBm6oRH8Mr6+pwMjSERFft3XFNDVjLZ18mPqn5GPceA1Z3ENXia/tgHk3jkTLZQjelpXNE4zZXzenx/7gP7XatxIKG25b9FRhvsVQ2oKGSYLGsRcM9y5Y9aMOYG2pOUpg1AVfNUT+0RlcRQ1Lg5DGTbvc3eZEIqqDHf0Ut7uWanzxGXgz3dAYY2KvBSWcOQiQ34lHUysaFLC+gTk3OfgMsvDvUoTmF9KxJED9Zqlw+ilw9X6cgR8Znm5HOjXRs/ixnLTCSeyNJnxwtLlyohI/fOAtZSCRtCGNW53TEHOA+l5Ww3TUxLW1iChqYG4C70wiLYMvJSduMzczJyVm1iM1pfnTYmsVCtgalCLVrAiV4mc8vo4SPJ5uZGhVUOMTErFb6/sjUiRWiLhyRVAGYdbq4ZN1clGZnxw3F0DiCk86uRz2b76UHTnZ2AkJ0JrEijqoTVOQvA8RYkUxvFLYjIsqejbn0lhFN7DhYZZBOZ4oz6Wrl3XE4rmke8D5N79swL4dp/iGPfthRc/YV+NXOsWRV0iMgetmyJRR4v6PmdDIbXDX/UVpaYGDaMMA3J6c3zqV9uWHE5LRE9M4J/AgfBRLolNO+ZG+InT4ujTtovjz7hpqH6ioyszPtVGgw1ZCGmQkISs6kVKbAKwAWzqYHd6lDMDWaweTNph+HyMYikQVbebWDfDgwWthN5HEOisEIZ7SZybXS6YTGtZJbE6rWvEDB6USMp2k8Ek8XFJDmcpg0L9Di8uUwHxKZrEr0nfQeuycbcaHAFelonPgZMyolkEWan+5fUND/znOs1RhMe4jlRy5gqy8oFGNHFqy9cCH68UaXxsJuDYowWBsgzflMmvNxuV0pDFYMB1gFIBUEo4gni7R0u2vmYjRN1QjPYuQOFKnIr9HzHINHG4bvdlAA90qpULlSYvuhvDuOvQrGhiGApkoMHLt377uAHAbe3atFv3797lyCdF67+b3Jp09P7rcA512K9pLkfoEyAwdZpKvUyocZlc7ruODMkWWTo9rGLpobgUdvqHmJ43CKFKO6iCPYkMDFUec7am43ov5R4kEzJy9R1hpV5Fk6fRDfqkGluTFbVrlIVVmi1vwlB6Y2YkXBKhydSnYvQI4CvQpe0mDkyIcDB8JG1iks688iT//YUa6ASb6TJ19aJIGsHughZR9nximc6sFx14L5qtwY4OuvLs8L9MG7GkYhUwtgi8Yvxit8fgXFjpGBpFCMoH0ykvl6dd5R5URcLXUYjbkVnLxMWWtVk8dRQAinz5KtCkUtjkmpwTCoKpXdceQ78PA09MnvgQVRZB+iu4wH6YY/lN8R9wE03kULOOZz14kZfZDit/NpyekngSzSVQoF4Mn8/FOYJqf6bXDmZgAbecxH3oECF83bFqL6quJcHc6u6tiNNadfxrdWCebuaF6zEBMy66HPIjsYIfJSa5uaPNNsYucQwlZLFKGIlLZEN/x3a57/KWwzzmNefzKTfDCTxy7CJ6kTzWeikca/4Hy+XJWikTwAKTsUyfMPSSDrAA7wyCrgKXZiRzfIOOTM0SH32/bwoSQ6EhfN7Rpk2elJ2iLZx+rL7faeGM3sltEopqmcjwxlKJMMMQQT5NhW+qPnuSpvkFZrQB86BtQ+wEz6WjdIwZbhKvKt1NfebNUFsSwnyqTPnRaJNsSqqixGuZM414mHjiMaiRu4vREn+ByAjWyaeeLECjZfXMWjdDRnaNrQiIty1QI2nTgxhk0rbDiz48unczuAdOVzHxxdmptLH0rS6twZxPok+nDbnx5mnOQ8/DWLXTS3x+npKznyWHl5Gf1LUs4uD2Xl5ZH16ErzZrrRJ1DhVkN1WQfNBdC5tWzRdghBPSLN/LzKiJ1OivjLVeRkHGuxDy9D7VWFyBSEwcRE9cbmbmieFEZvg4FJ3J50FH1W5a7qg8ZJklqSAgcRfdHf/4ANjcPyc3OjaMGBGbkropEyaQ9lgYNSUeOCBY/0OEDwd9HcNuYT/5kngEUj6cSm0Wo6Sf8xNip7CjTOmJl76CgCZvp/0gf4Ds2vFQoh8su21nCFFIrk9sktXWlu1xlr5QU/6KC5VVqt6dAWTpFH5WYG5X0/SkU+Sias1VsVogpReqvSf0b2rjTfo8KURhwNlMyz9P3H0Oj3FnPfJgXY/KDc+KjfVOY2bZTclB0ZzCXN2XTQ+UHytpqesUikYdPJS4qtUspW7Nnz1hlu7YmSG992h9TRASHLBRWFhUZDaGhombGwsCYry1yonx06l67UkEDJlXxkMBqMsmUuFPU9lxf33GIXyTMY1Pm2Qv3c4iFDtR2yDQZDnGSKhfbwIcuLI/RijYq8RtRHLC8eEi7qrjkamQqpyXKDvdCs3kaCYaWTV31ZSwdWDbwkmW9O37G+78G+63c0vcnc+VVVvfipDNt45vjxM2E7mpL4gthhm/9+8J6w2Om8qqpqEJsGVTkwXyPb/KpFA78+fnzasNgo5j4UO2z9khMHv/hqB7mzYsOWHOz70Z4904dNO378C7+mMKlj15pn1egKJewTW8mN47ZOLDSxHB8ltURlgXmfvIBFCgs1eWm1toFIkWaVzdGsIm+WCfdVOIla5V1VZKm3YWK3hYJn1GiK/VwxZzXFMjTN4l5GbGwUm6fGSvhcCj9zVnKnv8m92NgpbJoS60CGhj5DjjYt1fqxsxzUcuOmpm3TpY4OCLs6wiyaTKY4s+xZk03J1l1topVsaZRqzI76VusDJtMDYhuzRVGbZ6tFLX2bKIoqJ5l6WVs15K3WOBMta9U0Yk2kHs5Kqxzg0FzXpYxLDjvpbOCUwLNJkhOVkbGOG+vOTp0yZerSJKVqXQZzFU0zuLU0wwGtbFEZUZdo+bZ1jtXUY8o2mW0p9WNntG4bxWYRy7rv1NxN8St3gdDqMfiNu8CDNP+Fu0C45jH4ubvAgzT/pbtAWNnmKfipm6CXEHxL85uMR4R6j7nRf+Ye6PWB0D44ptkz4CaS/61daG+vD/YM1f/oBuj1yAft7f8RYABhbyoG6wZvfwAAAABJRU5ErkJggg== \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/controller/openclash.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/controller/openclash.lua new file mode 100644 index 0000000000..2c8f2e55d5 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/controller/openclash.lua @@ -0,0 +1,309 @@ +module("luci.controller.openclash", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/openclash") then + return + end + + + entry({"admin", "services", "openclash"},alias("admin", "services", "openclash", "client"), _("OpenClash"), 50).dependent = true + entry({"admin", "services", "openclash", "client"},form("openclash/client"),_("Overviews"), 20).leaf = true + entry({"admin", "services", "openclash", "status"},call("action_status")).leaf=true + entry({"admin", "services", "openclash", "state"},call("action_state")).leaf=true + entry({"admin", "services", "openclash", "startlog"},call("action_start")).leaf=true + entry({"admin", "services", "openclash", "currentversion"},call("action_currentversion")) + entry({"admin", "services", "openclash", "lastversion"},call("action_lastversion")) + entry({"admin", "services", "openclash", "update"},call("action_update")) + entry({"admin", "services", "openclash", "update_ma"},call("action_update_ma")) + entry({"admin", "services", "openclash", "opupdate"},call("action_opupdate")) + entry({"admin", "services", "openclash", "coreupdate"},call("action_coreupdate")) + entry({"admin", "services", "openclash", "ping"}, call("act_ping")) + entry({"admin", "services", "openclash", "download_game_rule"}, call("action_download_rule")) + entry({"admin", "services", "openclash", "settings"},cbi("openclash/settings"),_("Global Settings"), 30).leaf = true + entry({"admin", "services", "openclash", "servers"},cbi("openclash/servers"),_("Severs and Groups"), 40).leaf = true + entry({"admin", "services", "openclash", "game-settings"},cbi("openclash/game-settings"),_("Game Rules and Groups"), 50).leaf = true + entry({"admin", "services", "openclash", "config-subscribe"},cbi("openclash/config-subscribe"),_("Config Update"), 60).leaf = true + entry({"admin", "services", "openclash", "servers-config"},cbi("openclash/servers-config"), nil).leaf = true + entry({"admin", "services", "openclash", "groups-config"},cbi("openclash/groups-config"), nil).leaf = true + entry({"admin", "services", "openclash", "proxy-provider-config"},cbi("openclash/proxy-provider-config"), nil).leaf = true + entry({"admin", "services", "openclash", "config"},form("openclash/config"),_("Server Config"), 70).leaf = true + entry({"admin", "services", "openclash", "log"},form("openclash/log"),_("Logs"), 80).leaf = true + +end +local fs = require "luci.openclash" +CONFIG_FILE=string.sub(luci.sys.exec("uci get openclash.config.config_path"), 1, -2) + +if CONFIG_FILE == "" or not fs.isfile(CONFIG_FILE) then + CONFIG_FILE_FIRST=luci.sys.exec("ls -lt '/etc/openclash/config/' | grep -E '.yaml|.yml' | head -n 1 |awk '{print $9}'") + if CONFIG_FILE_FIRST ~= "" then + CONFIG_FILE="/etc/openclash/config/" .. string.sub(CONFIG_FILE_FIRST, 1, -2) + else + CONFIG_FILE = "" + end +end + +local function is_running() + return luci.sys.call("pidof clash >/dev/null") == 0 +end + +local function is_web() + return luci.sys.call("pidof clash >/dev/null") == 0 +end + +local function is_watchdog() + return luci.sys.exec("ps |grep openclash_watchdog.sh |grep -v grep 2>/dev/null |sed -n 1p") +end + +local function config_check() + local yaml = fs.isfile(CONFIG_FILE) + local proxy,group,rule + if yaml then + proxy_provier = luci.sys.call(string.format('egrep "^ {0,}proxy-provider:" "%s" >/dev/null 2>&1',CONFIG_FILE)) + proxy = luci.sys.call(string.format('egrep "^ {0,}Proxy:" "%s" >/dev/null 2>&1',CONFIG_FILE)) + group = luci.sys.call(string.format('egrep "^ {0,}Proxy Group:" "%s" >/dev/null 2>&1',CONFIG_FILE)) + rule = luci.sys.call(string.format('egrep "^ {0,}Rule:" "%s" >/dev/null 2>&1',CONFIG_FILE)) + end + if yaml then + if (proxy == 0) then + proxy = "" + else + if (proxy_provier == 0) then + proxy = "" + else + proxy = " - 代理服务器" + end + end + if (group == 0) then + group = "" + else + group = " - 策略组" + end + if (rule == 0) then + rule = "" + else + rule = " - 规则" + end + return proxy..group..rule + elseif (yaml ~= 0) then + return "1" + end +end + +local function cn_port() + return luci.sys.exec("uci get openclash.config.cn_port 2>/dev/null |tr -d '\n'") +end + +local function mode() + return luci.sys.exec("uci get openclash.config.en_mode 2>/dev/null") +end + +local function config() + if CONFIG_FILE ~= "" then + return string.sub(CONFIG_FILE, 23, -1) + else + return "1" + end +end + +local function ipdb() + return os.date("%Y-%m-%d %H:%M:%S",fs.mtime("/etc/openclash/Country.mmdb")) +end + +local function lhie1() + return os.date("%Y-%m-%d %H:%M:%S",fs.mtime("/etc/openclash/lhie1.yaml")) +end + +local function ConnersHua() + return os.date("%Y-%m-%d %H:%M:%S",fs.mtime("/etc/openclash/ConnersHua.yaml")) +end + +local function ConnersHua_return() + return os.date("%Y-%m-%d %H:%M:%S",fs.mtime("/etc/openclash/ConnersHua_return.yaml")) +end + +local function daip() + return luci.sys.exec("uci get network.lan.ipaddr 2>/dev/null |awk -F '/' '{print $1}' 2>/dev/null |tr -d '\n'") +end + +local function dase() + return luci.sys.exec("uci get openclash.config.dashboard_password 2>/dev/null") +end + +local function check_lastversion() + return luci.sys.exec("sh /usr/share/openclash/openclash_version.sh && sed -n '/^https:/,$p' /tmp/openclash_last_version 2>/dev/null") +end + +local function check_currentversion() + return luci.sys.exec("sed -n '/^data:image/,$p' /etc/openclash/openclash_version 2>/dev/null") +end + +local function startlog() + return luci.sys.exec("sed -n '$p' /tmp/openclash_start.log 2>/dev/null") +end + +local function coremodel() + local coremodel = luci.sys.exec("cat /proc/cpuinfo |grep 'cpu model' 2>/dev/null |awk -F ': ' '{print $2}' 2>/dev/null") + if not coremodel or coremodel == "" then + return luci.sys.exec("opkg status libc 2>/dev/null |grep 'Architecture' |awk -F ': ' '{print $2}' 2>/dev/null") + else + return coremodel + end +end + +local function coremodel2() + return luci.sys.exec("opkg status libc 2>/dev/null |grep 'Architecture' |awk -F ': ' '{print $2}' 2>/dev/null") +end + +local function corecv() +if not nixio.fs.access("/etc/openclash/clash") then + return "0" +else + return luci.sys.exec("/etc/openclash/clash -v 2>/dev/null 2>/dev/null |awk -F ' ' '{print $2}'") +end +end + +local function corelv() + return luci.sys.exec("sh /usr/share/openclash/clash_version.sh && sed -n 1p /tmp/clash_last_version 2>/dev/null") +end + +local function opcv() + return luci.sys.exec("sed -n 1p /etc/openclash/openclash_version 2>/dev/null") +end + +local function oplv() + return luci.sys.exec("sh /usr/share/openclash/openclash_version.sh && sed -n 1p /tmp/openclash_last_version 2>/dev/null |sed 's/^v//g' 2>/dev/null") +end + +local function opup() + return luci.sys.exec("rm -rf /tmp/*_last_version 2>/dev/null && sh /usr/share/openclash/openclash_version.sh && sh /usr/share/openclash/openclash_update.sh >/dev/null 2>&1 &") +end + +local function coreup() + return luci.sys.exec("uci set openclash.config.enable=1 && uci commit openclash && rm -rf /tmp/*_last_version 2>/dev/null && sh /usr/share/openclash/clash_version.sh && sh /usr/share/openclash/openclash_core.sh >/dev/null 2>&1 &") +end + +local function corever() + return luci.sys.exec("uci get openclash.config.core_version 2>/dev/null") +end + +local function upchecktime() + local corecheck = os.date("%Y-%m-%d %H:%M:%S",fs.mtime("/tmp/clash_last_version")) + local opcheck + if not corecheck or corecheck == "" then + opcheck = os.date("%Y-%m-%d %H:%M:%S",fs.mtime("/tmp/openclash_last_version")) + if not opcheck or opcheck == "" then + return "1" + else + return opcheck + end + else + return corecheck + end +end + +function download_rule() + local filename = luci.http.formvalue("filename") + local rule_file_dir="/etc/openclash/game_rules/" .. filename + luci.sys.call(string.format('/usr/share/openclash/openclash_game_rule.sh "%s" >/dev/null 2>&1',filename)) + if not fs.isfile(rule_file_dir) then + return "0" + else + return "1" + end +end + +function action_status() + luci.http.prepare_content("application/json") + luci.http.write_json({ + clash = is_running(), + watchdog = is_watchdog(), + daip = daip(), + dase = dase(), + web = is_web(), + cn_port = cn_port(), + mode = mode(); + }) +end +function action_state() + luci.http.prepare_content("application/json") + luci.http.write_json({ + config_check = config_check(), + config = config(), + lhie1 = lhie1(), + ConnersHua = ConnersHua(), + ConnersHua_return = ConnersHua_return(), + ipdb = ipdb(); + }) +end + +function action_lastversion() + luci.http.prepare_content("application/json") + luci.http.write_json({ + lastversion = check_lastversion(); + }) +end + +function action_currentversion() + luci.http.prepare_content("application/json") + luci.http.write_json({ + currentversion = check_currentversion(); + }) +end + +function action_start() + luci.http.prepare_content("application/json") + luci.http.write_json({ + startlog = startlog(); + }) +end + +function action_update() + luci.http.prepare_content("application/json") + luci.http.write_json({ + coremodel = coremodel(), + coremodel2 = coremodel2(), + corecv = corecv(), + opcv = opcv(), + corever = corever(), + upchecktime = upchecktime(), + corelv = corelv(), + oplv = oplv(); + }) +end + +function action_update_ma() + luci.http.prepare_content("application/json") + luci.http.write_json({ + oplv = oplv(), + corever = corever(); + }) +end + +function action_opupdate() + luci.http.prepare_content("application/json") + luci.http.write_json({ + opup = opup(); + }) +end + +function action_coreupdate() + luci.http.prepare_content("application/json") + luci.http.write_json({ + coreup = coreup(); + }) +end + +function act_ping() + local e={} + e.index=luci.http.formvalue("index") + e.ping=luci.sys.exec("ping -c 1 -W 1 %q 2>&1 | grep -o 'time=[0-9]*.[0-9]' | awk -F '=' '{print$2}'"%luci.http.formvalue("domain")) + luci.http.prepare_content("application/json") + luci.http.write_json(e) +end + +function action_download_rule() + luci.http.prepare_content("application/json") + luci.http.write_json({ + game_rule_download_status = download_rule(); + }) +end \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/client.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/client.lua new file mode 100644 index 0000000000..ae73c311f5 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/client.lua @@ -0,0 +1,112 @@ + +local NXFS = require "nixio.fs" +local SYS = require "luci.sys" +local HTTP = require "luci.http" +local DISP = require "luci.dispatcher" +local UTIL = require "luci.util" +local fs = require "luci.openclash" +local uci = require("luci.model.uci").cursor() + +m = Map("openclash") +m.title = translate("OpenClash") +m.description = translate("A Clash Client For OpenWrt") +m.pageaction = false + +m:section(SimpleSection).template = "openclash/status" +m:section(SimpleSection).template = "openclash/state" + +local e,a={} +for t,o in ipairs(fs.glob("/etc/openclash/config/*"))do +a=fs.stat(o) +if a then +e[t]={} +e[t].name=fs.basename(o) +BACKUP_FILE="/etc/openclash/backup/".. e[t].name +e[t].mtime=os.date("%Y-%m-%d %H:%M:%S",fs.mtime(BACKUP_FILE)) or os.date("%Y-%m-%d %H:%M:%S",a.mtime) +if string.sub(luci.sys.exec("uci get openclash.config.config_path"), 23, -2) == e[t].name then + e[t].state=translate("Enable") +else + e[t].state=translate("Disable") +end +e[t].size=tostring(a.size) +e[t].remove=0 +e[t].enable=false +end +end + +form=SimpleForm("filelist") +form.reset=false +form.submit=false +tb=form:section(Table,e) +st=tb:option(DummyValue,"state",translate("State")) +nm=tb:option(DummyValue,"name",translate("Config Alias")) +mt=tb:option(DummyValue,"mtime",translate("Update Time")) + +function IsYamlFile(e) + e=e or"" + local e=string.lower(string.sub(e,-5,-1)) + return e == ".yaml" +end +function IsYmlFile(e) + e=e or"" + local e=string.lower(string.sub(e,-4,-1)) + return e == ".yml" +end + +btnis=tb:option(Button,"switch",translate("Switch Config")) +btnis.template="openclash/other_button" +btnis.render=function(o,t,a) +if not e[t] then return false end +if IsYamlFile(e[t].name) or IsYmlFile(e[t].name) then +a.display="" +else +a.display="none" +end +o.inputstyle="apply" +Button.render(o,t,a) +end +btnis.write=function(a,t) +luci.sys.exec(string.format('uci set openclash.config.config_path="/etc/openclash/config/%s"',e[t].name)) +uci:set("openclash", "config", "enable", 1) +uci:commit("openclash") +SYS.call("/etc/init.d/openclash restart >/dev/null 2>&1 &") +HTTP.redirect(luci.dispatcher.build_url("admin", "services", "openclash", "client")) +end + +s = Map("openclash") +s.pageaction = false +s:section(SimpleSection).template = "openclash/myip" + +local t = { + {enable, disable} +} + +ap = SimpleForm("apply") +ap.reset = false +ap.submit = false +ss = ap:section(Table, t) + +o = ss:option(Button, "enable") +o.inputtitle = translate("Enable Clash") +o.inputstyle = "apply" +o.write = function() + uci:set("openclash", "config", "enable", 1) + uci:commit("openclash") + SYS.call("/etc/init.d/openclash restart >/dev/null 2>&1 &") +end + +o = ss:option(Button, "disable") +o.inputtitle = translate("Disable Clash") +o.inputstyle = "reset" +o.write = function() + uci:set("openclash", "config", "enable", 0) + uci:commit("openclash") + SYS.call("/etc/init.d/openclash stop >/dev/null 2>&1 &") +end + +d = Map("openclash") +d.title = translate("Technical Support") +d.pageaction = false +d:section(SimpleSection).template = "openclash/developer" + +return m, form, s, ap, d diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/config-subscribe.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/config-subscribe.lua new file mode 100644 index 0000000000..f8b2636ba5 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/config-subscribe.lua @@ -0,0 +1,126 @@ + +local m, s, o +local openclash = "openclash" +local NXFS = require "nixio.fs" +local SYS = require "luci.sys" +local HTTP = require "luci.http" +local DISP = require "luci.dispatcher" +local UTIL = require "luci.util" +local uci = require "luci.model.uci".cursor() + +font_red = [[]] +font_off = [[]] +bold_on = [[]] +bold_off = [[]] + +m = Map(openclash, translate("Config Update")) +m.pageaction = false + +s = m:section(TypedSection, "openclash") +s.anonymous = true + +---- update Settings +o = s:option(ListValue, "auto_update", translate("Auto Update")) +o.description = translate("Auto Update Server subscription") +o:value("0", translate("Disable")) +o:value("1", translate("Enable")) +o.default=0 + +o = s:option(ListValue, "config_update_week_time", translate("Update Time (Every Week)")) +o:value("*", translate("Every Day")) +o:value("1", translate("Every Monday")) +o:value("2", translate("Every Tuesday")) +o:value("3", translate("Every Wednesday")) +o:value("4", translate("Every Thursday")) +o:value("5", translate("Every Friday")) +o:value("6", translate("Every Saturday")) +o:value("0", translate("Every Sunday")) +o.default=1 + +o = s:option(ListValue, "auto_update_time", translate("Update time (every day)")) +for t = 0,23 do +o:value(t, t..":00") +end +o.default=0 +o.rmempty = false + +o = s:option(Button, translate("Config File Update")) +o.title = translate("Update Subcription") +o.inputtitle = translate("Check And Update") +o.inputstyle = "reload" +o.write = function() + m.uci:set("openclash", "config", "enable", 1) + m.uci:commit("openclash") + local config_name=string.sub(luci.sys.exec("uci get openclash.config.config_path"), 23, -2) + SYS.call("rm -rf /etc/openclash/backup/* 2>/dev/null") + SYS.call("/usr/share/openclash/openclash.sh >/dev/null 2>&1 &") + HTTP.redirect(DISP.build_url("admin", "services", "openclash")) +end + +-- [[ Edit Server ]] -- +s = m:section(TypedSection, "config_subscribe") +s.anonymous = true +s.addremove = true +s.sortable = false +s.template = "cbi/tblsection" +s.rmempty = false + +---- enable flag +o = s:option(Flag, "enabled", translate("Enable"), font_red..bold_on..translate("(Enable or Disable Subscribe)")..bold_off..font_off) +o.rmempty = false +o.default = o.enabled +o.cfgvalue = function(...) + return Flag.cfgvalue(...) or "1" +end + +---- name +o = s:option(Value, "name", translate("Config Alias")) +o.description = font_red..bold_on..translate("(Name For Distinguishing)")..bold_off..font_off +o.placeholder = translate("config") +o.rmempty = true + +---- type +o = s:option(ListValue, "type", translate("Subscribe Type")) +o.description = font_red..bold_on..translate("(Power By fndroid)")..bold_off..font_off +o:value("clash", translate("Clash")) +o:value("v2rayn", translate("V2rayN")) +o:value("surge", translate("Surge")) +o.default="clash" +o.rempty = false + +---- address +o = s:option(Value, "address", translate("Subscribe Address")) +o.description = font_red..bold_on..translate("(Not Null)")..bold_off..font_off +o.placeholder = translate("Not Null") +o.datatype = "or(host, string)" +o.rmempty = true + +---- key +o = s:option(DynamicList, "keyword", font_red..bold_on..translate("Keyword Match")..bold_off..font_off) +o.description = font_red..bold_on..translate("(eg: hk or tw&bgp)")..bold_off..font_off +o.rmempty = true + +local t = { + {Commit, Apply} +} + +a = m:section(Table, t) + +o = a:option(Button, "Commit") +o.inputtitle = translate("Commit Configurations") +o.inputstyle = "apply" +o.write = function() + m.uci:commit("openclash") +end + +o = a:option(Button, "Apply") +o.inputtitle = translate("Apply Configurations") +o.inputstyle = "apply" +o.write = function() + m.uci:set("openclash", "config", "enable", 1) + m.uci:commit("openclash") + SYS.call("/etc/init.d/openclash restart >/dev/null 2>&1 &") + HTTP.redirect(DISP.build_url("admin", "services", "openclash")) +end + +return m diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/config.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/config.lua new file mode 100644 index 0000000000..437f47d6b1 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/config.lua @@ -0,0 +1,322 @@ + +local NXFS = require "nixio.fs" +local SYS = require "luci.sys" +local HTTP = require "luci.http" +local DISP = require "luci.dispatcher" +local UTIL = require "luci.util" +local fs = require "luci.openclash" +local uci = require("luci.model.uci").cursor() +local CHIF = "0" + +function IsYamlFile(e) + e=e or"" + local e=string.lower(string.sub(e,-5,-1)) + return e == ".yaml" +end +function IsYmlFile(e) + e=e or"" + local e=string.lower(string.sub(e,-4,-1)) + return e == ".yml" +end + +ful = SimpleForm("upload", translate("Server Config"), nil) +ful.reset = false +ful.submit = false + +sul =ful:section(SimpleSection, "") +o = sul:option(FileUpload, "") +o.template = "openclash/upload" +um = sul:option(DummyValue, "", nil) +um.template = "openclash/dvalue" + +local dir, fd, clash +clash = "/etc/openclash/clash" +dir = "/etc/openclash/config/" +bakck_dir="/etc/openclash/backup" +proxy_pro_dir="/etc/openclash/proxy_provider/" +create_bakck_dir=fs.mkdir(bakck_dir) +create_proxy_pro_dir=fs.mkdir(proxy_pro_dir) + + +HTTP.setfilehandler( + function(meta, chunk, eof) + local fp = HTTP.formvalue("file_type") + if not fd then + if not meta then return end + + if fp == "config" then + if meta and chunk then fd = nixio.open(dir .. meta.file, "w") end + elseif fp == "proxy-provider" then + if meta and chunk then fd = nixio.open(proxy_pro_dir .. meta.file, "w") end + end + + if not fd then + um.value = translate("upload file error.") + return + end + end + if chunk and fd then + fd:write(chunk) + end + if eof and fd then + fd:close() + fd = nil + if IsYamlFile(meta.file) and fp ~= "proxy-provider" then + local yamlbackup="/etc/openclash/backup/" .. meta.file + local c=fs.copy(dir .. meta.file,yamlbackup) + end + if IsYmlFile(meta.file) and fp ~= "proxy-provider" then + local ymlname=string.lower(string.sub(meta.file,0,-5)) + local ymlbackup="/etc/openclash/backup/".. ymlname .. ".yaml" + local c=fs.rename(dir .. meta.file,"/etc/openclash/config/".. ymlname .. ".yaml") + local c=fs.copy("/etc/openclash/config/".. ymlname .. ".yaml",ymlbackup) + end + if fp ~= "proxy-provider" then + um.value = translate("File saved to") .. ' "/etc/openclash/config/"' + CHIF = "1" + else + um.value = translate("File saved to") .. ' "/etc/openclash/proxy_provider/"' + end + end + end +) + +if HTTP.formvalue("upload") then + local f = HTTP.formvalue("ulfile") + if #f <= 0 then + um.value = translate("No specify upload file.") + end +end + +local e,a={} +for t,o in ipairs(fs.glob("/etc/openclash/config/*"))do +a=fs.stat(o) +if a then +e[t]={} +e[t].name=fs.basename(o) +BACKUP_FILE="/etc/openclash/backup/".. e[t].name +e[t].mtime=os.date("%Y-%m-%d %H:%M:%S",fs.mtime(BACKUP_FILE)) or os.date("%Y-%m-%d %H:%M:%S",a.mtime) +if string.sub(luci.sys.exec("uci get openclash.config.config_path"), 23, -2) == e[t].name then + e[t].state=translate("Enable") +else + e[t].state=translate("Disable") +end +e[t].size=tostring(a.size) +e[t].remove=0 +e[t].enable=false +end +end + +function IsYamlFile(e) + e=e or"" + local e=string.lower(string.sub(e,-5,-1)) + return e == ".yaml" +end +function IsYmlFile(e) + e=e or"" + local e=string.lower(string.sub(e,-4,-1)) + return e == ".yml" +end + +form=SimpleForm("config_file_list",translate("Config File List")) +form.reset=false +form.submit=false +tb=form:section(Table,e) +st=tb:option(DummyValue,"state",translate("State")) +nm=tb:option(DummyValue,"name",translate("Config Alias")) +mt=tb:option(DummyValue,"mtime",translate("Update Time")) +sz=tb:option(DummyValue,"size",translate("Size")) + +btnis=tb:option(Button,"switch",translate("Switch Config")) +btnis.template="openclash/other_button" +btnis.render=function(o,t,a) +if not e[t] then return false end +if IsYamlFile(e[t].name) or IsYmlFile(e[t].name) then +a.display="" +else +a.display="none" +end +o.inputstyle="apply" +Button.render(o,t,a) +end +btnis.write=function(a,t) +luci.sys.exec(string.format('uci set openclash.config.config_path="/etc/openclash/config/%s"',e[t].name)) +uci:commit("openclash") +HTTP.redirect(luci.dispatcher.build_url("admin", "services", "openclash", "config")) +end + +btndl = tb:option(Button,"download",translate("Download Configurations")) +btndl.template="openclash/other_button" +btndl.render=function(e,t,a) +e.inputstyle="remove" +Button.render(e,t,a) +end +btndl.write = function (a,t) + local sPath, sFile, fd, block + sPath = "/etc/openclash/config/"..e[t].name + sFile = NXFS.basename(sPath) + if fs.isdirectory(sPath) then + fd = io.popen('tar -C "%s" -cz .' % {sPath}, "r") + sFile = sFile .. ".tar.gz" + else + fd = nixio.open(sPath, "r") + end + if not fd then + return + end + HTTP.header('Content-Disposition', 'attachment; filename="%s"' % {sFile}) + HTTP.prepare_content("application/octet-stream") + while true do + block = fd:read(nixio.const.buffersize) + if (not block) or (#block ==0) then + break + else + HTTP.write(block) + end + end + fd:close() + HTTP.close() +end + +btnrm=tb:option(Button,"remove",translate("Remove")) +btnrm.render=function(e,t,a) +e.inputstyle="reset" +Button.render(e,t,a) +end +btnrm.write=function(a,t) +local a=fs.unlink("/etc/openclash/config/"..luci.openclash.basename(e[t].name)) +local db=fs.unlink("/etc/openclash/backup/"..luci.openclash.basename(e[t].name)) +if a then table.remove(e,t)end +return a +end + +local p,r={} +for x,y in ipairs(fs.glob("/etc/openclash/proxy_provider/*"))do +r=fs.stat(y) +if r then +p[x]={} +p[x].name=fs.basename(y) +p[x].mtime=os.date("%Y-%m-%d %H:%M:%S",r.mtime) +p[x].size=tostring(r.size) +p[x].remove=0 +p[x].enable=false +end +end + +proxy_form=SimpleForm("proxy_provider_file_list",translate("Proxy Provider File List")) +proxy_form.reset=false +proxy_form.submit=false +tb1=proxy_form:section(Table,p) +nm1=tb1:option(DummyValue,"name",translate("File Name")) +mt1=tb1:option(DummyValue,"mtime",translate("Update Time")) +sz1=tb1:option(DummyValue,"size",translate("Size")) + +btndl1 = tb1:option(Button,"download1",translate("Download Configurations")) +btndl1.template="openclash/other_button" +btndl1.render=function(y,x,r) +y.inputstyle="remove" +Button.render(y,x,r) +end +btndl1.write = function (r,x) + local sPath, sFile, fd, block + sPath = "/etc/openclash/proxy_provider/"..p[x].name + sFile = NXFS.basename(sPath) + if fs.isdirectory(sPath) then + fd = io.popen('tar -C "%s" -cz .' % {sPath}, "r") + sFile = sFile .. ".tar.gz" + else + fd = nixio.open(sPath, "r") + end + if not fd then + return + end + HTTP.header('Content-Disposition', 'attachment; filename="%s"' % {sFile}) + HTTP.prepare_content("application/octet-stream") + while true do + block = fd:read(nixio.const.buffersize) + if (not block) or (#block ==0) then + break + else + HTTP.write(block) + end + end + fd:close() + HTTP.close() +end + +btnrm1=tb1:option(Button,"remove1",translate("Remove")) +btnrm1.render=function(p,x,r) +p.inputstyle="reset" +Button.render(p,x,r) +end +btnrm1.write=function(r,x) +local r=fs.unlink("/etc/openclash/proxy_provider/"..luci.openclash.basename(p[x].name)) +if r then table.remove(p,x)end +return r +end + +m = SimpleForm("openclash") +m.reset = false +m.submit = false + +local tab = { + {user, default} +} + +s = m:section(Table, tab) + +local conf = string.sub(luci.sys.exec("uci get openclash.config.config_path"), 1, -2) +local dconf = "/etc/openclash/default.yaml" + +sev = s:option(Value, "user") +sev.template = "cbi/tvalue" +sev.description = translate("You Can Modify config file Here, Except The Settings That Were Taken Over") +sev.rows = 20 +sev.wrap = "off" +sev.cfgvalue = function(self, section) + return NXFS.readfile(conf) or NXFS.readfile(dconf) or "" +end +sev.write = function(self, section, value) +if (CHIF == "0") then + value = value:gsub("\r\n?", "\n") + NXFS.writefile(conf, value) +end +end + +def = s:option(Value, "default") +def.template = "cbi/tvalue" +def.description = translate("Default Config File With Correct General-Settings") +def.rows = 20 +def.wrap = "off" +def.readonly = true +def.cfgvalue = function(self, section) + return NXFS.readfile(dconf) or "" +end +def.write = function(self, section, value) +end + + +local t = { + {Commit, Apply} +} + +a = m:section(Table, t) + +o = a:option(Button, "Commit") +o.inputtitle = translate("Commit Configurations") +o.inputstyle = "apply" +o.write = function() + uci:commit("openclash") +end + +o = a:option(Button, "Apply") +o.inputtitle = translate("Apply Configurations") +o.inputstyle = "apply" +o.write = function() + uci:set("openclash", "config", "enable", 1) + uci:commit("openclash") + SYS.call("/etc/init.d/openclash restart >/dev/null 2>&1 &") + HTTP.redirect(DISP.build_url("admin", "services", "openclash")) +end + +return ful , form , proxy_form , m diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/game-settings.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/game-settings.lua new file mode 100644 index 0000000000..3bc2f2a442 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/game-settings.lua @@ -0,0 +1,149 @@ + +local m, s, o +local openclash = "openclash" +local NXFS = require "nixio.fs" +local SYS = require "luci.sys" +local HTTP = require "luci.http" +local DISP = require "luci.dispatcher" +local UTIL = require "luci.util" +local fs = require "luci.openclash" +local uci = require "luci.model.uci".cursor() + +m = Map(openclash, translate("Game Rules and Groups")) +m.pageaction = false +m.description=translate("注意事项:
游戏模式为测试功能,不保证可用性。使用的内核由comzyh修改
项目地址:https://github.com/comzyh/clash
使用步骤:
1、在《服务器与策略组管理》页面创建您准备使用的游戏策略组和游戏节点(节点添加时必须选择要加入的策略组),策略组类型建议:FallBack,游戏节点必须支持UDP
2、在此页面的游戏规则列表下载您要使用的游戏规则
3、在此页面上方设置您已下载的游戏规则的对应策略组并保存设置
4、替换内核,下载地址:(https://github.com/vernesong/OpenClash/releases/tag/TUN)
5、在《全局设置》-《常规设置》-《运行模式》中选择游戏模式并启动") + + +function IsRuleFile(e) +e=e or"" +local e=string.lower(string.sub(e,-6,-1)) +return e==".rules" +end + +SYS.call("awk -F ',' '{print $1}' /etc/openclash/game_rules.list > /tmp/rules_name 2>/dev/null") +file = io.open("/tmp/rules_name", "r"); + +-- [[ Edit Game Rule ]] -- +s = m:section(TypedSection, "game_config") +s.anonymous = true +s.addremove = true +s.sortable = false +s.template = "cbi/tblsection" +s.rmempty = false + +---- enable flag +o = s:option(Flag, "enabled", translate("Enable")) +o.rmempty = false +o.default = o.enabled +o.cfgvalue = function(...) + return Flag.cfgvalue(...) or "1" +end + +---- rule name +o = s:option(DynamicList, "rule_name", translate("Game Rule's Name")) +local e,a={} +for t,f in ipairs(fs.glob("/etc/openclash/game_rules/*"))do + a=fs.stat(f) + if a then + e[t]={} + e[t].filename=fs.basename(f) + if IsRuleFile(e[t].filename) then + e[t].name=luci.sys.exec(string.format("grep -F '%s' /etc/openclash/game_rules.list |awk -F ',' '{print $1}' 2>/dev/null",e[t].filename)) + o:value(e[t].name) + end + end +end + +o.rmempty = true + +---- Proxy Group +o = s:option(ListValue, "group", translate("Select Proxy Group")) +uci:foreach("openclash", "groups", + function(s) + if s.name ~= "" and s.name ~= nil then + o:value(s.name) + end + end) +o:value("DIRECT") +o:value("REJECT") +o.rmempty = true + +---- Rules List +local e={},a,o,t +a=nixio.fs.access("/tmp/rules_name") +if a then +for o in file:lines() do +table.insert(e,o) +end +for t,o in ipairs(e) do +e[t]={} +e[t].num=string.format(t) +e[t].name=o +e[t].filename=string.sub(luci.sys.exec(string.format("grep -F '%s,' /etc/openclash/game_rules.list |awk -F ',' '{print $3}' 2>/dev/null",e[t].name)),1,-2) +if e[t].filename == "" then +e[t].filename=string.sub(luci.sys.exec(string.format("grep -F '%s,' /etc/openclash/game_rules.list |awk -F ',' '{print $2}' 2>/dev/null",e[t].name)),1,-2) +end +RULE_FILE="/etc/openclash/game_rules/".. e[t].filename +if fs.mtime(RULE_FILE) then +e[t].mtime=os.date("%Y-%m-%d %H:%M:%S",fs.mtime(RULE_FILE)) +else +e[t].mtime="/" +end +if fs.isfile(RULE_FILE) then + e[t].exist=translate("Exist") +else + e[t].exist=translate("Not Exist") +end +e[t].remove=0 +end +end +file:close() + +form=SimpleForm("filelist", translate("Game Rules List")) +form.description=translate("规则项目: SSTap-Rule ( https://github.com/FQrabbit/SSTap-Rule )
") +form.reset=false +form.submit=false +tb=form:section(Table,e) +nu=tb:option(DummyValue,"num",translate("Order Number")) +st=tb:option(DummyValue,"exist",translate("State")) +nm=tb:option(DummyValue,"name",translate("Rule Name")) +fm=tb:option(DummyValue,"filename",translate("File Name")) +mt=tb:option(DummyValue,"mtime",translate("Update Time")) + +btnis=tb:option(DummyValue,"filename",translate("Download Rule")) +btnis.template="openclash/download_game_rule" + +btnrm=tb:option(Button,"remove",translate("Remove")) +btnrm.render=function(e,t,a) +e.inputstyle="reset" +Button.render(e,t,a) +end +btnrm.write=function(a,t) +fs.unlink("/etc/openclash/game_rules/"..e[t].filename) +HTTP.redirect(DISP.build_url("admin", "services", "openclash", "game-settings")) +end + +local t = { + {Commit, Apply} +} + +ss = m:section(Table, t) + +o = ss:option(Button, "Commit") +o.inputtitle = translate("Commit Configurations") +o.inputstyle = "apply" +o.write = function() + m.uci:commit("openclash") +end + +o = ss:option(Button, "Apply") +o.inputtitle = translate("Apply Configurations") +o.inputstyle = "apply" +o.write = function() + m.uci:set("openclash", "config", "enable", 1) + m.uci:commit("openclash") + SYS.call("/etc/init.d/openclash restart >/dev/null 2>&1 &") + HTTP.redirect(DISP.build_url("admin", "services", "openclash")) +end + +return m, form diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/groups-config.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/groups-config.lua new file mode 100644 index 0000000000..53de1e66ad --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/groups-config.lua @@ -0,0 +1,112 @@ + +local m, s, o +local openclash = "openclash" +local uci = luci.model.uci.cursor() +local fs = require "luci.openclash" +local sys = require "luci.sys" +local sid = arg[1] + +font_red = [[]] +font_off = [[]] +bold_on = [[]] +bold_off = [[]] + +function IsYamlFile(e) + e=e or"" + local e=string.lower(string.sub(e,-5,-1)) + return e == ".yaml" +end +function IsYmlFile(e) + e=e or"" + local e=string.lower(string.sub(e,-4,-1)) + return e == ".yml" +end + +m = Map(openclash, translate("Edit Group")) +m.pageaction = false +m.redirect = luci.dispatcher.build_url("admin/services/openclash/servers") +if m.uci:get(openclash, sid) ~= "groups" then + luci.http.redirect(m.redirect) + return +end + +-- [[ Groups Setting ]]-- +s = m:section(NamedSection, sid, "groups") +s.anonymous = true +s.addremove = false + +o = s:option(ListValue, "config", translate("Config File")) +o:value("all", translate("Use For All Config File")) +local e,a={} +for t,f in ipairs(fs.glob("/etc/openclash/config/*"))do + a=fs.stat(f) + if a then + e[t]={} + e[t].name=fs.basename(f) + if IsYamlFile(e[t].name) or IsYmlFile(e[t].name) then + o:value(e[t].name) + end + end +end + +o = s:option(ListValue, "type", translate("Group Type")) +o.rmempty = true +o.description = translate("Choose The Operation Mode") +o:value("select", translate("Select")) +o:value("url-test", translate("URL-Test")) +o:value("fallback", translate("Fallback")) +o:value("load-balance", translate("Load-Balance")) + +o = s:option(Value, "name", translate("Group Name")) +o.rmempty = false + +o = s:option(Value, "test_url", translate("Test URL")) +o.default = "http://www.gstatic.com/generate_204" +o.rmempty = false +o:depends("type", "url-test") +o:depends("type", "fallback") +o:depends("type", "load-balance") + +o = s:option(Value, "test_interval", translate("Test Interval(s)")) +o.default = "300" +o.rmempty = false +o:depends("type", "url-test") +o:depends("type", "fallback") +o:depends("type", "load-balance") + +o = s:option(DynamicList, "other_group", translate("Other Group")) +o.description = font_red..bold_on..translate("The Added Proxy Groups Must Exist Except 'DIRECT' & 'REJECT'")..bold_off..font_off +uci:foreach("openclash", "groups", + function(s) + if s.name ~= "" and s.name ~= nil and s.name ~= m.uci:get(openclash, sid, "name") then + o:value(s.name) + end + end) +o:value("DIRECT") +o:value("REJECT") +o:depends("type", "select") +o.rmempty = true + +local t = { + {Commit, Back} +} +a = m:section(Table, t) + +o = a:option(Button,"Commit") +o.inputtitle = translate("Commit Configurations") +o.inputstyle = "apply" +o.write = function() + m.uci:commit(openclash) + sys.call("/usr/share/openclash/yml_groups_name_ch.sh start") + luci.http.redirect(m.redirect) +end + +o = a:option(Button,"Back") +o.inputtitle = translate("Back Configurations") +o.inputstyle = "reset" +o.write = function() + m.uci:revert(openclash) + luci.http.redirect(m.redirect) +end + +return m diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/log.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/log.lua new file mode 100644 index 0000000000..d284353d58 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/log.lua @@ -0,0 +1,50 @@ +-- +local NXFS = require "nixio.fs" +local SYS = require "luci.sys" +local HTTP = require "luci.http" +local DISP = require "luci.dispatcher" +local UTIL = require "luci.util" + + +m = Map("openclash", translate("Server logs")) +s = m:section(TypedSection, "openclash") +m.pageaction = false +s.anonymous = true +s.addremove=false + +local clog = "/tmp/openclash.log" +log = s:option(TextValue, "clog") +log.readonly=true +log.description = translate("") +log.rows = 29 +log.wrap = "off" +log.cfgvalue = function(self, section) + return NXFS.readfile(clog) or "" +end +log.write = function(self, section, value) +end + +local t = { + {refresh, clean} +} + +a = SimpleForm("apply") +a.reset = false +a.submit = false +s = a:section(Table, t) + +o = s:option(Button, "refresh") +o.inputtitle = translate("Refresh Log") +o.inputstyle = "apply" +o.write = function() + HTTP.redirect(luci.dispatcher.build_url("admin", "services", "openclash", "log")) +end + +o = s:option(Button, "clean") +o.inputtitle = translate("Clean Log") +o.inputstyle = "apply" +o.write = function() + SYS.call("echo '' >/tmp/openclash.log") +end + +return m, a \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/proxy-provider-config.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/proxy-provider-config.lua new file mode 100644 index 0000000000..7377a8f48b --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/proxy-provider-config.lua @@ -0,0 +1,128 @@ + +local m, s, o +local openclash = "openclash" +local uci = luci.model.uci.cursor() +local sys = require "luci.sys" +local sid = arg[1] +local fs = require "luci.openclash" + +font_red = [[]] +font_off = [[]] +bold_on = [[]] +bold_off = [[]] + +function IsYamlFile(e) + e=e or"" + local e=string.lower(string.sub(e,-5,-1)) + return e == ".yaml" +end +function IsYmlFile(e) + e=e or"" + local e=string.lower(string.sub(e,-4,-1)) + return e == ".yml" +end + +m = Map(openclash, translate("Edit Proxy-Provider")) +m.pageaction = false +m.redirect = luci.dispatcher.build_url("admin/services/openclash/servers") +if m.uci:get(openclash, sid) ~= "proxy-provider" then + luci.http.redirect(m.redirect) + return +end + +-- [[ Provider Setting ]]-- +s = m:section(NamedSection, sid, "proxy-provider") +s.anonymous = true +s.addremove = false + +o = s:option(ListValue, "config", translate("Config File")) +o:value("all", translate("Use For All Config File")) +local e,a={} +for t,f in ipairs(fs.glob("/etc/openclash/config/*"))do + a=fs.stat(f) + if a then + e[t]={} + e[t].name=fs.basename(f) + if IsYamlFile(e[t].name) or IsYmlFile(e[t].name) then + o:value(e[t].name) + end + end +end + +o = s:option(ListValue, "type", translate("Provider Type")) +o.rmempty = true +o.description = translate("Choose The Provider Type") +o:value("http") +o:value("file") + +o = s:option(Value, "name", translate("Provider Name")) +o.rmempty = false + +o = s:option(ListValue, "path", translate("Provider Path")) +o.description = translate("Update Your Proxy Provider File From Config Luci Page") +local p,h={} +for t,f in ipairs(fs.glob("/etc/openclash/proxy_provider/*"))do + h=fs.stat(f) + if h then + p[t]={} + p[t].name=fs.basename(f) + if IsYamlFile(p[t].name) or IsYmlFile(p[t].name) then + o:value("./proxy_provider/"..p[t].name) + end + end +end +o.rmempty = false +o:depends("type", "file") + +o = s:option(Value, "provider_url", translate("Provider URL")) +o.rmempty = false +o:depends("type", "http") + +o = s:option(Value, "provider_interval", translate("Provider Interval(s)")) +o.default = "3600" +o.rmempty = false +o:depends("type", "http") + +o = s:option(ListValue, "health_check", translate("Provider Health Check")) +o:value("false", translate("Disable")) +o:value("true", translate("Enable")) +o.default=true + +o = s:option(Value, "health_check_url", translate("Health Check URL")) +o.default = "http://www.gstatic.com/generate_204" +o.rmempty = false + +o = s:option(Value, "health_check_interval", translate("Health Check Interval(s)")) +o.default = "300" +o.rmempty = false + +o = s:option(DynamicList, "groups", translate("Proxy Group")) +o.description = font_red..bold_on..translate("No Need Set when Config Create, The added Proxy Groups Must Exist")..bold_off..font_off +o.rmempty = true +m.uci:foreach("openclash", "groups", + function(s) + o:value(s.name) + end) + +local t = { + {Commit, Back} +} +a = m:section(Table, t) + +o = a:option(Button,"Commit") +o.inputtitle = translate("Commit Configurations") +o.inputstyle = "apply" +o.write = function() + m.uci:commit(openclash) + luci.http.redirect(m.redirect) +end + +o = a:option(Button,"Back") +o.inputtitle = translate("Back Configurations") +o.inputstyle = "reset" +o.write = function() + m.uci:revert(openclash) + luci.http.redirect(m.redirect) +end + +return m diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/servers-config.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/servers-config.lua new file mode 100644 index 0000000000..fbb9cbe848 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/servers-config.lua @@ -0,0 +1,256 @@ + +local m, s, o +local openclash = "openclash" +local uci = luci.model.uci.cursor() +local fs = require "luci.openclash" +local sys = require "luci.sys" +local sid = arg[1] +local uuid = luci.sys.exec("cat /proc/sys/kernel/random/uuid") + +font_red = [[]] +font_off = [[]] +bold_on = [[]] +bold_off = [[]] + +function IsYamlFile(e) + e=e or"" + local e=string.lower(string.sub(e,-5,-1)) + return e == ".yaml" +end +function IsYmlFile(e) + e=e or"" + local e=string.lower(string.sub(e,-4,-1)) + return e == ".yml" +end + +local encrypt_methods_ss = { + + -- stream + "rc4-md5", + "aes-128-cfb", + "aes-192-cfb", + "aes-256-cfb", + "aes-128-ctr", + "aes-192-ctr", + "aes-256-ctr", + "aes-128-gcm", + "aes-192-gcm", + "aes-256-gcm", + "chacha20-ietf", + "xchacha20", + "chacha20-ietf-poly1305", + "xchacha20-ietf-poly1305", +} + +local securitys = { + "auto", + "none", + "aes-128-gcm", + "chacha20-poly1305" +} + +m = Map(openclash, translate("Edit Server")) +m.pageaction = false +m.redirect = luci.dispatcher.build_url("admin/services/openclash/servers") + +if m.uci:get(openclash, sid) ~= "servers" then + luci.http.redirect(m.redirect) + return +end + +-- [[ Servers Setting ]] -- +s = m:section(NamedSection, sid, "servers") +s.anonymous = true +s.addremove = false + +o = s:option(ListValue, "config", translate("Config File")) +o:value("all", translate("Use For All Config File")) +local e,a={} +for t,f in ipairs(fs.glob("/etc/openclash/config/*"))do + a=fs.stat(f) + if a then + e[t]={} + e[t].name=fs.basename(f) + if IsYamlFile(e[t].name) or IsYmlFile(e[t].name) then + o:value(e[t].name) + end + end +end + +o = s:option(ListValue, "type", translate("Server Node Type")) +o:value("ss", translate("Shadowsocks")) +o:value("vmess", translate("Vmess")) +o:value("snell", translate("Snell")) +o:value("socks5", translate("Socks5")) +o:value("http", translate("HTTP(S)")) +o.description = translate("Using incorrect encryption mothod may causes service fail to start") + +o = s:option(Value, "name", translate("Server Alias")) +o.rmempty = false + +o = s:option(Value, "server", translate("Server Address")) +o.datatype = "host" +o.rmempty = false + +o = s:option(Value, "port", translate("Server Port")) +o.datatype = "port" +o.rmempty = false + +o = s:option(Value, "password", translate("Password")) +o.password = true +o.rmempty = false +o:depends("type", "ss") + +o = s:option(Value, "psk", translate("Psk")) +o.rmempty = false +o:depends("type", "snell") + +o = s:option(ListValue, "cipher", translate("Encrypt Method")) +for _, v in ipairs(encrypt_methods_ss) do o:value(v) end +o.rmempty = true +o:depends("type", "ss") + +o = s:option(ListValue, "securitys", translate("Encrypt Method")) +for _, v in ipairs(securitys) do o:value(v) end +o.rmempty = true +o:depends("type", "vmess") + +o = s:option(ListValue, "udp", translate("UDP Enable")) +o.rmempty = true +o.default = "false" +o:value("true") +o:value("false") +o:depends("type", "ss") + +o = s:option(ListValue, "obfs", translate("obfs-mode")) +o.rmempty = true +o.default = "none" +o:value("none") +o:value("tls") +o:value("http") +o:value("websocket", translate("websocket (ws)")) +o:depends("type", "ss") + +o = s:option(ListValue, "obfs_snell", translate("obfs-mode")) +o.rmempty = true +o.default = "none" +o:value("none") +o:value("tls") +o:value("http") +o:depends("type", "snell") + +o = s:option(ListValue, "obfs_vmess", translate("obfs-mode")) +o.rmempty = true +o.default = "none" +o:value("none") +o:value("websocket", translate("websocket (ws)")) +o:depends("type", "vmess") + +o = s:option(Value, "host", translate("obfs-hosts")) +o.datatype = "host" +o.rmempty = true +o:depends("obfs", "tls") +o:depends("obfs", "http") +o:depends("obfs", "websocket") +o:depends("obfs_snell", "tls") +o:depends("obfs_snell", "http") + +o = s:option(Value, "custom", translate("ws-headers")) +o.rmempty = true +o:depends("obfs", "websocket") +o:depends("obfs_vmess", "websocket") + +-- [[ WS部分 ]]-- + +-- WS路径 +o = s:option(Value, "path", translate("ws-path")) +o.rmempty = true +o:depends("obfs", "websocket") +o:depends("obfs_vmess", "websocket") + +-- AlterId +o = s:option(Value, "alterId", translate("AlterId")) +o.datatype = "port" +o.default = 16 +o.rmempty = true +o:depends("type", "vmess") + +-- VmessId +o = s:option(Value, "uuid", translate("VmessId (UUID)")) +o.rmempty = true +o.default = uuid +o:depends("type", "vmess") + +-- 验证用户名 +o = s:option(Value, "auth_name", translate("Auth Username")) +o:depends("type", "socks5") +o:depends("type", "http") +o.rmempty = true + +-- 验证密码 +o = s:option(Value, "auth_pass", translate("Auth Password")) +o:depends("type", "socks5") +o:depends("type", "http") +o.rmempty = true + +-- [[ MUX ]]-- +o = s:option(ListValue, "mux", translate("mux")) +o.rmempty = true +o.default = "false" +o:value("true") +o:value("false") +o:depends("obfs", "websocket") + +-- [[ skip-cert-verify ]]-- +o = s:option(ListValue, "skip_cert_verify", translate("Skip-Cert-Verify")) +o.rmempty = true +o.default = "false" +o:value("true") +o:value("false") +o:depends("obfs", "websocket") +o:depends("obfs_vmess", "websocket") +o:depends("type", "socks5") +o:depends("type", "http") + +-- [[ TLS ]]-- +o = s:option(ListValue, "tls", translate("TLS")) +o.rmempty = true +o.default = "false" +o:value("true") +o:value("false") +o:depends("obfs", "websocket") +o:depends("obfs_vmess", "websocket") +o:depends("type", "socks5") +o:depends("type", "http") + +o = s:option(DynamicList, "groups", translate("Proxy Group")) +o.description = font_red..bold_on..translate("No Need Set when Config Create, The added Proxy Groups Must Exist")..bold_off..font_off +o.rmempty = true +m.uci:foreach("openclash", "groups", + function(s) + o:value(s.name) + end) + +local t = { + {Commit, Back} +} +a = m:section(Table, t) + +o = a:option(Button,"Commit") +o.inputtitle = translate("Commit Configurations") +o.inputstyle = "apply" +o.write = function() + m.uci:commit(openclash) + sys.call("sh /usr/share/openclash/cfg_servers_address_fake_block.sh &") + luci.http.redirect(m.redirect) +end + +o = a:option(Button,"Back") +o.inputtitle = translate("Back Configurations") +o.inputstyle = "reset" +o.write = function() + m.uci:revert(openclash) + luci.http.redirect(m.redirect) +end + +return m diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/servers.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/servers.lua new file mode 100644 index 0000000000..d2abf8c368 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/servers.lua @@ -0,0 +1,245 @@ + +local m, s, o +local openclash = "openclash" +local uci = luci.model.uci.cursor() + +font_red = [[]] +font_off = [[]] +bold_on = [[]] +bold_off = [[]] + +m = Map(openclash, translate("Servers manage and Config create")) +m.pageaction = false + +s = m:section(TypedSection, "openclash") +s.anonymous = true + +o = s:option(ListValue, "create_config", translate("Create Config")) +o.description = font_red .. bold_on .. translate("Create Config By One-Click Only Need Proxys") .. bold_off .. font_off +o:value("0", translate("Disable")) +o:value("1", translate("Enable")) +o.default=0 + +o = s:option(ListValue, "rule_sources", translate("Choose Template For Create Config")) +o.description = translate("Use Other Rules To Create Config") +o:depends("create_config", 1) +o:value("lhie1", translate("lhie1 Rules")) +o:value("ConnersHua", translate("ConnersHua Rules")) +o:value("ConnersHua_return", translate("ConnersHua Return Rules")) + +o = s:option(ListValue, "servers_update", translate("Keep Settings")) +o.description = font_red .. bold_on .. translate("Only Update Servers Below When Subscription") .. bold_off .. font_off +o:value("0", translate("Disable")) +o:value("1", translate("Enable")) +o.default=0 + +o = s:option(DynamicList, "new_servers_group", translate("New Servers Group")) +o.description = translate("Set The New Subscribe Server's Default Proxy Groups") +o.rmempty = true +o:depends("servers_update", 1) +m.uci:foreach("openclash", "groups", + function(s) + o:value(s.name) + end) + +-- [[ Groups Manage ]]-- +s = m:section(TypedSection, "groups", translate("Proxy Groups(No Need Set when Config Create)")) +s.anonymous = true +s.addremove = true +s.sortable = true +s.template = "cbi/tblsection" +s.extedit = luci.dispatcher.build_url("admin/services/openclash/groups-config/%s") +function s.create(...) + local sid = TypedSection.create(...) + if sid then + luci.http.redirect(s.extedit % sid) + return + end +end + +o = s:option(DummyValue, "config", translate("Config File")) +function o.cfgvalue(...) + return Value.cfgvalue(...) or translate("all") +end + +o = s:option(DummyValue, "type", translate("Group Type")) +function o.cfgvalue(...) + return Value.cfgvalue(...) or translate("None") +end + +o = s:option(DummyValue, "name", translate("Group Name")) +function o.cfgvalue(...) + return Value.cfgvalue(...) or translate("None") +end + +-- [[ Proxy-Provider Manage ]]-- +s = m:section(TypedSection, "proxy-provider", translate("Proxy-Provider")) +s.anonymous = true +s.addremove = true +s.sortable = true +s.template = "cbi/tblsection" +s.extedit = luci.dispatcher.build_url("admin/services/openclash/proxy-provider-config/%s") +function s.create(...) + local sid = TypedSection.create(...) + if sid then + luci.http.redirect(s.extedit % sid) + return + end +end + +o = s:option(Flag, "enabled", translate("Enable")) +o.rmempty = false +o.default = o.enabled +o.cfgvalue = function(...) + return Flag.cfgvalue(...) or "1" +end + +o = s:option(DummyValue, "config", translate("Config File")) +function o.cfgvalue(...) + return Value.cfgvalue(...) or translate("all") +end + +o = s:option(DummyValue, "type", translate("Provider Type")) +function o.cfgvalue(...) + return Value.cfgvalue(...) or translate("None") +end + +o = s:option(DummyValue, "name", translate("Provider Name")) +function o.cfgvalue(...) + return Value.cfgvalue(...) or translate("None") +end + +-- [[ Servers Manage ]]-- +s = m:section(TypedSection, "servers", translate("Proxys")) +s.anonymous = true +s.addremove = true +s.sortable = true +s.template = "cbi/tblsection" +s.extedit = luci.dispatcher.build_url("admin/services/openclash/servers-config/%s") +function s.create(...) + local sid = TypedSection.create(...) + if sid then + luci.http.redirect(s.extedit % sid) + return + end +end + +---- enable flag +o = s:option(Flag, "enabled", translate("Enable")) +o.rmempty = false +o.default = o.enabled +o.cfgvalue = function(...) + return Flag.cfgvalue(...) or "1" +end + +o = s:option(DummyValue, "config", translate("Config File")) +function o.cfgvalue(...) + return Value.cfgvalue(...) or translate("all") +end + +o = s:option(DummyValue, "type", translate("Type")) +function o.cfgvalue(...) + return Value.cfgvalue(...) or translate("None") +end + +o = s:option(DummyValue, "name", translate("Server Alias")) +function o.cfgvalue(...) + return Value.cfgvalue(...) or translate("None") +end + +o = s:option(DummyValue, "server", translate("Server Address")) +function o.cfgvalue(...) + return Value.cfgvalue(...) or translate("None") +end + +o = s:option(DummyValue, "port", translate("Server Port")) +function o.cfgvalue(...) + return Value.cfgvalue(...) or translate("None") +end + +o = s:option(DummyValue,"server",translate("Ping Latency")) +o.template="openclash/ping" +o.width="10%" + +local tt = { + {Delete_Unused_Servers, Delete_Severs, Delete_Proxy_Provider, Delete_Groups} +} + +b = m:section(Table, tt) + +o = b:option(Button,"Delete_Unused_Servers") +o.inputtitle = translate("Delete Unused Servers") +o.inputstyle = "reset" +o.write = function() + m.uci:set("openclash", "config", "enable", 0) + m.uci:commit("openclash") + luci.sys.call("sh /usr/share/openclash/cfg_unused_servers_del.sh 2>/dev/null") + luci.http.redirect(luci.dispatcher.build_url("admin", "services", "openclash", "servers")) +end + +o = b:option(Button,"Delete_Severs") +o.inputtitle = translate("Delete Severs") +o.inputstyle = "reset" +o.write = function() + m.uci:set("openclash", "config", "enable", 0) + m.uci:delete_all("openclash", "servers", function(s) return true end) + m.uci:commit("openclash") + luci.http.redirect(luci.dispatcher.build_url("admin", "services", "openclash", "servers")) +end + +o = b:option(Button,"Delete_Proxy_Provider") +o.inputtitle = translate("Delete Proxy Provider") +o.inputstyle = "reset" +o.write = function() + m.uci:set("openclash", "config", "enable", 0) + m.uci:delete_all("openclash", "proxy-provider", function(s) return true end) + m.uci:commit("openclash") + luci.http.redirect(luci.dispatcher.build_url("admin", "services", "openclash", "servers")) +end + +o = b:option(Button,"Delete_Groups") +o.inputtitle = translate("Delete Groups") +o.inputstyle = "reset" +o.write = function() + m.uci:set("openclash", "config", "enable", 0) + m.uci:delete_all("openclash", "groups", function(s) return true end) + m.uci:commit("openclash") + luci.http.redirect(luci.dispatcher.build_url("admin", "services", "openclash", "servers")) +end + +local t = { + {Load_Config, Commit, Apply} +} + +a = m:section(Table, t) + +o = a:option(Button,"Load_Config") +o.inputtitle = translate("Load Config") +o.inputstyle = "apply" +o.write = function() + m.uci:set("openclash", "config", "enable", 0) + m.uci:commit("openclash") + luci.sys.call("/usr/share/openclash/yml_groups_get.sh 2>/dev/null &") + luci.http.redirect(luci.dispatcher.build_url("admin", "services", "openclash")) +end + +o = a:option(Button, "Commit") +o.inputtitle = translate("Commit Configurations") +o.inputstyle = "apply" +o.write = function() + m.uci:set("openclash", "config", "enable", 0) + m.uci:commit("openclash") +end + +o = a:option(Button, "Apply") +o.inputtitle = translate("Apply Configurations") +o.inputstyle = "apply" +o.write = function() + m.uci:set("openclash", "config", "enable", 0) + m.uci:commit("openclash") + luci.sys.call("/usr/share/openclash/yml_groups_set.sh >/dev/null 2>&1 &") + luci.http.redirect(luci.dispatcher.build_url("admin", "services", "openclash")) +end + +m:append(Template("openclash/server_list")) +return m diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/settings.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/settings.lua new file mode 100644 index 0000000000..981dd42bf6 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/settings.lua @@ -0,0 +1,478 @@ + +local NXFS = require "nixio.fs" +local SYS = require "luci.sys" +local HTTP = require "luci.http" +local DISP = require "luci.dispatcher" +local UTIL = require "luci.util" +local uci = require "luci.model.uci".cursor() + +font_green = [[]] +font_red = [[]] +font_off = [[]] +bold_on = [[]] +bold_off = [[]] + +m = Map("openclash", translate("Global Settings(Will Modify The Config File Or Subscribe According To The Settings On This Page)")) +m.pageaction = false +s = m:section(TypedSection, "openclash") +s.anonymous = true + +s:tab("settings", translate("General Settings")) +s:tab("dns", translate("DNS Setting")) +s:tab("rules", translate("Rules Setting")) +s:tab("dashboard", translate("Dashboard Settings")) +s:tab("rules_update", translate("Rules Update")) +s:tab("geo_update", translate("GEOIP Update")) +s:tab("version_update", translate("Version Update")) + +---- General Settings +local cpu_model=SYS.exec("opkg status libc 2>/dev/null |grep 'Architecture' |awk -F ': ' '{print $2}' 2>/dev/null") +o = s:taboption("settings", ListValue, "core_version", font_red..bold_on..translate("Chose to Download")..bold_off..font_off) +o.description = translate("CPU Model")..': '..font_green..bold_on..cpu_model..bold_off..font_off..', '..translate("Select Based On Your CPU Model For Core Update, Wrong Version Will Not Work") +o:value("linux-386") +o:value("linux-amd64", translate("linux-amd64(x86-64)")) +o:value("linux-armv5") +o:value("linux-armv6") +o:value("linux-armv7") +o:value("linux-armv8") +o:value("linux-mips-hardfloat") +o:value("linux-mips-softfloat") +o:value("linux-mips64") +o:value("linux-mips64le") +o:value("linux-mipsle-softfloat") +o:value("linux-mipsle-hardfloat") +o:value("0", translate("Not Set")) +o.default=0 + +o = s:taboption("settings", ListValue, "en_mode", font_red..bold_on..translate("Select Mode")..bold_off..font_off) +o.description = translate("Select Mode For OpenClash Work, Network Error Try Flush DNS Cache") +o:value("redir-host", translate("redir-host")) +o:value("fake-ip", translate("fake-ip")) +o:value("fake-ip-tun", translate("fake-ip(tun mode)")) +o:value("redir-host-vpn", translate("redir-host-vpn(game mode)")) +o:value("fake-ip-vpn", translate("fake-ip-vpn(game mode)")) +o.default = "redir-host" + +o = s:taboption("settings", ListValue, "proxy_mode", font_red..bold_on..translate("Proxy Mode")..bold_off..font_off) +o.description = translate("Select Proxy Mode") +o:value("Rule", translate("Rule Proxy Mode")) +o:value("Global", translate("Global Proxy Mode")) +o:value("Direct", translate("Direct Proxy Mode")) +o.default = "Rule" + +o = s:taboption("settings", ListValue, "log_level", translate("Log Level")) +o.description = translate("Select Core's Log Level") +o:value("info", translate("Info Mode")) +o:value("warning", translate("Warning Mode")) +o:value("error", translate("Error Mode")) +o:value("debug", translate("Debug Mode")) +o:value("silent", translate("Silent Mode")) +o.default = "silent" + +o = s:taboption("settings", ListValue, "intranet_allowed", translate("Only intranet allowed")) +o.description = translate("When enabled, the control panel and the connection broker port will not be accessible from the public network") +o:value("0", translate("Disable")) +o:value("1", translate("Enable")) +o.default = 0 + +o = s:taboption("settings", Value, "proxy_port") +o.title = translate("Redir Port") +o.default = 7892 +o.datatype = "port" +o.rmempty = false +o.description = translate("Please Make Sure Ports Available") + +o = s:taboption("settings", Value, "http_port") +o.title = translate("HTTP(S) Port") +o.default = 7890 +o.datatype = "port" +o.rmempty = false +o.description = translate("Please Make Sure Ports Available") + +o = s:taboption("settings", Value, "socks_port") +o.title = translate("SOCKS5 Port") +o.default = 7891 +o.datatype = "port" +o.rmempty = false +o.description = translate("Please Make Sure Ports Available") + +---- DNS Settings +o = s:taboption("dns", ListValue, "enable_redirect_dns", font_red..bold_on..translate("Redirect Local DNS Setting")..bold_off..font_off) +o.description = translate("Set Local DNS Redirect") +o:value("0", translate("Disable")) +o:value("1", translate("Enable")) +o.default = 1 + +o = s:taboption("dns", ListValue, "enable_custom_dns", font_red..bold_on..translate("Custom DNS Setting")..bold_off..font_off) +o.description = font_red..bold_on..translate("Set OpenClash Upstream DNS Resolve Server")..bold_off..font_off +o:value("0", translate("Disable")) +o:value("1", translate("Enable")) +o.default = 0 + +o = s:taboption("dns", ListValue, "ipv6_enable", translate("Enable ipv6 Resolve")) +o.description = font_red..bold_on..translate("Force Enable to Resolve ipv6 DNS Requests")..bold_off..font_off +o:value("0", translate("Disable")) +o:value("1", translate("Enable")) +o.default=0 + +o = s:taboption("dns", ListValue, "disable_masq_cache", translate("Disable Dnsmasq's DNS Cache")) +o.description = translate("Recommended Enabled For Avoiding Some Connection Errors")..font_red..bold_on..translate("(Maybe Incompatible For Your Firmware)")..bold_off..font_off +o:value("0", translate("Disable")) +o:value("1", translate("Enable")) +o.default=0 + +o = s:taboption("dns", ListValue, "dns_advanced_setting", translate("Advanced Setting")) +o.description = translate("DNS Advanced Settings")..font_red..bold_on..translate("(Please Don't Modify it at Will)")..bold_off..font_off +o:value("0", translate("Disable")) +o:value("1", translate("Enable")) +o.default=0 + +o = s:taboption("dns", Value, "direct_dns", translate("Specify DNS Server")) +o.description = translate("Specify DNS Server For List, Only One IP Server Address Support") +o.default="114.114.114.114" +o.placeholder = translate("114.114.114.114 or 127.0.0.1#5300") +o:depends("dns_advanced_setting", "1") + +o = s:taboption("dns", Button, translate("Fake-IP Block List Update")) +o.title = translate("Fake-IP Block List Update") +o:depends("dns_advanced_setting", "1") +o.inputtitle = translate("Check And Update") +o.inputstyle = "reload" +o.write = function() + m.uci:set("openclash", "config", "enable", 1) + m.uci:commit("openclash") + SYS.call("/usr/share/openclash/openclash_fake_block.sh >/dev/null 2>&1 && /etc/init.d/openclash restart >/dev/null 2>&1 &") + HTTP.redirect(DISP.build_url("admin", "services", "openclash")) +end + +custom_fake_black = s:taboption("dns", Value, "custom_fake_black") +custom_fake_black.template = "cbi/tvalue" +custom_fake_black.description = translate("Domain Names In The List Do Not Return Fake-IP, One rule per line") +custom_fake_black.rows = 20 +custom_fake_black.wrap = "off" +custom_fake_black:depends("dns_advanced_setting", "1") + +function custom_fake_black.cfgvalue(self, section) + return NXFS.readfile("/etc/openclash/custom/openclash_custom_fake_black.conf") or "" +end +function custom_fake_black.write(self, section, value) + + if value then + value = value:gsub("\r\n?", "\n") + NXFS.writefile("/etc/openclash/custom/openclash_custom_fake_black.conf", value) + end +end + +---- Rules Settings +o = s:taboption("rules", ListValue, "enable_custom_clash_rules", font_red..bold_on..translate("Custom Clash Rules")..bold_off..font_off) +o.description = translate("Use Custom Rules") +o:value("0", translate("Disable")) +o:value("1", translate("Enable")) +o.default = 0 + +o = s:taboption("rules", ListValue, "rule_source", translate("Enable Other Rules")) +o.description = translate("Use Other Rules") +o:value("0", translate("Disable Other Rules")) +o:value("lhie1", translate("lhie1 Rules")) +o:value("ConnersHua", translate("ConnersHua Rules")) +o:value("ConnersHua_return", translate("ConnersHua Return Rules")) + +SYS.call("/usr/share/openclash/yml_groups_name_get.sh 2>/dev/null") +file = io.open("/tmp/Proxy_Group", "r"); + +o = s:taboption("rules", ListValue, "GlobalTV", translate("GlobalTV")) +o:depends("rule_source", "lhie1") +o:depends("rule_source", "ConnersHua") + for l in file:lines() do + o:value(l) + end + file:seek("set") +o = s:taboption("rules", ListValue, "AsianTV", translate("AsianTV")) +o:depends("rule_source", "lhie1") +o:depends("rule_source", "ConnersHua") + for l in file:lines() do + o:value(l) + end + file:seek("set") +o = s:taboption("rules", ListValue, "Proxy", translate("Proxy")) +o:depends("rule_source", "lhie1") +o:depends("rule_source", "ConnersHua") +o:depends("rule_source", "ConnersHua_return") + for l in file:lines() do + o:value(l) + end + file:seek("set") +o = s:taboption("rules", ListValue, "Apple", translate("Apple")) +o:depends("rule_source", "lhie1") +o:depends("rule_source", "ConnersHua") + for l in file:lines() do + o:value(l) + end + file:seek("set") +o = s:taboption("rules", ListValue, "Netease_Music", translate("Netease Music")) +o:depends("rule_source", "lhie1") + for l in file:lines() do + o:value(l) + end + file:seek("set") +o = s:taboption("rules", ListValue, "Speedtest", translate("Speedtest")) +o:depends("rule_source", "lhie1") + for l in file:lines() do + o:value(l) + end + file:seek("set") +o = s:taboption("rules", ListValue, "Telegram", translate("Telegram")) +o:depends("rule_source", "lhie1") + for l in file:lines() do + o:value(l) + end + file:seek("set") +o = s:taboption("rules", ListValue, "AdBlock", translate("AdBlock")) +o:depends("rule_source", "lhie1") +o:depends("rule_source", "ConnersHua") + for l in file:lines() do + o:value(l) + end + file:seek("set") +o = s:taboption("rules", ListValue, "Domestic", translate("Domestic")) +o:depends("rule_source", "lhie1") +o:depends("rule_source", "ConnersHua") + for l in file:lines() do + o:value(l) + end + file:seek("set") +o = s:taboption("rules", ListValue, "Others", translate("Others")) +o:depends("rule_source", "lhie1") +o:depends("rule_source", "ConnersHua") +o:depends("rule_source", "ConnersHua_return") +o.description = translate("Choose Proxy Group, Base On Your Servers Group in config.yaml") + for l in file:lines() do + o:value(l) + end + file:close() + +---- update Settings +o = s:taboption("rules_update", ListValue, "other_rule_auto_update", translate("Auto Update")) +o.description = font_red..bold_on..translate("Auto Update Other Rules")..bold_off..font_off +o:value("0", translate("Disable")) +o:value("1", translate("Enable")) +o.default=0 + +o = s:taboption("rules_update", ListValue, "other_rule_update_week_time", translate("Update Time (Every Week)")) +o:value("*", translate("Every Day")) +o:value("1", translate("Every Monday")) +o:value("2", translate("Every Tuesday")) +o:value("3", translate("Every Wednesday")) +o:value("4", translate("Every Thursday")) +o:value("5", translate("Every Friday")) +o:value("6", translate("Every Saturday")) +o:value("0", translate("Every Sunday")) +o.default=1 + +o = s:taboption("rules_update", ListValue, "other_rule_update_day_time", translate("Update time (every day)")) +for t = 0,23 do +o:value(t, t..":00") +end +o.default=0 + +o = s:taboption("rules_update", Button, translate("Other Rules Update")) +o.title = translate("Update Other Rules") +o.inputtitle = translate("Check And Update") +o.description = translate("Other Rules Update(Only in Use)") +o.inputstyle = "reload" +o.write = function() + m.uci:set("openclash", "config", "enable", 1) + m.uci:commit("openclash") + SYS.call("/usr/share/openclash/openclash_rule.sh >/dev/null 2>&1 &") + HTTP.redirect(DISP.build_url("admin", "services", "openclash")) +end + +o = s:taboption("geo_update", ListValue, "geo_auto_update", translate("Auto Update")) +o.description = translate("Auto Update GEOIP Database") +o:value("0", translate("Disable")) +o:value("1", translate("Enable")) +o.default=0 + +o = s:taboption("geo_update", ListValue, "geo_update_week_time", translate("Update Time (Every Week)")) +o:value("*", translate("Every Day")) +o:value("1", translate("Every Monday")) +o:value("2", translate("Every Tuesday")) +o:value("3", translate("Every Wednesday")) +o:value("4", translate("Every Thursday")) +o:value("5", translate("Every Friday")) +o:value("6", translate("Every Saturday")) +o:value("0", translate("Every Sunday")) +o.default=1 + +o = s:taboption("geo_update", ListValue, "geo_update_day_time", translate("Update time (every day)")) +for t = 0,23 do +o:value(t, t..":00") +end +o.default=0 + +o = s:taboption("geo_update", Button, translate("GEOIP Update")) +o.title = translate("Update GEOIP Database") +o.inputtitle = translate("Check And Update") +o.inputstyle = "reload" +o.write = function() + m.uci:set("openclash", "config", "enable", 1) + m.uci:commit("openclash") + SYS.call("/usr/share/openclash/openclash_ipdb.sh >/dev/null 2>&1 &") + HTTP.redirect(DISP.build_url("admin", "services", "openclash")) +end + +---- Dashboard Settings +local lan_ip=SYS.exec("uci get network.lan.ipaddr 2>/dev/null |awk -F '/' '{print $1}' 2>/dev/null |tr -d '\n'") +local cn_port=SYS.exec("uci get openclash.config.cn_port 2>/dev/null |tr -d '\n'") +o = s:taboption("dashboard", Value, "cn_port") +o.title = translate("Dashboard Port") +o.default = 9090 +o.datatype = "port" +o.rmempty = false +o.description = translate("Dashboard Address Example:").." "..font_green..bold_on..lan_ip.."/openclash、"..lan_ip..':'..cn_port..'/ui'..bold_off..font_off + +o = s:taboption("dashboard", Value, "dashboard_password") +o.title = translate("Dashboard Secret") +o.rmempty = true +o.description = translate("Set Dashboard Secret") + +---- version update +core_update = s:taboption("version_update", DummyValue, "", nil) +core_update.template = "openclash/update" + +-- [[ Edit Server ]] -- +s = m:section(TypedSection, "dns_servers", translate("Add Custom DNS Servers")..translate("(Take Effect After Choose Above)")) +s.anonymous = true +s.addremove = true +s.sortable = false +s.template = "cbi/tblsection" +s.rmempty = false + +---- enable flag +o = s:option(Flag, "enabled", translate("Enable"), font_red..bold_on..translate("(Enable or Disable)")..bold_off..font_off) +o.rmempty = false +o.default = o.enabled +o.cfgvalue = function(...) + return Flag.cfgvalue(...) or "1" +end + +---- group +o = s:option(ListValue, "group", translate("DNS Server Group")) +o.description = font_red..bold_on..translate("(NameServer Group Must Be Set)")..bold_off..font_off +o:value("nameserver", translate("NameServer")) +o:value("fallback", translate("FallBack")) +o.default = "nameserver" +o.rempty = false + +---- IP address +o = s:option(Value, "ip", translate("DNS Server Address")) +o.description = font_red..bold_on..translate("(Do Not Add Type Ahead)")..bold_off..font_off +o.placeholder = translate("Not Null") +o.datatype = "or(host, string)" +o.rmempty = true + +---- port +o = s:option(Value, "port", translate("DNS Server Port")) +o.description = font_red..bold_on..translate("(Require When Use Non-Standard Port)")..bold_off..font_off +o.datatype = "port" +o.rempty = true + +---- type +o = s:option(ListValue, "type", translate("DNS Server Type")) +o.description = font_red..bold_on..translate("(Communication protocol)")..bold_off..font_off +o:value("udp", translate("UDP")) +o:value("tcp", translate("TCP")) +o:value("tls", translate("TLS")) +o:value("https", translate("HTTPS")) +o.default = "udp" +o.rempty = false + +-- [[ Edit Authentication ]] -- +s = m:section(TypedSection, "authentication", translate("Set Authentication of SOCKS5/HTTP(S)")) +s.anonymous = true +s.addremove = true +s.sortable = false +s.template = "cbi/tblsection" +s.rmempty = false + +---- enable flag +o = s:option(Flag, "enabled", translate("Enable")) +o.rmempty = false +o.default = o.enabled +o.cfgvalue = function(...) + return Flag.cfgvalue(...) or "1" +end + +---- username +o = s:option(Value, "username", translate("Username")) +o.placeholder = translate("Not Null") +o.rempty = true + +---- password +o = s:option(Value, "password", translate("Password")) +o.placeholder = translate("Not Null") +o.rmempty = true + +s = m:section(TypedSection, "openclash", translate("Set Custom Rules")) +s.anonymous = true + +custom_rules = s:option(Value, "custom_rules") +custom_rules.template = "cbi/tvalue" +custom_rules.description = translate("Custom Rules Here, For More Go Github:https://github.com/Dreamacro/clash/blob/master/README.md, IP To CIDR: http://ip2cidr.com") +custom_rules.rows = 20 +custom_rules.wrap = "off" + +function custom_rules.cfgvalue(self, section) + return NXFS.readfile("/etc/openclash/custom/openclash_custom_rules.list") or "" +end +function custom_rules.write(self, section, value) + if value then + value = value:gsub("\r\n?", "\n") + NXFS.writefile("/etc/openclash/custom/openclash_custom_rules.list", value) + end +end + +s = m:section(TypedSection, "openclash", translate("Set Custom Hosts, Only Work with Redir-Host Mode")) +s.anonymous = true + +custom_hosts = s:option(Value, "custom_hosts") +custom_hosts.template = "cbi/tvalue" +custom_hosts.description = translate("Custom Hosts Here, For More Go Github:https://github.com/Dreamacro/clash/blob/master/README.md") +custom_hosts.rows = 20 +custom_hosts.wrap = "off" + +function custom_hosts.cfgvalue(self, section) + return NXFS.readfile("/etc/openclash/custom/openclash_custom_hosts.list") or "" +end +function custom_hosts.write(self, section, value) + if value then + value = value:gsub("\r\n?", "\n") + NXFS.writefile("/etc/openclash/custom/openclash_custom_hosts.list", value) + end +end + +local t = { + {Commit, Apply} +} + +a = m:section(Table, t) + +o = a:option(Button, "Commit") +o.inputtitle = translate("Commit Configurations") +o.inputstyle = "apply" +o.write = function() + m.uci:commit("openclash") +end + +o = a:option(Button, "Apply") +o.inputtitle = translate("Apply Configurations") +o.inputstyle = "apply" +o.write = function() + m.uci:set("openclash", "config", "enable", 1) + m.uci:commit("openclash") + SYS.call("/etc/init.d/openclash restart >/dev/null 2>&1 &") + HTTP.redirect(DISP.build_url("admin", "services", "openclash")) +end +return m + + diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/openclash.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/openclash.lua new file mode 100644 index 0000000000..c9bd2c4c4e --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/openclash.lua @@ -0,0 +1,244 @@ +--[[ +LuCI - Filesystem tools + +Description: +A module offering often needed filesystem manipulation functions + +FileId: +$Id$ + +License: +Copyright 2008 Steven Barth + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +]]-- + +local io = require "io" +local os = require "os" +local ltn12 = require "luci.ltn12" +local fs = require "nixio.fs" +local nutil = require "nixio.util" + +local type = type + +--- LuCI filesystem library. +module "luci.openclash" + +--- Test for file access permission on given path. +-- @class function +-- @name access +-- @param str String value containing the path +-- @return Number containing the return code, 0 on sucess or nil on error +-- @return String containing the error description (if any) +-- @return Number containing the os specific errno (if any) +access = fs.access + +--- Evaluate given shell glob pattern and return a table containing all matching +-- file and directory entries. +-- @class function +-- @name glob +-- @param filename String containing the path of the file to read +-- @return Table containing file and directory entries or nil if no matches +-- @return String containing the error description (if no matches) +-- @return Number containing the os specific errno (if no matches) +function glob(...) + local iter, code, msg = fs.glob(...) + if iter then + return nutil.consume(iter) + else + return nil, code, msg + end +end + +--- Checks wheather the given path exists and points to a regular file. +-- @param filename String containing the path of the file to test +-- @return Boolean indicating wheather given path points to regular file +function isfile(filename) + return fs.stat(filename, "type") == "reg" +end + +--- Checks wheather the given path exists and points to a directory. +-- @param dirname String containing the path of the directory to test +-- @return Boolean indicating wheather given path points to directory +function isdirectory(dirname) + return fs.stat(dirname, "type") == "dir" +end + +--- Read the whole content of the given file into memory. +-- @param filename String containing the path of the file to read +-- @return String containing the file contents or nil on error +-- @return String containing the error message on error +readfile = fs.readfile + +--- Write the contents of given string to given file. +-- @param filename String containing the path of the file to read +-- @param data String containing the data to write +-- @return Boolean containing true on success or nil on error +-- @return String containing the error message on error +writefile = fs.writefile + +--- Copies a file. +-- @param source Source file +-- @param dest Destination +-- @return Boolean containing true on success or nil on error +copy = fs.datacopy + +--- Renames a file. +-- @param source Source file +-- @param dest Destination +-- @return Boolean containing true on success or nil on error +rename = fs.move + +--- Get the last modification time of given file path in Unix epoch format. +-- @param path String containing the path of the file or directory to read +-- @return Number containing the epoch time or nil on error +-- @return String containing the error description (if any) +-- @return Number containing the os specific errno (if any) +function mtime(path) + return fs.stat(path, "mtime") +end + +--- Set the last modification time of given file path in Unix epoch format. +-- @param path String containing the path of the file or directory to read +-- @param mtime Last modification timestamp +-- @param atime Last accessed timestamp +-- @return 0 in case of success nil on error +-- @return String containing the error description (if any) +-- @return Number containing the os specific errno (if any) +function utime(path, mtime, atime) + return fs.utimes(path, atime, mtime) +end + +--- Return the last element - usually the filename - from the given path with +-- the directory component stripped. +-- @class function +-- @name basename +-- @param path String containing the path to strip +-- @return String containing the base name of given path +-- @see dirname +basename = fs.basename + +--- Return the directory component of the given path with the last element +-- stripped of. +-- @class function +-- @name dirname +-- @param path String containing the path to strip +-- @return String containing the directory component of given path +-- @see basename +dirname = fs.dirname + +--- Return a table containing all entries of the specified directory. +-- @class function +-- @name dir +-- @param path String containing the path of the directory to scan +-- @return Table containing file and directory entries or nil on error +-- @return String containing the error description on error +-- @return Number containing the os specific errno on error +function dir(...) + local iter, code, msg = fs.dir(...) + if iter then + local t = nutil.consume(iter) + t[#t+1] = "." + t[#t+1] = ".." + return t + else + return nil, code, msg + end +end + +--- Create a new directory, recursively on demand. +-- @param path String with the name or path of the directory to create +-- @param recursive Create multiple directory levels (optional, default is true) +-- @return Number with the return code, 0 on sucess or nil on error +-- @return String containing the error description on error +-- @return Number containing the os specific errno on error +function mkdir(path, recursive) + return recursive and fs.mkdirr(path) or fs.mkdir(path) +end + +--- Remove the given empty directory. +-- @class function +-- @name rmdir +-- @param path String containing the path of the directory to remove +-- @return Number with the return code, 0 on sucess or nil on error +-- @return String containing the error description on error +-- @return Number containing the os specific errno on error +rmdir = fs.rmdir + +local stat_tr = { + reg = "regular", + dir = "directory", + lnk = "link", + chr = "character device", + blk = "block device", + fifo = "fifo", + sock = "socket" +} +--- Get information about given file or directory. +-- @class function +-- @name stat +-- @param path String containing the path of the directory to query +-- @return Table containing file or directory properties or nil on error +-- @return String containing the error description on error +-- @return Number containing the os specific errno on error +function stat(path, key) + local data, code, msg = fs.stat(path) + if data then + data.mode = data.modestr + data.type = stat_tr[data.type] or "?" + end + return key and data and data[key] or data, code, msg +end + +--- Set permissions on given file or directory. +-- @class function +-- @name chmod +-- @param path String containing the path of the directory +-- @param perm String containing the permissions to set ([ugoa][+-][rwx]) +-- @return Number with the return code, 0 on sucess or nil on error +-- @return String containing the error description on error +-- @return Number containing the os specific errno on error +chmod = fs.chmod + +--- Create a hard- or symlink from given file (or directory) to specified target +-- file (or directory) path. +-- @class function +-- @name link +-- @param path1 String containing the source path to link +-- @param path2 String containing the destination path for the link +-- @param symlink Boolean indicating wheather to create a symlink (optional) +-- @return Number with the return code, 0 on sucess or nil on error +-- @return String containing the error description on error +-- @return Number containing the os specific errno on error +function link(src, dest, sym) + return sym and fs.symlink(src, dest) or fs.link(src, dest) +end + +--- Remove the given file. +-- @class function +-- @name unlink +-- @param path String containing the path of the file to remove +-- @return Number with the return code, 0 on sucess or nil on error +-- @return String containing the error description on error +-- @return Number containing the os specific errno on error +unlink = fs.unlink + +--- Retrieve target of given symlink. +-- @class function +-- @name readlink +-- @param path String containing the path of the symlink to read +-- @return String containing the link target or nil on error +-- @return String containing the error description on error +-- @return Number containing the os specific errno on error +readlink = fs.readlink diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/developer.htm b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/developer.htm new file mode 100644 index 0000000000..538de937aa --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/developer.htm @@ -0,0 +1,105 @@ +
+ + + + + + + +
Clash 核心发布: <%:Collecting data...%> OpenClash 客户端发布: <%:Collecting data...%>
Clash 核心: Dreamacro <%:Collecting data...%> OpenClash 客户端: vernesong <%:Collecting data...%>
Clash 客户端: frainzy1477 <%:Collecting data...%> MyIP: SukkaW <%:Collecting data...%>
第三方规则: lhie1 <%:Collecting data...%> 第三方规则: ConnersHua <%:Collecting data...%>
Yacd 控制面板: haishanh <%:Collecting data...%> GEOIP 数据库:MaxMind <%:Collecting data...%>
游戏规则: FQrabbit <%:Collecting data...%> 订阅API:Fndroid <%:Collecting data...%>
+
+ + \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/download_game_rule.htm b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/download_game_rule.htm new file mode 100644 index 0000000000..4b5e37fcbb --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/download_game_rule.htm @@ -0,0 +1,37 @@ +<%+cbi/valueheader%> + + + + + + +<%+cbi/valuefooter%> \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/dvalue.htm b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/dvalue.htm new file mode 100644 index 0000000000..44b1cd6e13 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/dvalue.htm @@ -0,0 +1,13 @@ +<%+cbi/valueheader%> +
+
+<%:Only Support yaml what would be save to /etc/openclash/%> +
+
+<% + local val = self:cfgvalue(section) or self.default or "" + write(pcdata(val)) +%> +
+
+<%+cbi/valuefooter%> diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/myip.htm b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/myip.htm new file mode 100644 index 0000000000..295aabf388 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/myip.htm @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + IP 地址查询 + + +
+ + +
+ +
+
+

IP 地址

+

+ IP   登录设备: +

+

+ IPIP      国内: +

+

+ IP.PC    国内: +

+

+ IP.SB    海外: +

+

+ IPIFY    海外: +

+
+
+

网站访问检查

+

+ 百度搜索: +

+

+ 网易云音乐: +

+

+ GitHub: +

+

+ Facebook: +

+

+ YouTube: +

+
+
+
+

Powered by ip.skk.moe

+
+
+
+ + + + + + diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/other_button.htm b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/other_button.htm new file mode 100644 index 0000000000..1c391ad984 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/other_button.htm @@ -0,0 +1,7 @@ +<%+cbi/valueheader%> + <% if self:cfgvalue(section) ~= false then %> + " style="display: <%= display %>" type="submit"<%= attr("name", cbid) .. attr("id", cbid) .. attr("value", self.inputtitle or self.title)%> /> + <% else %> + - + <% end %> +<%+cbi/valuefooter%> diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/ping.htm b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/ping.htm new file mode 100644 index 0000000000..8c86aee74a --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/ping.htm @@ -0,0 +1,3 @@ +<%+cbi/valueheader%> +-- ms +<%+cbi/valuefooter%> \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/server_list.htm b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/server_list.htm new file mode 100644 index 0000000000..c5430f044c --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/server_list.htm @@ -0,0 +1,32 @@ +<%# + Copyright 2018-2019 Lienol + Licensed to the public under the Apache License 2.0. +-%> + +<% +local dsp = require "luci.dispatcher" +-%> + + \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/state.htm b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/state.htm new file mode 100644 index 0000000000..92ac622af3 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/state.htm @@ -0,0 +1,68 @@ + +
+ + + + + +
+

+ 一些必要的状态显示,运行前请确保各项目显示正常,需要更新请到全局设置页面操作 +

+
正在使用的配置文件 <%:Collecting data...%> 启动参数检查(配置文件) <%:Collecting data...%>
GEOIP(By MaxMind)数据库日期 <%:Collecting data...%> lhie1 规则更新日期 <%:Collecting data...%>
ConnersHua 规则更新日期 <%:Collecting data...%> ConnersHua 回国规则更新日期 <%:Collecting data...%>
+
+ + \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/status.htm b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/status.htm new file mode 100644 index 0000000000..2b4106a367 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/status.htm @@ -0,0 +1,256 @@ +
+ + + + + + + + + +
+

+ +

+

+ <%:Collecting data...%> +

+
+

+ Wiki +     + star +     + + +

+
+

+ Tip: OpenClash 成功启动后请耐心等待下方网站访问检查连接正常后再使用 +

+
OpenClash 主程序 <%:Collecting data...%> 控制面板登录IP <%:Collecting data...%>
OpenClash 守护程序 <%:Collecting data...%> 控制面板登录端口 <%:Collecting data...%>
OpenClash 运行模式 <%:Collecting data...%> 控制面板登录密钥 <%:Collecting data...%>
Yacd 控制面板 <%:Collecting data...%> Dashboard 控制面板 <%:Collecting data...%>
+
+ + diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/update.htm b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/update.htm new file mode 100644 index 0000000000..543aef459c --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/update.htm @@ -0,0 +1,215 @@ + +
+ + + + + + + + + +
+

+ 注意:如更新失败可手动下载并上传,内核路径为:/etc/openclash +

+
已选择编译版本 <%:Collecting data...%> 上次检查更新时间 <%:Collecting data...%>
处理器架构(PROC) <%:Collecting data...%> 处理器架构(OPKG) <%:Collecting data...%>
当前内核版本 <%:Collecting data...%> 当前客户端版本 <%:Collecting data...%>
最新内核版本 <%:Collecting data...%> 最新客户端版本 <%:Collecting data...%>
更新内核<%:Collecting data...%> 更新客户端 <%:Collecting data...%>
下载最新版本内核<%:Collecting data...%> 下载最新版本客户端 <%:Collecting data...%>
+ +
+ + + \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/upload.htm b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/upload.htm new file mode 100644 index 0000000000..71085b108e --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/view/openclash/upload.htm @@ -0,0 +1,11 @@ +<%+cbi/valueheader%> +
+
+<%+cbi/valuefooter%> diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/cfg_servers_address_fake_block.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/cfg_servers_address_fake_block.sh new file mode 100755 index 0000000000..b256537802 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/cfg_servers_address_fake_block.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +status=$(ps|grep -c /usr/share/openclash/cfg_servers_address_fake_block.sh) +[ "$status" -gt "3" ] && exit 0 + +en_mode=$(uci get openclash.config.en_mode 2>/dev/null) +if pidof clash >/dev/null && [ "$en_mode" != "redir-host" ]; then + rm -rf /tmp/dnsmasq.d/dnsmasq_openclash.conf >/dev/null 2>&1 + /usr/share/openclash/openclash_fake_block.sh + mkdir -p /tmp/dnsmasq.d + ln -s /etc/openclash/dnsmasq_fake_block.conf /tmp/dnsmasq.d/dnsmasq_openclash.conf >/dev/null 2>&1 + /etc/init.d/dnsmasq restart >/dev/null 2>&1 +fi diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/cfg_unused_servers_del.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/cfg_unused_servers_del.sh new file mode 100755 index 0000000000..5f91a33336 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/cfg_unused_servers_del.sh @@ -0,0 +1,23 @@ +#!/bin/sh +. /lib/functions.sh + +cfg_unused_servers_del() +{ + + local section="$1" + config_get_bool "enabled" "$section" "enabled" "1" + + if [ "$enabled" = "1" ]; then + return + fi + + #删除未选中节点 + uci delete openclash."$section" 2>/dev/null +} + +status=$(ps|grep -c /usr/share/openclash/cfg_unused_servers_del.sh) +[ "$status" -gt "3" ] && exit 0 + config_load "openclash" + config_foreach cfg_unused_servers_del "servers" + uci commit openclash + diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/clash_version.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/clash_version.sh new file mode 100755 index 0000000000..49d13fada0 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/clash_version.sh @@ -0,0 +1,12 @@ +#!/bin/sh +CKTIME=$(date "+%Y-%m-%d-%H") +LAST_OPVER="/tmp/clash_last_version" +version_url="https://raw.githubusercontent.com/vernesong/OpenClash/master/core_version" +if [ "$CKTIME" != "$(grep "CheckTime" $LAST_OPVER 2>/dev/null |awk -F ':' '{print $2}')" ]; then + wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 "$version_url" -O $LAST_OPVER + if [ "$?" -eq "0" ] && [ "$(ls -l $LAST_OPVER 2>/dev/null |awk '{print int($5)}')" -gt 0 ]; then + echo "CheckTime:$CKTIME" >>$LAST_OPVER + else + rm -rf $LAST_OPVER + fi +fi \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/dashboard/CNAME b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/dashboard/CNAME new file mode 100644 index 0000000000..fed224edb9 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/dashboard/CNAME @@ -0,0 +1 @@ +clash.razord.top \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/dashboard/img/33343e6117c37aaef8886179007ba6b5.png b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/dashboard/img/33343e6117c37aaef8886179007ba6b5.png new file mode 100644 index 0000000000..6798639d0f Binary files /dev/null and b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/dashboard/img/33343e6117c37aaef8886179007ba6b5.png differ diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/dashboard/index.html b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/dashboard/index.html new file mode 100644 index 0000000000..13a494dc27 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/dashboard/index.html @@ -0,0 +1,12 @@ + + + + + + + Clash + + +
+ + diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/dashboard/js/1.bundle.0bddb85299f970595cb5.min.js b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/dashboard/js/1.bundle.0bddb85299f970595cb5.min.js new file mode 100644 index 0000000000..7bc830d892 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/dashboard/js/1.bundle.0bddb85299f970595cb5.min.js @@ -0,0 +1,2 @@ +/*! For license information please see 1.bundle.0bddb85299f970595cb5.min.js.LICENSE */ +(window.webpackJsonp=window.webpackJsonp||[]).push([[1],[function(e,t,n){"use strict";e.exports=n(51)},function(e,t,n){e.exports=n(55)()},function(e,t,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t=0||(o[n]=e[n]);return o}n.d(t,"a",(function(){return r}))},,,,function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE){0;try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}}(),e.exports=n(52)},function(e,t,n){var r=n(42)(Object,"create");e.exports=r},function(e,t,n){var r=n(110);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},function(e,t,n){var r=n(116);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},function(e,t,n){"use strict";var r=Array.isArray,o=Object.keys,i=Object.prototype.hasOwnProperty;e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){var a,u,l,c=r(t),s=r(n);if(c&&s){if((u=t.length)!=n.length)return!1;for(a=u;0!=a--;)if(!e(t[a],n[a]))return!1;return!0}if(c!=s)return!1;var f=t instanceof Date,d=n instanceof Date;if(f!=d)return!1;if(f&&d)return t.getTime()==n.getTime();var p=t instanceof RegExp,h=n instanceof RegExp;if(p!=h)return!1;if(p&&h)return t.toString()==n.toString();var m=o(t);if((u=m.length)!==o(n).length)return!1;for(a=u;0!=a--;)if(!i.call(n,m[a]))return!1;for(a=u;0!=a--;)if(!e(t[l=m[a]],n[l]))return!1;return!0}return t!=t&&n!=n}},,function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){var r=n(41),o=n(89),i="[object Symbol]";e.exports=function(e){return"symbol"==typeof e||o(e)&&r(e)==i}},function(e,t,n){var r=n(23).Symbol;e.exports=r},function(e,t,n){var r=n(86),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,t,n){e.exports=function(){"use strict";var e="millisecond",t="second",n="minute",r="hour",o="day",i="week",a="month",u="quarter",l="year",c=/^(\d{4})-?(\d{1,2})-?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d{1,3})?$/,s=/\[([^\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,f=function(e,t,n){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},d={s:f,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),o=n%60;return(t<=0?"+":"-")+f(r,2,"0")+":"+f(o,2,"0")},m:function(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),r=e.clone().add(n,a),o=t-r<0,i=e.clone().add(n+(o?-1:1),a);return Number(-(n+(t-r)/(o?r-i:i-r))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(c){return{M:a,y:l,w:i,d:o,h:r,m:n,s:t,ms:e,Q:u}[c]||String(c||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},p={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},h="en",m={};m[h]=p;var v=function(e){return e instanceof w},g=function(e,t,n){var r;if(!e)return h;if("string"==typeof e)m[e]&&(r=e),t&&(m[e]=t,r=e);else{var o=e.name;m[o]=e,r=o}return n||(h=r),r},y=function(e,t,n){if(v(e))return e.clone();var r=t?"string"==typeof t?{format:t,pl:n}:t:{};return r.date=e,new w(r)},b=d;b.l=g,b.i=v,b.w=function(e,t){return y(e,{locale:t.$L,utc:t.$u,$offset:t.$offset})};var w=function(){function f(e){this.$L=this.$L||g(e.locale,null,!0),this.parse(e)}var d=f.prototype;return d.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(b.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(c);if(r)return n?new Date(Date.UTC(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)):new Date(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)}return new Date(t)}(e),this.init()},d.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},d.$utils=function(){return b},d.isValid=function(){return!("Invalid Date"===this.$d.toString())},d.isSame=function(e,t){var n=y(e);return this.startOf(t)<=n&&n<=this.endOf(t)},d.isAfter=function(e,t){return y(e)=0;d--){var p=o[d];"."===p?s(o,d):".."===p?(s(o,d),f++):f&&(s(o,d),f--)}if(!u)for(;f--;f)o.unshift("..");!u||""===o[0]||o[0]&&c(o[0])||o.unshift("");var h=o.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};function d(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var p=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=d(t),o=d(n);return r!==t||o!==n?e(r,o):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1},h=!0,m="Invariant failed";var v=function(e,t){if(!e)throw h?new Error(m):new Error(m+": "+(t||""))};function g(e){return"/"===e.charAt(0)?e:"/"+e}function y(e){return"/"===e.charAt(0)?e.substr(1):e}function b(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function w(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function x(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function S(e,t,n,r){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e)).state=t:(void 0===(o=Object(l.a)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(i){throw i instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):i}return n&&(o.key=n),r?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=f(o.pathname,r.pathname)):o.pathname=r.pathname:o.pathname||(o.pathname="/"),o}function E(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var i="function"==typeof e?e(t,n):e;"string"==typeof i?"function"==typeof r?r(i,o):o(!0):o(!1!==i)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,r):n.push(r),f({action:"PUSH",location:r,index:t,entries:n})}}))},replace:function(e,t){var r=S(e,t,d(),g.location);s.confirmTransitionTo(r,"REPLACE",n,(function(e){e&&(g.entries[g.index]=r,f({action:"REPLACE",location:r}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=g.index+e;return t>=0&&t=0;t--){var n=e[t][a];n.modified||(Array.isArray(n.base)?K(n)&&A(n):w(n.base)?Q(n)&&A(n):S(n.base)?X(n)&&A(n):G(n)&&A(n))}}function G(e){for(var t=e.base,n=e.draft,r=Object.keys(n),o=r.length-1;o>=0;o--){var i=r[o],u=t[i];if(void 0===u&&!m(t,i))return!0;var l=n[i],c=l&&l[a];if(c?c.base!==u:!g(l,u))return!0}return r.length!==Object.keys(t).length}function K(e){var t=e.draft;if(t.length!==e.base.length)return!0;var n=Object.getOwnPropertyDescriptor(t,t.length-1);return!(!n||n.get)}function Q(e){var t=e.base,n=e.draft;if(t.size!==n.size)return!0;var r=!1;return n.forEach((function(e,n){r||(r=l(e)?e.modified:e!==t.get(n))})),r}function X(e){var t=e.base,n=e.draft;if(t.size!==n.size)return!0;var r=!1;return n.forEach((function(e,n){r||(r=l(e)?e.modified:!t.has(n))})),r}var J,Z,ee=Object.freeze({__proto__:null,willFinalize:function(e,t,n){e.drafts.forEach((function(e){e[a].finalizing=!0})),n?u(t)&&t[a].scope===e&&Y(e.drafts):(e.patches&&function e(t){if(!t||"object"!=typeof t)return;var n=t[a];if(!n)return;var r=n.base,o=n.draft,i=n.assigned;if(Array.isArray(t)){if(K(n)){if(A(n),i.length=!0,o.lengths&&a[f-1]===u[f+c-1];)--f;for(var d=s;d=f;--d){p=t.concat([d]);n[h+d-f]={op:"add",path:p,value:u[d]},r.push({op:"remove",path:p})}}function he(e,t,n,r){var o=e.base,i=e.copy;p(e.assigned,(function(e,a){var u=v(o,e),l=v(i,e),c=a?m(o,e)?"replace":"add":"remove";if(u!==l||"replace"!==c){var s=t.concat(e);n.push("remove"===c?{op:c,path:s}:{op:c,path:s,value:l}),r.push("add"===c?{op:"remove",path:s}:"remove"===c?{op:"add",path:s,value:u}:{op:"replace",path:s,value:u})}}))}function me(e,t,n,r){var o=e.base,i=e.copy,a=0;o.forEach((function(e){if(!i.has(e)){var o=t.concat([a]);n.push({op:"remove",path:o,value:e}),r.unshift({op:"add",path:o,value:e})}a++})),a=0,i.forEach((function(e){if(!o.has(e)){var i=t.concat([a]);n.push({op:"add",path:i,value:e}),r.unshift({op:"remove",path:i,value:e})}a++}))}function ve(e,t){return t.forEach((function(t){var n=t.path,r=t.op;if(!n.length)throw new Error("Illegal state");for(var o=e,i=0;i=0;n--){var r=t[n];if(0===r.path.length&&"replace"===r.op){e=r.value;break}}return u(e)?ve(e,t):this.produce(e,(function(e){return ve(e,t.slice(n+1))}))},e.prototype.processResult=function(e,t){var n=t.drafts[0],r=void 0!==e&&e!==n;if(this.willFinalize(t,e,r),r){if(n[a].modified)throw t.revoke(),new Error("An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.");l(e)&&(e=this.finalize(e,null,t),this.maybeFreeze(e)),t.patches&&(t.patches.push({op:"replace",path:[],value:e}),t.inversePatches.push({op:"replace",path:[],value:n[a].base}))}else e=this.finalize(n,[],t);return t.revoke(),t.patches&&t.patchListener(t.patches,t.inversePatches),e!==o?e:void 0},e.prototype.finalize=function(e,t,n){var r=this,o=e[a];if(!o)return Object.isFrozen(e)?e:this.finalizeTree(e,null,n);if(o.scope!==n)return e;if(!o.modified)return this.maybeFreeze(o.base,!0),o.base;if(!o.finalized){if(o.finalized=!0,this.finalizeTree(o.draft,t,n),this.onDelete&&!S(o.base))if(this.useProxies){p(o.assigned,(function(e,t){var n,i;t||null===(i=(n=r).onDelete)||void 0===i||i.call(n,o,e)}))}else{var i=o.base,u=o.copy;p(i,(function(e){var t,n;m(u,e)||null===(n=(t=r).onDelete)||void 0===n||n.call(t,o,e)}))}this.onCopy&&this.onCopy(o),this.autoFreeze&&n.canAutoFreeze&&P(o.copy,!1),t&&n.patches&&function(e,t,n,r){(Array.isArray(e.base)?pe:S(e.base)?me:he)(e,t,n,r)}(o,t,n.patches,n.inversePatches)}return o.copy},e.prototype.finalizeTree=function(e,t,n){var r=this,o=e[a];o&&(this.useProxies||(o.copy=d(o.draft,!0)),e=o.copy);var i=!!t&&!!n.patches,c=function(a,s,f){if(s===f)throw Error("Immer forbids circular references");var d=!!o&&f===e,y=S(f);if(u(s)){var b=d&&i&&!y&&!m(o.assigned,a)?t.concat(a):null;if(function(e,t,n){w(e)?e.set(t,n):S(e)?(e.delete(t),e.add(n)):Array.isArray(e)||h(e,t)?e[t]=n:Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}(f,a,s=r.finalize(s,b,n)),u(s)&&(n.canAutoFreeze=!1),d&&s===v(o.base,a))return}else{if(d&&g(s,v(o.base,a)))return;l(s)&&!Object.isFrozen(s)&&(p(s,c),r.maybeFreeze(s))}d&&r.onAssign&&!y&&r.onAssign(o,a,s)};return p(e,c),e},e.prototype.maybeFreeze=function(e,t){void 0===t&&(t=!1),this.autoFreeze&&!u(e)&&P(e,t)},e}()),be=ye.produce;ye.produceWithPatches.bind(ye),ye.setAutoFreeze.bind(ye),ye.setUseProxies.bind(ye),ye.applyPatches.bind(ye),ye.createDraft.bind(ye),ye.finishDraft.bind(ye);t.a=be}).call(this,n(35))},function(e,t,n){"use strict";var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,t){for(var n,u,l=a(e),c=1;c=200&&e<300}};l.headers={common:{Accept:"application/json, text/plain, */*"}},r.forEach(["delete","get","head"],(function(e){l.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){l.headers[e]=r.merge(i)})),e.exports=l}).call(this,n(35))},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function u(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var l,c=[],s=!1,f=-1;function d(){s&&l&&(s=!1,l.length?c=l.concat(c):f=-1,c.length&&p())}function p(){if(!s){var e=u(d);s=!0;for(var t=c.length;t;){for(l=c,c=[];++f1)for(var n=1;nM.length&&M.push(e)}function j(e,t,n){return null==e?0:function e(t,n,r,o){var u=typeof t;"undefined"!==u&&"boolean"!==u||(t=null);var l=!1;if(null===t)l=!0;else switch(u){case"string":case"number":l=!0;break;case"object":switch(t.$$typeof){case i:case a:l=!0}}if(l)return r(o,t,""===n?"."+N(t,0):n),1;if(l=0,n=""===n?".":n+":",Array.isArray(t))for(var c=0;c